Saltearse al contenido

Etapas, Modos y Transiciones No Lineales

Los procesos de CraftingEngine avanzan a través de una secuencia de etapas (stages). Las etapas transforman los crafteos pasivos en máquinas de estado dinámicas con interacciones manuales, minijuegos, ramificaciones aleatorias ponderadas y rutas de recuperación.


1. Modos de Ejecución de Etapas

CraftingEngine cuenta con 5 modos configurables mediante la clave mode::

+-----------------------------------------------------------------------------+
| MODOS DE EJECUCIÓN DE ETAPA |
+-----------------------------------------------------------------------------+
| |
| 1. PASSIVE |
| Avanza automáticamente en función del tiempo (duración: "5s", "1m"). |
| |
| 2. MANUAL_ACTION |
| Requiere golpes físicos del jugador (clic izquierdo/derecho con tool). |
| |
| 3. WAITING_FOR_CONDITION |
| Pausa el avance hasta alcanzar un estado ambiental o de capacidad |
| (ej. el caldero alcanza 100°C o empieza a llover). |
| |
| 4. MINIGAME |
| Minijuego arcade interactivo en la barra de acción (Action Bar). |
| |
| 5. ITEM_INSERTION |
| Requiere que el jugador lance o inserte componentes específicos. |
| |
+-----------------------------------------------------------------------------+

Sintaxis YAML por Modo

Etapa Pasiva

- id: "tempering"
mode: "PASSIVE"
duration: "4s"
on_tick:
- action: "spawn_particle(SMOKE, 2, 0.1, 0.2, 0.1)"

Etapa de Acción Manual

- id: "hammering"
mode: "MANUAL_ACTION"
action_type: "LEFT_CLICK_BLOCK" # LEFT_CLICK_BLOCK | RIGHT_CLICK_BLOCK
required_strikes: 5
cooldown_ticks: 10 # Retardo rítmico entre golpes permitidos
on_action:
- action: "play_sound(block.anvil.use)"
- action: "damage_tool(1)"

Espera de Condición

- id: "boiling"
mode: "WAITING_FOR_CONDITION"
timeout: "30s"
condition: "capability.temperature >= 100"
failure_transition: "cool_down_failure"

2. Transiciones No Lineales (v2.6.0+)

La versión v2.6.0 incorporó soporte completo para transiciones tipo statechart, eliminando la linealidad forzada y permitiendo bifurcaciones y recuperación ante fallos:

+-------------------+
| Etapa Inicial |
+---------+---------+
|
(Evaluación de Transición)
|
+---------------------+---------------------+
| (Peso: 70%) | (Peso: 30%)
v v
+---------------------+ +---------------------+
| Rama Obra Maestra | | Rama Defectuosa |
+----------+----------+ +----------+----------+
| |
+---------------------+---------------------+
|
v
+-------------------+
| Pulido Final |
+-------------------+

A. Ramificación Probabilística Ponderada

Las transiciones admiten ruleta ponderada normalizada mediante weight:. Si se definen varios destinos, CraftingEngine normaliza las probabilidades y escoge un camino aleatorio:

stages:
- id: "enchanting_infusion"
duration: "5s"
transitions:
- target_stage: "legendary_outcome"
weight: 0.15 # 15% de probabilidad
- target_stage: "standard_outcome"
weight: 0.85 # 85% de probabilidad

B. Saltos Explícitos por Acción

Durante etapas manuales, la acción concreta del jugador puede desencadenar un salto directo a otra etapa:

stages:
- id: "forging_choice"
mode: "MANUAL_ACTION"
transitions:
- target_stage: "folded_steel"
action: "RIGHT_CLICK_BLOCK"
- target_stage: "standard_edge"
action: "LEFT_CLICK_BLOCK"

C. Recuperación ante Fallos (failure_transition)

Si se agota el tiempo de una etapa o falla un minijuego, puedes redirigir el proceso a una etapa de salvamento en lugar de destruirlo:

stages:
- id: "delicate_shaping"
mode: "MINIGAME"
minigame:
type: "TIMING_SWEET_SPOT"
failure_transition: "salvage_scrap"
transitions:
- target_stage: "perfect_polish"
- id: "salvage_scrap"
mode: "PASSIVE"
duration: "2s"
on_complete:
- action: "produce_output(minecraft:iron_nugget, 3)"

3. Puntuación y Escala de Calidad

Los procesos calculan una Puntuación de Calidad (Quality Score) del 0% al 100% evaluando la precisión y sincronización del jugador:

  • Nivel 1 (Normal): 0% - 49%
  • Nivel 2 (Superior): 50% - 84%
  • Nivel 3 (Obra Maestra): 85% - 100%

El nivel alcanzado puede añadir lore exclusivo, atributos aumentados (+15% Daño de Ataque) o modificadores NBT.


Siguientes Pasos