feat: Add UIDrawable children collection to Grid
Grid now supports a `children` collection for arbitrary UIDrawable elements (speech bubbles, effects, highlights, path visualization, etc.) that automatically transform with the grid's camera (pan/zoom). Key features: - Children positioned in grid-world pixel coordinates - Render after entities, before FOV overlay (proper z-ordering) - Sorted by z_index, culled when outside visible region - Click detection transforms through grid camera - Automatically clipped to grid boundaries via RenderTexture Python API: grid.children.append(caption) # Speech bubble follows grid camera grid.children.append(circle) # Highlight indicator Closes #132 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
311dc02f1d
commit
4d6808e34d
3 changed files with 216 additions and 12 deletions
|
|
@ -75,7 +75,11 @@ public:
|
|||
sf::RenderTexture renderTexture;
|
||||
std::vector<UIGridPoint> points;
|
||||
std::shared_ptr<std::list<std::shared_ptr<UIEntity>>> entities;
|
||||
|
||||
|
||||
// UIDrawable children collection (speech bubbles, effects, overlays, etc.)
|
||||
std::shared_ptr<std::vector<std::shared_ptr<UIDrawable>>> children;
|
||||
bool children_need_sort = true; // Dirty flag for z_index sorting
|
||||
|
||||
// Background rendering
|
||||
sf::Color fill_color;
|
||||
|
||||
|
|
@ -118,6 +122,7 @@ public:
|
|||
static PyObject* py_compute_astar_path(PyUIGridObject* self, PyObject* args, PyObject* kwds);
|
||||
static PyMethodDef methods[];
|
||||
static PyGetSetDef getsetters[];
|
||||
static PyObject* get_entities(PyUIGridObject* self, void* closure);
|
||||
static PyObject* get_children(PyUIGridObject* self, void* closure);
|
||||
static PyObject* repr(PyUIGridObject* self);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue