Capacidades Modulares y Variables de Estado
CraftingEngine desacopla las recetas de materiales de bloque fijos mediante Capacidades y Variables de Estado. En lugar de exigir un bloque específico de ANVIL o FURNACE, las recetas solicitan capacidades abstractas como forging, heating o pressure.
1. ¿Qué son las Capacidades?
Las capacidades representan cualidades funcionales provistas por una estación o por el entorno:
+-----------------------+ +-----------------------------+| Requisitos de Receta | | Definición de la Estación |+-----------------------+ +-----------------------------+| - forging | <=======> | capabilities: || - high_temperature | | - forging |+-----------------------+ | - high_temperature | +-----------------------------+Ventajas de las Capacidades:
- Múltiples Estaciones, Misma Receta: Un crafteo de “Acero Plegado” puede realizarse en un yunque de hierro sencillo o en una gigantesca forja rúnica 3D, siempre que ambas provean la capacidad
forging. - Niveles y Rangos: Permite definir jerarquías (ej.
heating_tier_1,heating_tier_2). - Activación Condicional: Una estación puede aportar calor únicamente cuando esté alimentada por redstone o cuando tenga lava debajo.
2. Definición de Capacidades (capabilities/*.yml)
Las capacidades pueden definirse como archivos YAML independientes en plugins/CraftingEngine/capabilities/:
id: "high_temperature"name: "<gradient:#ff8a80:#ff5252>Alta Temperatura</gradient>"description: "Requiere calor ambiental superior a 300°C."
# Evaluaciones requeridas para activar esta capacidadevaluations: - type: "BLOCK_STATE" offset: [0, -1, 0] # Inspecciona el bloque inmediatamente debajo de la estación materials: - "LAVA" - "MAGMA_BLOCK" - "SOUL_FIRE"
variables: temperature: initial: 350.0 decay_rate: 1.53. Variables de Estado
Las estaciones y procesos activos mantienen mapas sellados y aislados de variables de estado:
temperature: Nivel de calor actual en °C.fluid_level: Milicubos (mB) de fluido contenidos en un caldero.pressure: Presión hidráulica o de vapor en PSI.durability: Resistencia estructural de bloques especiales.
Comprobación en Blueprints
Puedes evaluar variables de estado directamente en las condiciones de tus blueprints:
requirements: conditions: - id: "heat_check" environment: "craftingengine" condition: "capability.temperature >= 250"Siguientes Pasos
- Estaciones y Multibloques - Aprende cómo las estaciones vinculan y evalúan capacidades.
- Calderos y Fluidos - Observa variables de temperatura y fluido en acción.
- Scripting en Lua - Accede y modifica variables de estado desde scripts de Lua.