Phase 2: Entity data model extensions for behavior system
- Add Behavior enum (IDLE..FLEE, 11 values) and Trigger enum (DONE, BLOCKED, TARGET) as runtime IntEnum classes (closes #297, closes #298) - Add entity label system: labels property (frozenset), add_label(), remove_label(), has_label(), constructor kwarg (closes #296) - Add cell_pos integer logical position decoupled from float draw_pos; grid_pos now aliases cell_pos; SpatialHash::updateCell() for cell-based bucket management; FOV/visibility uses cell_position (closes #295) - Add step callback and default_behavior properties to Entity for grid.step() turn management (closes #299) - Update updateVisibility, visible_entities, ColorLayer::updatePerspective to use cell_position instead of float position BREAKING: grid_pos no longer derives from float x/y position. Use cell_pos/grid_pos for logical position, draw_pos for render position. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
94f5f5a3fd
commit
2f1e472245
15 changed files with 886 additions and 34 deletions
|
|
@ -361,9 +361,9 @@ void ColorLayer::updatePerspective() {
|
|||
|
||||
if (!parent_grid) return;
|
||||
|
||||
// Get entity position and grid's FOV settings
|
||||
int source_x = static_cast<int>(entity->position.x);
|
||||
int source_y = static_cast<int>(entity->position.y);
|
||||
// Get entity cell position and grid's FOV settings (#295)
|
||||
int source_x = entity->cell_position.x;
|
||||
int source_y = entity->cell_position.y;
|
||||
int radius = parent_grid->fov_radius;
|
||||
TCOD_fov_algorithm_t algorithm = parent_grid->fov_algorithm;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue