a783e57731
move the two item visitors to the queries they always were
...
forEachEmergingItem and forEachIncomingItem took a const FactoryState& and
touched no member of BuildingSystem: they read the state and the free geometry
helpers and nothing else. They are queries wearing a system's uniform, and their
one caller -- the renderer -- reached through getBuildings() to call them,
passing the state back in as an argument.
They move to FactoryQueries beside the rest of the read surface, and the renderer
calls them directly. With that, BuildingSystem answers no queries at all: its
const accessor on Simulation and on ArenaSimulation had no other user, so both
are gone. Nothing outside the command path can now reach the system.
No behaviour changes; the bodies move verbatim apart from two arrows in comments
that were non-ASCII.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Ne3mejABZoLWKLh8fgpM3x
2026-08-19 17:07:17 +02:00
60260540cd
make deconstruction its own system
2026-08-05 07:10:46 +02:00
1f4503176b
make construction its own system (extracted from BuildingSystem)
2026-08-05 06:57:12 +02:00
58b94223f7
migrate every factory query off BuildingSystem onto the free functions
2026-08-05 06:46:13 +02:00
46932e4abf
move FactoryState ownership out of BuildingSystem to Simulation
2026-08-05 06:43:52 +02:00
475df0e5fd
extract unlock state from Simulation to UnlockState class
2026-08-04 18:10:43 +02:00
ca727bef35
extract Simulation::initializeSubsystems to remove duplicate code
2026-08-03 20:59:00 +02:00
8b71fe1a03
Rename ship/station scrap drop entities to "debris"
2026-07-23 20:51:05 +02:00
e20a0bba67
Rename Demolish to Deconstruct
2026-07-22 21:40:42 +02:00
b2ce20e6ad
Add deconstruction queue
2026-07-22 21:37:56 +02:00
a9082c57f3
Implement config-driven unlock groups so that multiple things can be unlocked at once (including buildings)
2026-07-22 21:34:59 +02:00
9622fa4345
Use std::optional instead of sentinel values for absent data
2026-07-20 20:27:20 +02:00
d412c69f82
Prefix all getters with "get"
2026-07-19 21:17:38 +02:00
6274b5ce60
List unlocked recipes with tooltips in schematic choice dialog instead of unlocked item names
2026-07-09 20:22:17 +02:00
e8786c3922
implement cost formula for asteroid expansion
2026-07-08 20:33:19 +02:00
6ea0655eaf
implement unlock dependencies
2026-07-03 08:35:45 +02:00
18e732ae99
Remove schematic upgrades and module and ship levels
2026-07-02 21:32:36 +02:00
0a7e9a34ef
Add artifact win condition ( #3 )
...
Reviewed-on: #3
Co-authored-by: Malte Langkabel <malte.langkabel@gmail.com >
Co-committed-by: Malte Langkabel <malte.langkabel@gmail.com >
2026-07-01 20:27:29 +00:00
d74ba5bfad
Replay: deterministic record & playback ( #4 )
...
Add deterministic record/playback for a run.
Recording captures `(seed, config hash, ordered tick-tagged commands)` and re-simulates on playback — no state snapshots. `DotaFactory.exe --replay <file>` re-plays a recorded run view-only with manual speed/pause.
Reviewed-on: #4
Co-authored-by: Malte Langkabel <malte.langkabel@gmail.com >
Co-committed-by: Malte Langkabel <malte.langkabel@gmail.com >
2026-07-01 19:20:08 +00:00
9573b9789a
change repair_tool application and add beams for salvager and repair_tool
2026-06-19 21:15:47 +02:00
e8dd73bcb0
refactor AI system
2026-06-15 09:16:56 +02:00
1ea1cc59fb
show threat rate in debug output
2026-06-14 13:39:10 +02:00
3716c2b734
show implicitly unlocked items in schematic unlock dialog
2026-06-13 18:19:25 +02:00
5317f35198
switch to using own event system
2026-06-13 17:52:22 +02:00
49f7129bd5
schematic selection dialog
2026-06-13 14:19:51 +02:00
1641189b75
explicit recipe unlocking
2026-06-12 17:15:06 +02:00
54a6056b77
implicit item locking
2026-06-12 16:14:21 +02:00
af96b95f61
allow to unlock modules when destroying defence stations
2026-06-10 22:37:38 +02:00
aad094f842
allow to configure when which schematic gets unlockable
2026-06-10 21:09:03 +02:00
8dad554800
show threat budget in debug text overlay
2026-06-06 21:07:18 +02:00
9677133c54
add event system and use it to propagate to print traces
2026-06-05 17:18:17 +02:00
15d8fa4f2c
add boss wave counter and countdown to the title bar
2026-06-03 22:44:56 +02:00
0cd0529468
split MovementSystem to MovementIntentSystem and DynamicBodySystem
2026-05-25 07:25:54 +02:00
b57299fd2a
rename EntityId to BuildingId
2026-05-23 07:53:56 +02:00
ca07cbaf0e
switch to ECS architecture
2026-05-22 20:31:39 +02:00
452c26c8b3
split off MovementSystem and AiSystem from ShipSystem
2026-05-20 22:26:45 +02:00
ed6b503767
implement ships depart in waves
2026-04-27 21:31:04 +02:00
fb83db98ab
rename blueprint to schematic
2026-04-26 21:00:55 +02:00
78f746d352
implement load config on game restart
2026-04-22 22:53:56 +02:00
4f27c8f3a9
fix: demolish did not return blocks
2026-04-21 21:16:10 +02:00
b7f2005504
add restart button to game over screen
2026-04-21 20:38:18 +02:00
94123e93d6
implement ui
2026-04-20 20:33:37 +02:00
498b97db20
implement waves
2026-04-20 14:10:01 +02:00
411be72a5c
implement scrap and ship skeleton
2026-04-20 07:32:18 +02:00
bf29cc40e3
implement building system
2026-04-19 20:53:08 +02:00
ffe69f08b5
implement simulation shell
2026-04-19 15:49:18 +02:00