feat(editor): entity picker amb noms del factory i flag editable per plantilla

This commit is contained in:
JailDesigner committed 2026-05-02 11:07:02 +02:00
1 parent f591aa82fd
commit 94213f9fd6
7 files changed
+204 -5

No files matched your search

+22
View File
@@ -3,8 +3,11 @@
#ifdef _DEBUG
#include <cstdint>
#include <memory>
#include <string>
#include <vector>
class Surface;
class Tilemap;
// Mode editor modal del GameScene. Només disponible en Debug — en Release
@@ -105,6 +108,25 @@ class Editor {
int entity_picker_scroll_{0};
int entity_picker_hover_{-1}; // Índex a la llista de noms.
// Entrada editable del picker. Cada item recorda el nom (clau de
// factory + YAML), el surface del sprite (frame 0 com a icona) i la
// mida de cada frame al GIF — necessària per clipar el primer frame
// quan el GIF és un strip multi-frame.
struct EditableEntity {
std::string name;
std::shared_ptr<Surface> sprite;
int frame_w{0};
int frame_h{0};
};
// Construïda lazy al primer enter() i preservada entre sessions:
// el cost és I/O + parse de N plantilles YAML, però `EntityLoader`
// ja les memoritza, així que rellegir només resoldria per sortida i
// entrada al editor — no val la pena.
void ensureEditableEntities();
std::vector<EditableEntity> editable_entities_;
// Selecció en Mode::HAND (índex dins de l'EntityManager; -1 = cap).
int hand_selected_idx_{-1};
};