Commit Graph

106 Commits

Author SHA1 Message Date
Ryan Walters
83e0d1d737 fix: FruitSprites resource for common tests, disable Exit command bindings on Emscripten, update ROADMAP.md 2025-09-10 22:08:32 -05:00
Ryan Walters
d86864b6a3 feat: fruit display hud 2025-09-10 22:00:11 -05:00
Ryan Walters
d7a6ee7684 fix: flush world after switching to observer-based item collection 2025-09-10 21:45:10 -05:00
Ryan Walters
d84f0c831e feat: proper scheduling via SystemSet, non-conditional game systems, better collision handling 2025-09-10 21:36:51 -05:00
Ryan Walters
ae19ca1795 feat: rewrite ghost/item collision eventing into trigger-based observer 2025-09-10 17:15:15 -05:00
Ryan Walters
7b6dad0c74 refactor: remove unused component, simplify visibility check defaulting behavior, reformat STORY.md 2025-09-10 11:17:12 -05:00
Ryan Walters
5563b64044 refactor: replace immutable Hidden component with mutable Visibility component 2025-09-10 00:45:16 -05:00
Ryan Walters
cb691b0907 refactor: move animation components into new systems/animation submodule 2025-09-10 00:26:49 -05:00
Ryan Walters
ce8ea347e1 refactor: reorganize hud-related elements into systems/hud submodule 2025-09-09 17:00:32 -05:00
Ryan Walters
ca006b5073 refactor: remove dead code, tune lints, remove useless tests 2025-09-09 14:22:06 -05:00
Ryan Walters
5d56b31353 feat: fruit spawning mechanism, sprites, pellet counting, fruit trigger observer 2025-09-09 11:26:05 -05:00
Ryan Walters
b4990af109 chore: fix clippy lints part 972 2025-09-08 23:53:30 -05:00
Ryan Walters
088c496ad9 refactor: store common components & bundles in 'common' submodule, move others directly into relevant files, create 'animation' submodule 2025-09-08 23:53:30 -05:00
Ryan Walters
5bdf11dfb6 feat: enhance slow frame timing warning 2025-09-08 19:19:23 -05:00
Ryan Walters
c163171304 refactor: use Single<> for player queries 2025-09-08 16:50:28 -05:00
Ryan Walters
63e1059df8 feat: implement entity-based sprite system for HUD display (lives)
- Spawn HUD elements as Renderables with simple change-based entity updates
- Updated rendering systems to accommodate new precise pixel positioning for life sprites.
2025-09-08 16:22:40 -05:00
Ryan Walters
11af44c469 feat: add bottom row HUD, proper life display sprites 2025-09-08 14:30:33 -05:00
Ryan Walters
5aba1862c9 feat: improve tracing logs application-wide 2025-09-08 13:50:38 -05:00
Ryan Walters
49a6a5cc39 feat: implement stage transition for ghost eaten pause and add TimeToLive component
- `StageTransition` enum allows for collision system to apply state transition for ghost pausing.
- Added `TimeToLive` component & `time_to_live_system` to provide temporary sprite rendering of bonus sprites.
- Updated `stage_system` to handle the new ghost eaten pause state, including freezing entities and spawning bonus points.
2025-09-08 13:01:40 -05:00
Ryan Walters
e87d458121 fix: set PlayerLives default to 3, use resource for HUD lives count in top left
yes I am fully aware that the UP is not the player lives, I'm just
wanting the indicator to be somewhere and I'll make the proper indicator
tomorrow probably
2025-09-08 01:23:26 -05:00
Ryan Walters
823f480916 feat: setup pacman collision, level restart, game over, death sequence, switch to Vec for TileSequence 2025-09-08 01:14:32 -05:00
Ryan Walters
ca17984d98 feat: use cfg-based coverage exclusion to replace 'ignore-filename-regex' option, setup coveralls & nightly-based coverage 2025-09-06 14:51:23 -05:00
Ryan Walters
c8f389b163 feat: add pacman death sound 2025-09-06 12:15:08 -05:00
Ryan Walters
9219c771d7 test: improve input & map_builder test coverage 2025-09-06 12:15:05 -05:00
Ryan Walters
3c50bfeab6 refactor: add ticks to DeltaTime, rewrite Blinking system for tick-based calculations with absolute calculations, rewrite Blinking/Direction tests 2025-09-06 12:15:03 -05:00
Ryan Walters
42e309a46b feat: enhance profiling with tick-based timing management and zero-padding for skipped frames 2025-09-06 12:15:02 -05:00
Ryan Walters
a38423f006 refactor: use welford's algorithm for one-pass avg/std dev. calculations, input logging tweaks 2025-09-06 12:15:02 -05:00
Ryan Walters
07bd127596 chore: move ttf context out of game.rs, remove unnecessary window event logging 2025-09-06 12:15:01 -05:00
Ryan Walters
2fabd5d7a2 feat: measure total system timings using threading indifferent method, padded formatting 2025-09-06 12:15:00 -05:00
Ryan Walters
2d36d49b13 feat: enumerate and display render driver info, increase node id text opacity 2025-09-06 12:14:59 -05:00
Ryan Walters
0f1e1d4d42 fix: do not use canvas.output_size() for calculations due to browser behavior 2025-09-04 16:06:28 -05:00
Ryan Walters
968eb39b64 feat: fix emscripten browser logging, streamline console initialization and logging 2025-09-04 14:07:24 -05:00
Ryan Walters
57e7f395d7 feat: add drag reference control relaxation with easing, mild refactor 2025-09-04 11:19:48 -05:00
Ryan Walters
1f5af2cd96 feat: touch movement controls 2025-09-04 11:02:51 -05:00
Ryan Walters
b8c7c29376 fix: calculation for rect position scaling in debug_renderer 2025-09-03 23:23:56 -05:00
Ryan Walters
a3c4e5267f refactor: consolidate rendering systems into a combined render system for improved performance and reduced overhead 2025-09-03 23:09:19 -05:00
Ryan Walters
3e630bcbef feat: run input_system less, rework profiling system to allow for conditional ticks, prepopulate and simplify locking mechanisms, drop RwLock 2025-09-03 23:09:19 -05:00
Ryan Walters
33775166a7 feat: add batching & merging of lines in debug rendering 2025-09-03 19:45:55 -05:00
Ryan Walters
f2732a7ff7 feat: improve debug rendering performance via batch rendering of rects 2025-09-03 19:15:05 -05:00
Ryan Walters
6771dea02b fix: avoid padding jitter with constant name padding, minor timing calculation fixes 2025-09-03 19:00:45 -05:00
Ryan Walters
23f43288e1 feat: implement optimized text rendering by caching font characters into special atlas 2025-09-03 17:31:48 -05:00
Ryan Walters
028ee28840 fix: remove redundant double canvas copy 2025-09-03 17:31:06 -05:00
Ryan Walters
4cc5816d1f refactor: use small_rng for Emscripten only, simplify platform to top-level functions only, no trait/struct 2025-09-03 11:11:04 -05:00
Ryan Walters
d6d0f47483 feat: optimize input system, avoid heap allocations, disable as many events as possible 2025-09-02 14:57:01 -05:00
Ryan Walters
7dfab26898 refactor: drop remaining Box::leak & statics where possible 2025-09-02 13:44:40 -05:00
Ryan Walters
7cdd1b6ad9 refactor: use 'unsafe_textures' sdl2 feature to hide lifetimes & obscure leaks into upstream 2025-09-02 12:59:06 -05:00
Ryan Walters
a62ae8dfe7 fix: energizers don't change dead (eyes) ghosts 2025-09-01 15:39:17 -05:00
Ryan Walters
a21459f337 feat: revamp with better separate directional/linear animations, direction independent ticking 2025-09-01 15:28:57 -05:00
Ryan Walters
b53db3788d refactor: unify ghost state management and animation handling, use integers for texture animation 2025-09-01 14:27:48 -05:00
Ryan Walters
e1a2e6ab62 fix: avoid switching ghost back to normal during eyes animation 2025-09-01 13:14:16 -05:00