feat(editor): col·locació d'entitats amb snap per tipus i bloqueig de solapaments
This commit is contained in:
1 parent
94213f9fd6
commit
9b09ccb765
5 files changed
+165
-38
No files matched your search
@@ -7,6 +7,7 @@
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
class EntityManager;
|
||||
class Surface;
|
||||
class Tilemap;
|
||||
|
||||
@@ -49,7 +50,9 @@ class Editor {
|
||||
[[nodiscard]] auto active() const -> bool { return active_; }
|
||||
|
||||
// Processa input propi (brush, picker). No-op si no actiu.
|
||||
void update(int delta_ms, Tilemap& tilemap);
|
||||
// `entities` cal perquè els modes ENTITY i HAND modifiquen el manager
|
||||
// en directe (col·loca/mou/borra entitats); en TILE no s'usa.
|
||||
void update(int delta_ms, Tilemap& tilemap, EntityManager& entities);
|
||||
|
||||
// Pinta el border blau i, segons mode i picker, brush preview, marc
|
||||
// d'entitat seleccionada o el picker. No-op si no actiu.
|
||||
@@ -80,11 +83,18 @@ class Editor {
|
||||
// Branques d'update segons (mode, picker). Només té sentit cridar-les
|
||||
// des d'`update`.
|
||||
void updateTileBrush(Tilemap& tilemap, int canvas_x, int canvas_y);
|
||||
void updateEntityBrush(int canvas_x, int canvas_y);
|
||||
void updateHand(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 updateTilePicker(const Tilemap& tilemap, int canvas_x, int canvas_y);
|
||||
void updateEntityPicker(int canvas_x, int canvas_y);
|
||||
|
||||
// Intent de col·locació segons brush_entity_ a la cel·la del cursor.
|
||||
// Construeix un node spawn sintètic, fa el snap concret per tipus
|
||||
// (sarc → rejilla 4×5; door → fila del mur i, de moment, columna
|
||||
// canònica) i comprova solapaments. No-op si la cel·la està ocupada
|
||||
// o el snap no és vàlid. Retorna true si s'ha col·locat.
|
||||
auto tryPlaceEntity(EntityManager& entities) -> bool;
|
||||
|
||||
void renderTilePicker(const Tilemap& tilemap) const;
|
||||
void renderEntityPicker(const Tilemap& tilemap) const;
|
||||
|
||||
|
||||
Reference in new issue
Block a user