McRogueFace/src
John McCardle 4b05a95efe feat: Add dynamic layer system for Grid (closes #147)
Implements ColorLayer and TileLayer classes with z_index ordering:
- ColorLayer: stores RGBA color per cell for overlays, fog of war, etc.
- TileLayer: stores sprite index per cell with optional texture
- z_index < 0: renders below entities
- z_index >= 0: renders above entities

Python API:
- grid.add_layer(type, z_index, texture) - create layer
- grid.remove_layer(layer) - remove layer
- grid.layers - list of layers sorted by z_index
- grid.layer(z_index) - get layer by z_index
- layer.at(x,y) / layer.set(x,y,value) - cell access
- layer.fill(value) - fill entire layer

Layers are allocated separately from UIGridPoint, reducing memory
for grids that don't need all features. Base grid retains walkable/
transparent arrays for TCOD pathfinding.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 21:35:38 -05:00
..
scripts refactor: Rename click property to on_click (closes #139) 2025-11-27 22:31:53 -05:00
ActionCode.h Squashed commit of the following: [interpreter_mode] 2025-07-05 17:23:09 -04:00
Animation.cpp feat: Exit on first Python callback exception (closes #133) 2025-11-26 10:26:30 -05:00
Animation.h Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
BenchmarkLogger.cpp feat: Add work_time_ms to benchmark logging for load analysis 2025-11-28 16:13:40 -05:00
BenchmarkLogger.h feat: Add work_time_ms to benchmark logging for load analysis 2025-11-28 16:13:40 -05:00
CommandLineParser.cpp feat: Migrate to Python 3.14 (closes #135) 2025-11-26 17:48:12 -05:00
CommandLineParser.h Squashed commit of the following: [interpreter_mode] 2025-07-05 17:23:09 -04:00
Common.h Refactor: Python 3.12, build libtcod & SFML from source. Cmake build. Directory cleanup 2024-02-24 22:48:39 -05:00
GameEngine.cpp feat: Implement texture caching system with dirty flag optimization (closes #144) 2025-11-28 19:30:24 -05:00
GameEngine.h feat: Add work_time_ms to benchmark logging for load analysis 2025-11-28 16:13:40 -05:00
GridLayers.cpp feat: Add dynamic layer system for Grid (closes #147) 2025-11-28 21:35:38 -05:00
GridLayers.h feat: Add dynamic layer system for Grid (closes #147) 2025-11-28 21:35:38 -05:00
HeadlessRenderer.cpp Squashed commit of the following: [interpreter_mode] 2025-07-05 17:23:09 -04:00
HeadlessRenderer.h Squashed commit of the following: [interpreter_mode] 2025-07-05 17:23:09 -04:00
ImGuiConsole.cpp feat: Add ImGui-based developer console overlay 2025-11-26 20:03:58 -05:00
ImGuiConsole.h feat: Add ImGui-based developer console overlay 2025-11-26 20:03:58 -05:00
IndexTexture.cpp Refactor: Python 3.12, build libtcod & SFML from source. Cmake build. Directory cleanup 2024-02-24 22:48:39 -05:00
IndexTexture.h Refactor: Python 3.12, build libtcod & SFML from source. Cmake build. Directory cleanup 2024-02-24 22:48:39 -05:00
McRFPy_API.cpp feat: Add dynamic layer system for Grid (closes #147) 2025-11-28 21:35:38 -05:00
McRFPy_API.h feat: Add benchmark logging system for performance analysis (closes #104) 2025-11-28 16:05:55 -05:00
McRFPy_Automation.cpp feat: Implement comprehensive mouse event system 2025-11-27 23:08:31 -05:00
McRFPy_Automation.h feat: Implement comprehensive mouse event system 2025-11-27 23:08:31 -05:00
McRFPy_Doc.h feat: add documentation macro system header 2025-10-30 11:16:44 -04:00
McRFPy_Libtcod.cpp Squashed commit of 53 Commits: [alpha_streamline_2] 2025-07-09 22:41:15 -04:00
McRFPy_Libtcod.h Squashed commit of 53 Commits: [alpha_streamline_2] 2025-07-09 22:41:15 -04:00
McRogueFaceConfig.h feat: Exit on first Python callback exception (closes #133) 2025-11-26 10:26:30 -05:00
Profiler.cpp feat: Add comprehensive profiling system with F3 overlay 2025-10-25 00:45:44 -04:00
Profiler.h feat: Add comprehensive profiling system with F3 overlay 2025-10-25 00:45:44 -04:00
ProfilerOverlay.cpp feat: Add comprehensive profiling system with F3 overlay 2025-10-25 00:45:44 -04:00
PyAnimation.cpp docs: convert Phase 2 classes to documentation macros (Animation, Window, SceneObject) 2025-10-30 17:03:28 -04:00
PyAnimation.h Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
PyCallable.cpp feat: Exit on first Python callback exception (closes #133) 2025-11-26 10:26:30 -05:00
PyCallable.h Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
PyColor.cpp feat: Migrate to Python 3.14 (closes #135) 2025-11-26 17:48:12 -05:00
PyColor.h Squashed commit of 53 Commits: [alpha_streamline_2] 2025-07-09 22:41:15 -04:00
PyDrawable.cpp refactor: Rename click property to on_click (closes #139) 2025-11-27 22:31:53 -05:00
PyDrawable.h Squashed commit of 53 Commits: [alpha_streamline_2] 2025-07-09 22:41:15 -04:00
PyFont.cpp docs: convert Phase 1 classes to documentation macros (Color, Font, Texture, Timer) 2025-10-30 16:59:40 -04:00
PyFont.h Squashed commit of the following: [alpha_streamline_1] 2025-07-05 18:56:02 -04:00
PyObjectUtils.h Iterators, other Python C API improvements 2025-05-31 09:11:51 -04:00
PyPositionHelper.h Squashed commit of 53 Commits: [alpha_streamline_2] 2025-07-09 22:41:15 -04:00
PyRAII.h Iterators, other Python C API improvements 2025-05-31 09:11:51 -04:00
PyScene.cpp feat: Implement comprehensive mouse event system 2025-11-27 23:08:31 -05:00
PyScene.h feat: Implement comprehensive mouse event system 2025-11-27 23:08:31 -05:00
PySceneObject.cpp feat: Implement Phase A UI hierarchy foundations (closes #122, #102, #116, #118) 2025-11-27 16:33:17 -05:00
PySceneObject.h Squashed commit of 53 Commits: [alpha_streamline_2] 2025-07-09 22:41:15 -04:00
PyTexture.cpp feat: Implement texture caching system with dirty flag optimization (closes #144) 2025-11-28 19:30:24 -05:00
PyTexture.h feat: Implement texture caching system with dirty flag optimization (closes #144) 2025-11-28 19:30:24 -05:00
PyTimer.cpp docs: convert Phase 1 classes to documentation macros (Color, Font, Texture, Timer) 2025-10-30 16:59:40 -04:00
PyTimer.h Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
PyVector.cpp feat: Migrate to Python 3.14 (closes #135) 2025-11-26 17:48:12 -05:00
PyVector.h feat: Add Vector convenience features - indexing, tuple comparison, floor 2025-11-26 09:37:14 -05:00
PyWindow.cpp docs: convert Phase 2 classes to documentation macros (Animation, Window, SceneObject) 2025-10-30 17:03:28 -04:00
PyWindow.h Squashed commit of 53 Commits: [alpha_streamline_2] 2025-07-09 22:41:15 -04:00
PythonObjectCache.cpp Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
PythonObjectCache.h Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
Resources.cpp Adding text functionality to Caption (why was that missing???) 2024-03-07 12:35:07 -05:00
Resources.h Adding text functionality to Caption (why was that missing???) 2024-03-07 12:35:07 -05:00
Scene.cpp feat: Implement Phase A UI hierarchy foundations (closes #122, #102, #116, #118) 2025-11-27 16:33:17 -05:00
Scene.h feat: Implement Phase A UI hierarchy foundations (closes #122, #102, #116, #118) 2025-11-27 16:33:17 -05:00
SceneTransition.cpp Squashed commit of 53 Commits: [alpha_streamline_2] 2025-07-09 22:41:15 -04:00
SceneTransition.h Squashed commit of 53 Commits: [alpha_streamline_2] 2025-07-09 22:41:15 -04:00
Timer.cpp feat: Exit on first Python callback exception (closes #133) 2025-11-26 10:26:30 -05:00
Timer.h Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
UI.h Squashed commit of the following: [break_up_ui_h] 2024-04-20 10:32:04 -04:00
UIArc.cpp feat: Implement texture caching system with dirty flag optimization (closes #144) 2025-11-28 19:30:24 -05:00
UIArc.h feat: Add UILine, UICircle, and UIArc drawing primitives 2025-11-25 21:42:33 -05:00
UIBase.h feat: Implement comprehensive mouse event system 2025-11-27 23:08:31 -05:00
UICaption.cpp feat: Implement texture caching system with dirty flag optimization (closes #144) 2025-11-28 19:30:24 -05:00
UICaption.h Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
UICircle.cpp feat: Implement texture caching system with dirty flag optimization (closes #144) 2025-11-28 19:30:24 -05:00
UICircle.h feat: Add UILine, UICircle, and UIArc drawing primitives 2025-11-25 21:42:33 -05:00
UICollection.cpp feat: Implement Phase A UI hierarchy foundations (closes #122, #102, #116, #118) 2025-11-27 16:33:17 -05:00
UICollection.h fix: Make UICollection/EntityCollection match Python list semantics 2025-11-26 08:08:43 -05:00
UIContainerBase.h Squashed commit of 53 Commits: [alpha_streamline_2] 2025-07-09 22:41:15 -04:00
UIDrawable.cpp feat: Implement texture caching system with dirty flag optimization (closes #144) 2025-11-28 19:30:24 -05:00
UIDrawable.h feat: Implement texture caching system with dirty flag optimization (closes #144) 2025-11-28 19:30:24 -05:00
UIEntity.cpp feat: Add dirty flag propagation to all UIDrawables and expand metrics API (#144, #104) 2025-11-28 15:44:09 -05:00
UIEntity.h feat: Add entity.grid property and fix auto-removal bug 2025-11-27 21:08:31 -05:00
UIEntityPyMethods.h Squashed commit of 53 Commits: [alpha_streamline_2] 2025-07-09 22:41:15 -04:00
UIFrame.cpp feat: Implement texture caching system with dirty flag optimization (closes #144) 2025-11-28 19:30:24 -05:00
UIFrame.h feat: Implement texture caching system with dirty flag optimization (closes #144) 2025-11-28 19:30:24 -05:00
UIGrid.cpp feat: Add dynamic layer system for Grid (closes #147) 2025-11-28 21:35:38 -05:00
UIGrid.h feat: Add dynamic layer system for Grid (closes #147) 2025-11-28 21:35:38 -05:00
UIGridPoint.cpp Squashed commit of 53 Commits: [alpha_streamline_2] 2025-07-09 22:41:15 -04:00
UIGridPoint.h Squashed commit of 53 Commits: [alpha_streamline_2] 2025-07-09 22:41:15 -04:00
UILine.cpp feat: Implement texture caching system with dirty flag optimization (closes #144) 2025-11-28 19:30:24 -05:00
UILine.h feat: Add UILine, UICircle, and UIArc drawing primitives 2025-11-25 21:42:33 -05:00
UISprite.cpp feat: Implement texture caching system with dirty flag optimization (closes #144) 2025-11-28 19:30:24 -05:00
UISprite.h Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
UITestScene.cpp Squashed commit of 53 Commits: [alpha_streamline_2] 2025-07-09 22:41:15 -04:00
UITestScene.h Refactor: remove "s" prefix from "sRender" method ( -> "render") Closes #44 2024-04-20 14:16:14 -04:00
main.cpp Merge branch 'origin/master' - combine double-execution fixes 2025-11-26 18:03:15 -05:00