McRogueFace/src
John McCardle 018e73590f feat: Implement FOV enum and layer draw_fov for #114 and #113
Phase 1 - FOV Enum System:
- Create PyFOV.h/cpp with mcrfpy.FOV IntEnum (BASIC, DIAMOND, SHADOW, etc.)
- Add mcrfpy.default_fov module property initialized to FOV.BASIC
- Add grid.fov and grid.fov_radius properties for per-grid defaults
- Remove deprecated module-level FOV_* constants (breaking change)

Phase 2 - Layer Operations:
- Implement ColorLayer.fill_rect(pos, size, color) for rectangle fills
- Implement TileLayer.fill_rect(pos, size, index) for tile rectangle fills
- Implement ColorLayer.draw_fov(source, radius, fov, visible, discovered, unknown)
  to paint FOV-based visibility on color layers using parent grid's TCOD map

The FOV enum uses Python's IntEnum for type safety while maintaining
backward compatibility with integer values. Tests updated to use new API.

Addresses #114 (FOV enum), #113 (layer operations)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 15:18:10 -05:00
..
scripts refactor: Remove layer-related GridPoint properties, fix layer z-index 2025-11-28 23:21:39 -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
GridChunk.cpp refactor: Remove layer-related GridPoint properties, fix layer z-index 2025-11-28 23:21:39 -05:00
GridChunk.h refactor: Remove layer-related GridPoint properties, fix layer z-index 2025-11-28 23:21:39 -05:00
GridLayers.cpp feat: Implement FOV enum and layer draw_fov for #114 and #113 2025-12-01 15:18:10 -05:00
GridLayers.h feat: Implement FOV enum and layer draw_fov for #114 and #113 2025-12-01 15:18:10 -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
main.cpp Merge branch 'origin/master' - combine double-execution fixes 2025-11-26 18:03:15 -05:00
McRFPy_API.cpp feat: Implement FOV enum and layer draw_fov for #114 and #113 2025-12-01 15:18:10 -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 feat: Implement FOV enum and layer draw_fov for #114 and #113 2025-12-01 15:18:10 -05:00
McRFPy_Libtcod.h feat: Implement FOV enum and layer draw_fov for #114 and #113 2025-12-01 15:18:10 -05: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
PyFOV.cpp feat: Implement FOV enum and layer draw_fov for #114 and #113 2025-12-01 15:18:10 -05:00
PyFOV.h feat: Implement FOV enum and layer draw_fov for #114 and #113 2025-12-01 15:18:10 -05: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
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
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
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: Implement FOV enum and layer draw_fov for #114 and #113 2025-12-01 15:18:10 -05:00
UIGrid.h feat: Implement FOV enum and layer draw_fov for #114 and #113 2025-12-01 15:18:10 -05:00
UIGridPoint.cpp refactor: Remove layer-related GridPoint properties, fix layer z-index 2025-11-28 23:21:39 -05:00
UIGridPoint.h refactor: Remove layer-related GridPoint properties, fix layer z-index 2025-11-28 23:21:39 -05: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 refactor: Remove layer-related GridPoint properties, fix layer z-index 2025-11-28 23:21:39 -05:00
UITestScene.h Refactor: remove "s" prefix from "sRender" method ( -> "render") Closes #44 2024-04-20 14:16:14 -04:00