Herramientas (tools/)
Todo el contenido del kit se genera con Python 3. Se necesitan pillow y resvg-py (pip install pillow resvg-py).
python tools/build.py
Lo que hace build.py, en orden:
| Paso | Script | Resultado |
|---|---|---|
| 1 | gen_icons.py | Dibuja los iconos (SVG → PNG) en UI/Textures/MCUIK/MCUIK_Icons.png. Genera el .imageset, MCUIK_IconNames.c y la hoja tools/icons_preview.png. |
| 2 | png2edds.py | Convierte el PNG en .edds (RGBA8 con mipmaps), la textura que entiende el motor. No necesita Workbench. |
| 3 | gen_layouts.py | Escribe todos los .layout desde una descripción en Python (W, img, text, sized, overlay, hbox, vbox, button…). |
| 4 | metas.py | Crea el .meta de cada recurso con un GUID estable sacado de su ruta. |
| 5 | — | Escribe Configs/MCUIK/MCUIK_Dialogs.conf y Scripts/Game/MCUIK/MCUIK_Res.c (constantes con cada recurso). |
| — | gen_api_docs.py | Regenera docs/api.md desde el código. |
Después de añadir archivos nuevos, abre el proyecto en Workbench una vez para que los registre en resourceDatabase.rdb. Hasta entonces los prefabs y layouts nuevos no se replican bien.
Formato .edds (por si lo necesitas en otro mod)
Es una cabecera DDS con extensión DX10, seguida de:
- la marca
ENF1enreserved1[1]; - una tabla de bloques
COPY+tamaño (oLZ4), uno por mip, del más pequeño al más grande; - los datos en ese mismo orden.
png2edds.py escribe R8G8B8A8_UNORM sin comprimir. Así se reproducen bien los iconos con transparencia.
Uso: python tools/png2edds.py entrada.png salida.edds (lados múltiplos de 4).
Generador de layouts en otro mod
MCES usa el generador de MCUIK:
sys.path.insert(0, "<ruta>/MCUIK/tools")
import gen_layouts as L
L.save("MiPanel", L.sized("Root", 300, None, None, [L.overlay("Ov", [L.img("Bg", L.PANEL), ...])]), None, mi_carpeta)
Mira MCES/tools/build.py como ejemplo completo: ventana, tarjetas y pestañas.