Parte de #2 (modo construcción). Depende del editor visual (#13) y de la API de objetos (#9).
Qué es
Para construir un mapa hace falta poder elegir qué poner. Eso significa un navegador de contenido dentro del editor: buscar entre los 1.062 objetos del juego, filtrarlos por tipo, previsualizarlos y arrastrarlos al mapa. Lo mismo para tiles de terreno y para NPCs.
Sin esto, el editor sirve para pintar pero no para amueblar.
Punto de partida que ya existe
@elpatoenlasolas tiene un editor web de objetos de AO: AO-object-editor. Es Next.js y ya resolvió el modelo de dominio, que es la parte que no se improvisa:
lib/ao-constants.ts tiene el catálogo completo de los 37 tipos de objeto con etiquetas legibles (Comida, Arma, Armadura, Árbol, Dinero, Puerta, Cofre, Cartel, Llave, Foro, Poción, Yacimiento, Fragua, Barco, Runa...) y color por tipo
- Las 11 clases clásicas para el campo
clasesPermitidas
- La interfaz
GameObject con los 27 campos reales de un objeto de AO
- Un sistema de definición de campos (
FieldDef) para generar formularios sin escribir uno por objeto
components/object-list.tsx, object-form.tsx, object-editor.tsx y editor-toolbar.tsx, alrededor de 24 KB de componentes de editor
Nota importante sobre licencia: el repo no tiene archivo LICENSE. El README menciona Creative Commons sin especificar variante, lo cual no alcanza para reutilizar código con seguridad. Antes de copiar nada hay que pedirle al autor que aclare la licencia, o tratarlo sólo como referencia conceptual y escribir la implementación propia.
Alcance
- Navegador de objetos dentro del editor: lista, búsqueda por nombre, filtro por tipo, vista previa del gráfico.
- Paleta de terreno del mapa actual, con los tiles disponibles y los gráficos subidos por el usuario.
- Navegador de NPCs, filtrable, para colocarlos en el mapa.
- Selección con clic y colocación en el mapa, coherente con las herramientas del editor.
- Favoritos o recientes, porque en una sesión de construcción se usan siempre los mismos veinte elementos.
A tener en cuenta
- La vista previa necesita resolver
grhIndex a la imagen real. El cliente ya sabe hacer eso: recorta el frame del PNG según el índice de gráficos.
- Son 1.062 objetos y 340 NPCs. La lista tiene que virtualizarse o va a arrastrar.
- Nuestro frontend usa Tailwind 4 sin Radix. El editor de referencia usa shadcn/ui sobre Radix. Traer sus componentes implica sumar Radix como dependencia, que es una decisión de arquitectura, no un detalle.
Criterios de aceptación
Parte de #2 (modo construcción). Depende del editor visual (#13) y de la API de objetos (#9).
Qué es
Para construir un mapa hace falta poder elegir qué poner. Eso significa un navegador de contenido dentro del editor: buscar entre los 1.062 objetos del juego, filtrarlos por tipo, previsualizarlos y arrastrarlos al mapa. Lo mismo para tiles de terreno y para NPCs.
Sin esto, el editor sirve para pintar pero no para amueblar.
Punto de partida que ya existe
@elpatoenlasolas tiene un editor web de objetos de AO: AO-object-editor. Es Next.js y ya resolvió el modelo de dominio, que es la parte que no se improvisa:
lib/ao-constants.tstiene el catálogo completo de los 37 tipos de objeto con etiquetas legibles (Comida, Arma, Armadura, Árbol, Dinero, Puerta, Cofre, Cartel, Llave, Foro, Poción, Yacimiento, Fragua, Barco, Runa...) y color por tipoclasesPermitidasGameObjectcon los 27 campos reales de un objeto de AOFieldDef) para generar formularios sin escribir uno por objetocomponents/object-list.tsx,object-form.tsx,object-editor.tsxyeditor-toolbar.tsx, alrededor de 24 KB de componentes de editorNota importante sobre licencia: el repo no tiene archivo LICENSE. El README menciona Creative Commons sin especificar variante, lo cual no alcanza para reutilizar código con seguridad. Antes de copiar nada hay que pedirle al autor que aclare la licencia, o tratarlo sólo como referencia conceptual y escribir la implementación propia.
Alcance
A tener en cuenta
grhIndexa la imagen real. El cliente ya sabe hacer eso: recorta el frame del PNG según el índice de gráficos.Criterios de aceptación