fd85e8e10a
free the buffer setup and belt registration from BuildingSystem
2026-08-05 06:55:13 +02:00
114a43b205
make BuildingSystem stateless: FactoryState becomes a parameter
2026-08-05 06:50:11 +02:00
d87d063b10
move the placement rules and the config-dependent queries off BuildingSystem
2026-08-05 06:49:49 +02:00
537597c854
delete the unused getAllBeltTiles and BeltTileInfo
2026-08-05 06:49:28 +02:00
9c3be0fbd0
extract the production rules as free functions over config and building
2026-08-05 06:49:15 +02:00
58b94223f7
migrate every factory query off BuildingSystem onto the free functions
2026-08-05 06:46:13 +02:00
1fb63cce4e
move the asteroid width bound into FactoryState
2026-08-05 06:45:33 +02:00
0b7e94b4e4
drop CombatSystem's unused BuildingSystem parameter
2026-08-05 06:45:16 +02:00
0408336cf9
depend on factory data instead of BuildingSystem in the AI path
2026-08-05 06:44:49 +02:00
46932e4abf
move FactoryState ownership out of BuildingSystem to Simulation
2026-08-05 06:43:52 +02:00
0edea5d961
gather the factory's world data into FactoryState
2026-08-05 06:43:30 +02:00
60cc187d92
add BuildingGrid to manage tile occupancy
2026-08-04 18:26:01 +02:00
3990351a16
share BuildingSystem's free functions instead of copying them
2026-08-04 18:24:38 +02:00
475df0e5fd
extract unlock state from Simulation to UnlockState class
2026-08-04 18:10:43 +02:00
785ce3ebfe
remove duplicate findBuildingDef from BuildingSystem
2026-08-03 21:14:13 +02:00
ca727bef35
extract Simulation::initializeSubsystems to remove duplicate code
2026-08-03 20:59:00 +02:00
553a7e0701
add findShipDef/findModuleDef/findRecipeDef to config structs and re-use them in the rest of the code base
2026-08-03 20:57:31 +02:00
3671e1d7e6
fix splitter filters being lost when rotating in place and add test
2026-08-03 20:49:10 +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
a75222f111
Never rotate tunnels in place
2026-07-21 21:14:27 +02:00
9b63af6ccb
Unify tunnel build mode into a single Tunnel button
2026-07-21 21:12:06 +02:00
4ca5b332cd
Snap belt-drag end tile to a building's input edge
2026-07-21 21:09:07 +02:00
1cbc695bc5
Add building status light
2026-07-20 22:19:58 +02:00
be475e2836
allow multi-select for ships/stations, mixable with scrap
2026-07-20 21:03:11 +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
486296feee
Allow direct output-to-input port coupling between adjacent buildings
2026-07-14 20:23:24 +02:00
c9f14970a1
Animate items entering building input ports
2026-07-14 20:21:25 +02:00
6a8c456aa1
Animate items emerging from building output ports
2026-07-14 20:18:47 +02:00
af8a2224c0
fix issue where items were accepted by a belt from opposite travel direction
2026-07-14 20:15:39 +02:00
535d4f8f24
allow to (multi) select scrap
2026-07-13 21:09:01 +02:00
8c4fb78fc9
Allow creating blueprints from construction sites
2026-07-13 20:50:13 +02:00
dd7c997816
Auto-process smelter and reprocessing plant (no recipe selection)
2026-07-12 21:35:23 +02:00
cd966daba9
fix issue where shipyard produces ships with modules without requiring items for the modules if the ship's layout was never changed
2026-07-09 21:29:04 +02:00
88bc4f2170
fix bug where selecting the same ship again in a shipyard clears the layout and resets the progress
2026-07-09 21:05:01 +02:00
4986c1bac8
implement copy building settings with shift + click gesture
2026-07-09 20:29:20 +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
16ed6a5695
Show schematic id for all three types of drops in choice dialog
2026-07-09 20:18:38 +02:00
2ddf13238c
Fix Salvage Bay drop-off not working by adding config-driven buffer capacity
2026-07-09 20:11:12 +02:00
e8786c3922
implement cost formula for asteroid expansion
2026-07-08 20:33:19 +02:00
5b86b15c71
Fix ThreatCostCalculator: per-unit division, scrap fallback, fixpoint, staggered-recipe max
2026-07-08 20:28:31 +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
81b1c7a66b
Derive ship scrap drop from threat
2026-07-02 21:30:38 +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
d271d65678
allow to set the recipe already for construction sites
2026-06-22 22:15:56 +02:00