Aetheria/Assets/Scripts/Gameplay
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens 95e164adce Land RunSave and the one-cache run and player lifecycle (Cut 10)
Owner: ActionGameManager composes the process's one cache. Its CultCache
getter attaches the catalog, GameData/run.cc and GameData/player.cc on
first access, in either scene, and nothing reopens it.

- RunSave (SavedGame.cs) replaces the SavedGame constructor:
  - Capture builds the live run as plain documents and writes nothing. Zone
    contents are `zone.Contents?.PackZone() ?? zone.PackedContents`, so a
    zone generated earlier but not loaded this session keeps its contents
    and its orbit and body records instead of being erased by the next save.
  - Commit is the only writer of SavedGame and SavedZone: one Commit with
    zone i at `savedzone-{i}`, SavedGame.Zones set to those refs, and every
    stored SavedZone outside that set removed. Orbits and bodies staged by
    zone generation land in the same single-file write.
  - Clear removes every run record in one Commit.
- Run begins: New Game's first statement is RunSave.Clear. Run saves:
  ActionGameManager.SaveRun at wormhole arrival and quit. Run ends: Die
  clears the run, then saves settings.
- Run exists only as the run store's SavedGame global: MainMenu enables
  Continue from it (and logs when the run store holds records but no
  SavedGame), and StartGame reads it once to pick the new-run or resume
  branch.
- PlayerSettings: the getter returns the player store's global and, on
  first launch, commits GetDefaultPlayerSettings; it is the only creator.
  SavePlayerSettings commits the instance.
- InputDisplayLayout reads its InputLayout from the catalog by the layout
  asset's name and throws when the catalog has none.

Tests: new RunSaveTests (5): RepeatedSavesKeepRecordCountConstant,
SaveRemovesZonesNoLongerInTheRun, SaveWritesOnlyTheRunStore,
ResumeThenSaveKeepsUnloadedZoneContents, ClearRemovesEveryRunRecord. Each
fails with its rule mutated out.

Builds: headless, 11 tests pass, Unity batchmode compile reports no error CS.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 22:00:27 +02:00
..
Weapons Delete AetheriaMath in favour of CultMath 2026-09-14 18:02:41 +02:00
ActionBarSlot.cs Replace the Database Tools with the Studio and cut Unity over 2026-09-14 19:15:20 +02:00
ActionBarSlot.cs.meta Action Bar (WIP) 2021-04-18 05:13:20 +01:00
ActionGameManager.cs Land RunSave and the one-cache run and player lifecycle (Cut 10) 2026-09-14 22:00:27 +02:00
ActionGameManager.cs.meta Weapon Scripting Overhaul 2021-01-25 05:53:36 +00:00
ArticulationPoint.cs Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
ArticulationPoint.cs.meta Weapon Scripting Overhaul 2021-01-25 05:53:36 +00:00
EntityInstance.cs Convert engine types through CultMath.UnityBridge 2026-09-14 17:47:33 +02:00
EntityInstance.cs.meta Combat & Visibility & Collisions 2021-02-26 19:01:47 +00:00
FieldDriver.cs Replace the Database Tools with the Studio and cut Unity over 2026-09-14 19:15:20 +02:00
FieldDriver.cs.meta Shields 2025-01-30 01:58:05 +00:00
GameSettings.cs Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
GameSettings.cs.meta Misc. Improvements 2021-01-27 16:14:41 +00:00
GridObject.cs Convert engine types through CultMath.UnityBridge 2026-09-14 17:47:33 +02:00
GridObject.cs.meta Loot 2021-04-15 04:25:22 +01:00
HullCollider.cs Convert engine types through CultMath.UnityBridge 2026-09-14 17:47:33 +02:00
HullCollider.cs.meta Weapon Scripting Overhaul 2021-01-25 05:53:36 +00:00
ItemPickup.cs Convert engine types through CultMath.UnityBridge 2026-09-14 17:47:33 +02:00
ItemPickup.cs.meta Loot 2021-04-15 04:25:22 +01:00
RadiatorHardpoint.cs Heat System v2 + Lasers 2021-01-27 00:05:30 +00:00
RadiatorHardpoint.cs.meta Heat System v2 + Lasers 2021-01-27 00:05:30 +00:00
ShieldAnimation.cs Loot 2021-04-15 04:25:22 +01:00
ShieldAnimation.cs.meta Loot 2021-04-15 04:25:22 +01:00
ShieldManager.cs Convert engine types through CultMath.UnityBridge 2026-09-14 17:47:33 +02:00
ShieldManager.cs.meta Loot 2021-04-15 04:25:22 +01:00
ShieldTest.cs Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
ShieldTest.cs.meta Loot 2021-04-15 04:25:22 +01:00
ShipInstance.cs Convert engine types through CultMath.UnityBridge 2026-09-14 17:47:33 +02:00
ShipInstance.cs.meta Combat & Visibility & Collisions 2021-02-26 19:01:47 +00:00
ThrusterHardpoint.cs Weapon Scripting Overhaul 2021-01-25 05:53:36 +00:00
ThrusterHardpoint.cs.meta Weapon Scripting Overhaul 2021-01-25 05:53:36 +00:00
TimedDestroy.cs Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
TimedDestroy.cs.meta Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
TractorBeam.cs Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
TractorBeam.cs.meta Loot 2021-04-15 04:25:22 +01:00
WeaponHardpoint.cs Weapon Scripting Overhaul 2021-01-25 05:53:36 +00:00
WeaponHardpoint.cs.meta Weapon Scripting Overhaul 2021-01-25 05:53:36 +00:00
Weapons.meta Weapon Scripting Overhaul 2021-01-25 05:53:36 +00:00