This is our largest net-negative commit yet\! Removed the entire deprecated action registration system that provided unnecessary two-step indirection: keyboard → action string → Python callback Removed components: - McRFPy_API::_registerPyAction() and _registerInputAction() methods - McRFPy_API::callbacks map for storing Python callables - McRFPy_API::doAction() method for executing callbacks - ACTIONPY macro from Scene.h for detecting "_py" suffixed actions - Scene::registerActionInjected() and unregisterActionInjected() methods - tests/api_registerPyAction_issue2_test.py (tested deprecated functionality) The game now exclusively uses keypressScene() for keyboard input handling, which is simpler and more direct. Also commented out the unused _camFollow function that referenced non-existent do_camfollow variable. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| assets | ||
| deps/platform | ||
| modules | ||
| src | ||
| tests | ||
| .gitignore | ||
| .gitmodules | ||
| CLAUDE.md | ||
| CMakeLists.txt | ||
| GNUmakefile | ||
| LICENSE.md | ||
| README.md | ||
| ROADMAP.md | ||
| automation_example.py | ||
| automation_exec_examples.py | ||
| build.sh | ||
| clean.sh | ||
| compile_commands.json | ||
| css_colors.txt | ||
| debug_immediate.png | ||
| debug_multi_0.png | ||
| debug_multi_1.png | ||
| debug_multi_2.png | ||
| example_automation.py | ||
| example_config.py | ||
| example_monitoring.py | ||
| exec_flag_implementation.cpp | ||
| generate_color_table.py | ||
| gitea_issues.py | ||
| grid_none_texture_test_197.png | ||
| issue78_fixed_1658.png | ||
| screenshot_opaque_fix_20250703_174829.png | ||
| timer_success_1086.png | ||
| validate_screenshot_basic_20250703_174532.png | ||
| validate_screenshot_final_20250703_174532.png | ||
| validate_screenshot_with_spaces 20250703_174532.png | ||
| wikicrayons_colors.txt | ||
| xkcd_colors.txt | ||
README.md
McRogueFace - 2D Game Engine
An experimental prototype game engine built for my own use in 7DRL 2023.
Blame my wife for the name
Tenets:
- C++ first, Python close behind.
- Entity-Component system based on David Churchill's Memorial University COMP4300 course lectures available on Youtube.
- Graphics, particles and shaders provided by SFML.
- Pathfinding, noise generation, and other Roguelike goodness provided by TCOD.
Why?
I did the r/RoguelikeDev TCOD tutorial in Python. I loved it, but I did not want to be limited to ASCII. I want to be able to draw pixels on top of my tiles (like lines or circles) and eventually incorporate even more polish.
To-do
- ✅ Initial Commit
- ✅ Integrate scene, action, entity, component system from COMP4300 engine
- ✅ Windows / Visual Studio project
- ✅ Draw Sprites
- ✅ Play Sounds
- ✅ Draw UI, spawn entity from Python code
- ❌ Python AI for entities (NPCs on set paths, enemies towards player)
- ✅ Walking / Collision
- ❌ "Boards" (stairs / doors / walk off edge of screen)
- ❌ Cutscenes - interrupt normal controls, text scroll, character portraits
- ❌ Mouse integration - tooltips, zoom, click to select targets, cursors