feat: Add entity.visible_entities() and improve entity.updateVisibility() (closes #113)
Phase 3 of Agent POV Integration: Entity.updateVisibility() improvements: - Now uses grid.fov_algorithm and grid.fov_radius instead of hardcoded values - Updates any ColorLayers bound to this entity via apply_perspective() - Properly triggers layer FOV recomputation when entity moves New Entity.visible_entities(fov=None, radius=None) method: - Returns list of other entities visible from this entity's position - Optional fov parameter to override grid's FOV algorithm - Optional radius parameter to override grid's fov_radius - Useful for AI decision-making and line-of-sight checks Test coverage in test_perspective_binding.py: - Tests entity movement with bound layers - Tests visible_entities with wall occlusion - Tests radius override limiting visibility 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
018e73590f
commit
c5b4200dea
3 changed files with 411 additions and 12 deletions
|
|
@ -89,6 +89,7 @@ public:
|
|||
static PyObject* die(PyUIEntityObject* self, PyObject* Py_UNUSED(ignored));
|
||||
static PyObject* path_to(PyUIEntityObject* self, PyObject* args, PyObject* kwds);
|
||||
static PyObject* update_visibility(PyUIEntityObject* self, PyObject* Py_UNUSED(ignored));
|
||||
static PyObject* visible_entities(PyUIEntityObject* self, PyObject* args, PyObject* kwds);
|
||||
static int init(PyUIEntityObject* self, PyObject* args, PyObject* kwds);
|
||||
|
||||
static PyObject* get_position(PyUIEntityObject* self, void* closure);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue