Saltearse al contenido

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 capacidad
evaluations:
- 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.5

3. 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