Menús GUI y Diseños Matriciales
CraftingEngine incorpora un motor de interfaces gráficas (GUI) de 9xN ranuras definido en plugins/CraftingEngine/menus/*.yml. Los menús pueden operar como enciclopedias interactivas de recetas, monitores de progreso de crafteo o ranuras receptoras de ingredientes.
1. Arquitectura de Diseño Matricial
Los menús se diseñan visualmente usando una matriz de caracteres donde cada símbolo representa un componente:
id: "process_browser"title: "<gradient:#2196f3:#21cbf3>Recetas de la Estación</gradient>"rows: 6 # De 1 a 6 filas (ranuras de 9xN)
matrix: - "X X X X X X X X X" - "X R R R R R R R X" - "X R R R R R R R X" - "X R R R R R R R X" - "X X X X X X X X X" - "# < # # I # # > #"
components: "X": type: "DECORATION" item: "minecraft:gray_stained_glass_pane" name: " "
"#": type: "DECORATION" item: "minecraft:black_stained_glass_pane" name: " "
"R": type: "RECIPE_LIST" filter: "ALL" # ALL | STATION_MATCHED | CRAFTABLE_ONLY
"<": type: "PAGE_PREVIOUS" item: "minecraft:arrow" name: "<yellow>« Página Anterior</yellow>"
">": type: "PAGE_NEXT" item: "minecraft:arrow" name: "<yellow>Página Siguiente »</yellow>"
"I": type: "CLOSE" item: "minecraft:barrier" name: "<red>Cerrar Menú</red>"2. Tipos de Componentes
DECORATION: Ítems decorativos o bordes. Los clics se cancelan automáticamente.RECIPE_LIST: Zona paginada dinámica que se rellena con las recetas compatibles con la estación. Al pasar el cursor, se muestran los ingredientes y herramientas requeridas.INPUT_SLOT: Ranuras funcionales donde los jugadores colocan ingredientes físicos.OUTPUT_SLOT: Ranura protegida desde donde se extrae el ítem crafteado.PROGRESS_BAR: Ranura animada cuyo ítem o cantidad se actualiza en tiempo real según el avance de la etapa (ej. tinte verde aumentando de 1 a 64 unidades).ACTION_BUTTON: Botón que inicia el crafteo, cancela la etapa o activa acciones personalizadas.
3. Crafteo Masivo con Shift-Click
En menús de recetas instantáneas, los jugadores pueden:
- Clic Izquierdo: Craftear 1 unidad.
- Shift + Clic Izquierdo: Craftear el lote máximo posible según los materiales disponibles en su inventario.
Siguientes Pasos
- Estaciones de Trabajo - Vincula menús a estaciones mediante
menu_id:. - Proveedores e Integraciones - Muestra ítems personalizados en las ranuras del menú.