Entity knowledge contents: make map data available directly through GridPointState
Refined Design - Entity Knowledge / Visible Entities
New Entity Method
entity.visible_entities(fov=None) # Returns iterable, not list
fov=Noneusesgrid.fov(the…
Batch Operations for Grid
Refined Design - Batch Operations for Grid Layers
Core Problem Solved
The anti-pattern of O(n) Python/C++ boundary crossings:
# BAD: 30,000 calls for 100x100 grid
for y in…
CellView API
Refined Design - CellView API Integration
After design discussion, #114 is being expanded to encompass the Perspective System for layer-based FOV rendering.
New Scope
**Phase 1: FOV…
Turn-based LLM Agent Orchestration
Deterministic Text Descriptions From Room Graph
Grounded Multi-Agent Testbed: LLM Agents in Discrete Simulated Environments
Separate render loop from game state loop
Event Handler Complexity Event handlers run on the main thread and block rendering
From john/McRogueFace/wiki/Input-and-Events.-
Providing consistent state is the challenge, but…
Batch Operations for Grid
perspective_enabledandset_perspective()may still exist but the FOV overlay isn't automatic anymore.
Proper exposure for FOV and pathfinding without requiring Python to receive huge…
Separate render loop from game state loop
remove setScene, keyPressScene, currentScene in favor of mcrfpy.scene
Remove original layers and migrate Grids to entirely user-driven layer objects
Grid Layer Dirty Flags and RenderTexture Caching
Fix compute_fov() O(n²) performance bug - return None instead of cell list
Remove original layers and migrate Grids to entirely user-driven layer objects
Design Decision Summary
Named Layers as GridPoint Properties
# Explicit layer definition
grid = mcrfpy.Grid(
grid_size=(100, 100),
layers={
"ground": "color",
…