Move static mesh physics initialization and optimize UI event handling
- Physics: Moved the static mesh physics body creation from
Gameplay::runintoMesh::loadJson. Meshes now automatically register with the Jolt physics system if the"isStatic": trueproperty is present in the JSON definition. - Scene Management: Added a specialized
getPlayer()method to theSceneclass to replace genericget<Player>()calls inGameplayandCrystalSanctuaryGuardian. - UI Optimization: Refactored UI event loops (mouse motion, clicks, and wheel) in
Gameplayto use a newgetNodeUis()helper, avoiding manualdynamic_castchecks on every node. - Projectiles: Refactored
BhsProjectileto handle its self-removal timer in apostCtor()override rather than a deferred action in the constructor. - Documentation: Updated
todo.mdto replace “recipe” tasks with specific multi-tier model requirements (x1 to x32768) for Entropy, Harmony, and Essence items. - Code Quality: Cleaned up
Meshclass implementation by moving inline logic tomesh.cppand implementingsaveJson/loadJson. - Scrollbar & Input: Fixed TileView scrolling logic by properly calculating column counts (nCol) to prevent division by zero. Corrected the scrollPos clamping math and implemented functionality to scroll by clicking and dragging the scrollbar thumb.