13 Commits

Author SHA1 Message Date
Sam
dad79942c2 Enhance World initialization with size parameters and adjust food spawning range
All checks were successful
Build Simulation and Test / Run All Tests (push) Successful in 27s
2025-06-03 20:10:22 -05:00
Sam
f0e00d66b6 Add interaction radius visibility toggle and render circles for interactable objects
All checks were successful
Build Simulation and Test / Run All Tests (push) Successful in 29s
2025-06-03 20:03:27 -05:00
Sam
3a4301f7cb Refactor Camera and Entity classes for improved type hinting and documentation using typing and pydantic.
All checks were successful
Build Simulation and Test / Run All Tests (push) Successful in 34s
2025-06-03 19:47:39 -05:00
Sam
9e3c34fd3e Enable food spawning and ensure selected objects remain valid during ticks
All checks were successful
Build Simulation and Test / Run All Tests (push) Successful in 40s
2025-06-03 19:29:37 -05:00
5eb2079da1 food work :3
All checks were successful
Build Simulation and Test / Run All Tests (push) Successful in 2m18s
2025-06-03 19:25:54 -05:00
da355dbc6c Merge branch 'food'
# Conflicts:
#	main.py
#	world/render_objects.py
2025-06-03 18:46:47 -05:00
Sam
b80a5afc4a Added camera stabilization, moved the Camera class into its own file, normalized the diagonal camera vector, added a select and multi-select feature, added an inspect feature, changed the world class to use spatial hashing for better storage, changed the world class to use a double buffer to swap states when ticking, added death and interaction flags, added world class object queries, added an abstract base class for a basic entity that should be inherited by all object classes, added a max_visual_width parameter to said base class for selection clarity that should be set by all new entity/object classes, and added a basic interaction framework with an interaction radius parameter. When an object could interact with it's neighbors in the next tick, it should enable its can_interact flag, and the world will provide a list of interactable objects in that radius through the object's tick function. Also removed ruff format precommit check because it currently doesn't work. Also temporarily removed food class because it's outdated.
All checks were successful
Build Simulation and Test / Run All Tests (push) Successful in 2m21s
2025-06-03 18:38:27 -05:00
fc171cd523 food turns yellow then black as it spoils, checks food amount and adds more to equal 10, randomizes position with seed 2025-06-02 17:01:19 -05:00
56857e24b8 food turns green as it spoils 2025-06-02 00:30:51 -05:00
6952e88e61 Rendering framework
All checks were successful
Build Simulation and Test / Run All Tests (push) Successful in 2m0s
2025-06-01 23:59:53 -05:00
Sam
3988f0a6fc Formatting with Ruff
All checks were successful
Build Simulation and Test / Run All Tests (push) Successful in 27s
2025-06-01 16:18:00 -05:00
Sam
34f790ca18 Optimize grid line drawing by precomputing line coordinates for improved performance 2025-05-31 19:25:36 -05:00
Sam
43882f4fef Add initial project structure with Pygame integration and camera controls 2025-05-31 18:30:47 -05:00