4.1 KiB
2D Shell — el marco donde se dibuja cualquier juego 2D
2D Shell es la pantalla vacía que los juegos 2D rellenan: la imagen del lugar actual, el reloj y la barra de herramientas arriba, espacio para paneles y la esquina de notificaciones. Por sí sola no muestra nada. Los mods de contenido meten en ella sus propias capas: el Dialog Engine añade el cuadro de texto y las opciones de una novela visual, y el mod RPG añade el mapa de tiles transitable, de modo que una novela y un RPG de tiles comparten el mismo marco, la misma barra de herramientas y los mismos menús.
Lo incluye todo juego 2D: Cthangover, My Novel y RPG Plus.
Lo que ves en pantalla
En esta escena, la carcasa aporta:
- la imagen del lugar — la cocina, con su sombreado según la hora y sus luces (Time Engine);
- la barra superior — el reloj arriba a la izquierda, la barra de herramientas arriba a la derecha y, en medio, el indicador de guardado y, de noche, la lámpara portátil;
- la esquina de notificaciones bajo el reloj;
- espacio para paneles — la bolsa, el mapa o el diario se abren sobre la escena.
El cuadro de texto y las opciones vienen del Dialog Engine, y el contador de raciones de Cooking: son capas que esos mods añaden a la carcasa.
Las capas, de atrás hacia delante
BaseScene
└── Scene
├── ModFirstPanel capas de mods por detrás de todo
├── ViewBox el lugar: luces, fondo, primer plano, Lastground
├── (content layer) capa de un mod de contenido, p. ej. el lienzo de diálogos o el mundo RPG
├── TopView reloj, barra de herramientas, indicador de guardado, lámpara
├── ModBeforeUIPanel paneles de la barra: bolsa, mapa, diario, menú…
├── NotificationPanel mensajes en la esquina superior izquierda
└── ModLastPanel capas superpuestas sobre todo, p. ej. la ventana de la mesa de trabajo
Las capas posteriores se dibujan sobre las anteriores.
Para autores de mods
Añadir una capa de contenido con un parche de escena. Un parche es un .tscn en la carpeta patches/ de tu mod, en la misma ruta que la escena de la carcasa. Instancia la escena de la carcasa y añade o cambia nodos. El parche del Dialog Engine añade el lienzo de diálogos justo después del visor:
patches/scenes/ui/base_scene.tscn
[ext_resource type="PackedScene" path="res://mods/shell2d_base/scenes/ui/base_scene.tscn" id="1_target"]
[ext_resource type="PackedScene" path="res://scenes/ui/dialog_canvas.tscn" id="3_dialog"]
[node name="BaseScene" instance=ExtResource("1_target")]
[node name="DialogCanvas" parent="Scene" index="2" instance=ExtResource("3_dialog")]
El mod RPG añade su RpgWorldHost del mismo modo, así que un juego con ambos muestra el mapa de tiles y, encima, las líneas de diálogo.
Añadir un panel sin parche. Un panel de la barra o una capa superpuesta se declara en la sección ui del manifiesto con uno de los slots de la carcasa: ModBeforeUIPanel, ModLastPanel o el Lastground del visor. Los campos están en la guía del mod UI.
Declara la dependencia. Un mod que necesite el marco 2D lista shell2d_base en depends; la carcasa de por sí trae Time Engine y UI.
Si algo falla
- Una pantalla negra con solo la barra de herramientas. Ningún mod de contenido está rellenando la carcasa (falta el Dialog Engine o el mod RPG en el juego), o la escena no tiene fondo.
- Un panel aparece detrás de la escena. Su manifiesto nombra un slot que se dibuja demasiado pronto; usa
ModBeforeUIPaneloModLastPanel.

