feat(editor): mou la porta i persisteix geometry.door_col

This commit is contained in:
JailDesigner committed 2026-05-02 13:35:01 +02:00
1 parent a254fdd669
commit c003e6665e
8 files changed
+214 -20

No files matched your search

+7 -4
View File
@@ -97,7 +97,7 @@ class Editor {
// des d'`update`.
void updateTileBrush(Tilemap& tilemap, int canvas_x, int canvas_y);
void updateEntityBrush(EntityManager& entities, int canvas_x, int canvas_y);
void updateHand(EntityManager& entities, int canvas_x, int canvas_y);
void updateHand(const Tilemap& tilemap, EntityManager& entities, int canvas_x, int canvas_y);
void updateTilePicker(const Tilemap& tilemap, int canvas_x, int canvas_y);
void updateEntityPicker(int canvas_x, int canvas_y);
@@ -111,12 +111,15 @@ class Editor {
// Mou l'entitat seleccionada a la cel·la del cursor: borra l'antiga
// i crida `addSpawn` amb la nova posició. Reusa la mateixa lògica
// de snap/solapament que la col·locació nova, excloent l'entitat
// que es mou del check de solapament.
auto tryMoveSelected(EntityManager& entities) const -> bool;
// que es mou del check de solapament. Cas especial per a la porta:
// el sprite ocupa 3 cols (col-1, col, col+1) sobre el mur superior;
// per tant la columna central vàlida és [1, cols-2] — `tilemap` és
// necessari per saber `cols`.
auto tryMoveSelected(const Tilemap& tilemap, EntityManager& entities) const -> bool;
// Sub-handlers de `updateHand`. Aïllats per mantenir baixa la
// complexitat cognitiva del bucle d'esdeveniments.
void handleHandLeftClick(EntityManager& entities);
void handleHandLeftClick(const Tilemap& tilemap, EntityManager& entities);
void handleHandRightClick();
// Borra l'entitat seleccionada. La validació de constraints