Aetheria/Assets/Scripts/ServerShared
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens 00f62acc34 Make loadouts player-store design documents built all-or-nothing (Cut 10)
Loadout.cs owns loadouts: the document, capture, save and materialization.

- Loadout ("aetheria.loadout", player store) holds a hull design ref, and
  per slot a hull cell, a rotation and an EquippableItemData design ref,
  plus weapon groups as slot indices. It names no product, manufacturer,
  unit roll, cargo, faction, position or behaviour state.
- Loadouts.Capture records the hull design and one slot per equipped item
  (gear, cargo bays, docking bays). Entity.Equipment also holds the hull's
  own unit (MapEntity adds EquippedHull); that is Loadout.Hull, not a slot.
- Loadouts.Save is the only writer: one Commit to the player store, reusing
  the existing key for the name.
- Loadouts.Materialize is the only builder of a ship from a loadout. For
  the hull and each slot in order it resolves the design and takes the
  first product in catalog order that LoadoutGenerator.IsAvailable (now
  public) accepts, with no any-manufacturer fallback. Every failing slot is
  listed; units are built only after everything resolved, and any resolve
  or fit failure returns null with no ship, no charge and no write.
- Loadouts.Price is the hull design's price plus each slot design's price.
- InventoryPanel: Save Loadout asks for a name (default: the ship's name)
  and saves the capture. Restore Loadout, shown when docked with saved
  loadouts, lists each with its price, debits credits only after
  Materialize succeeds, then docks the ship as before; a failure opens
  "Loadout cannot be built here" with one line per failing slot.

Tests: new LoadoutTests (3): LoadoutRoundTripsThroughAFreshCache,
LoadoutHoldsNoRunOrGalaxyRefs, MissingDesignReports. Each fails with its
rule mutated out. The fixture hull is 3x3, not the spec's 2x2:
HullData.InteriorCells is Shape.Shrink(), so a 2x2 hull has no interior
cell a cargo bay can occupy.

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

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 22:06:06 +02:00
..
Agents Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
Behaviors Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
Narrative Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
NIH Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
Serialization Delete the in-tree cache, JsonKnownTypes and vendored MessagePack 2026-09-14 18:42:09 +02:00
Aetheria.Shared.Unity.asmdef Replace the Database Tools with the Studio and cut Unity over 2026-09-14 19:15:20 +02:00
Aetheria.Shared.Unity.asmdef.meta Slime Stuff & DB Prep 2021-03-30 01:17:58 +01:00
AetheriaStores.cs Make loadouts player-store design documents built all-or-nothing (Cut 10) 2026-09-14 22:06:06 +02:00
AetheriaStores.cs.meta Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
Agents.meta Local AI Testing & Interactive Tech Tab 2020-04-23 03:31:17 +01:00
AssemblyInfo.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
AssemblyInfo.cs.meta Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
Attributes.cs Delete the in-tree cache, JsonKnownTypes and vendored MessagePack 2026-09-14 18:42:09 +02:00
Attributes.cs.meta Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
Behaviors.meta Behavior Refactoring 2020-04-09 10:33:16 +01:00
BezierCurve.cs Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
BezierCurve.cs.meta Database Improvements 2021-04-07 01:27:35 +01:00
ColorMath.cs Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
ColorMath.cs.meta Improved Level Generator 2020-12-01 20:38:28 +00:00
Corporations.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
Corporations.cs.meta Infrastructure and Production 2020-06-02 07:01:03 +01:00
Entity.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
Entity.cs.meta Behavior Refactoring 2020-04-09 10:33:16 +01:00
EntitySerializer.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
EntitySerializer.cs.meta Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
EntitySettings.cs Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
EntitySettings.cs.meta Save/Load and Main Menu Submenus 2021-03-14 03:56:49 +00:00
EnumDictionary.cs Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
EnumDictionary.cs.meta Database Improvements 2021-04-07 01:27:35 +01:00
Enums.cs Unified Volumetric Flow 2021-06-18 12:32:03 +01:00
Enums.cs.meta Database Support 2020-03-22 19:05:26 +00:00
Environment.cs Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
Environment.cs.meta Unified Volumetric Flow 2021-06-18 12:32:03 +01:00
ExponentialCurve.cs Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
ExponentialCurve.cs.meta Initial ARPG Port 2020-11-27 22:47:33 +00:00
Extensions.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
Extensions.cs.meta Database Support 2020-03-22 19:05:26 +00:00
FactionProduct.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
FactionProduct.cs.meta Author manufacturer variation as faction products 2026-09-12 01:12:12 +02:00
Galaxy.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
Galaxy.cs.meta Hostility Fix + Story Work 2021-05-14 03:03:28 +01:00
GlobalData.cs Delete the in-tree cache, JsonKnownTypes and vendored MessagePack 2026-09-14 18:42:09 +02:00
GlobalData.cs.meta Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
InputLayout.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
InputLayout.cs.meta Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
ItemData.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
ItemData.cs.meta Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
ItemInstance.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
ItemInstance.cs.meta Database Support 2020-03-22 19:05:26 +00:00
ItemManager.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
ItemManager.cs.meta New Inventory System + Overhaul 2020-12-10 23:20:38 +00:00
Loadout.cs Make loadouts player-store design documents built all-or-nothing (Cut 10) 2026-09-14 22:06:06 +02:00
Loadout.cs.meta Make loadouts player-store design documents built all-or-nothing (Cut 10) 2026-09-14 22:06:06 +02:00
LoadoutGenerator.cs Make loadouts player-store design documents built all-or-nothing (Cut 10) 2026-09-14 22:06:06 +02:00
LoadoutGenerator.cs.meta Enemy Loadout Generation 2021-03-18 00:36:34 +00:00
MarkovNameGenerator.cs Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
MarkovNameGenerator.cs.meta Sector Generation 2021-03-10 09:18:07 +00:00
Narrative.meta UI Improvements 2021-04-27 16:44:44 +01:00
NIH.meta Database Support 2020-03-22 19:05:26 +00:00
Noise1D.cs Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
Noise1D.cs.meta Hellfire 2021-01-10 03:59:47 +00:00
OrbitalEntity.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
OrbitalEntity.cs.meta Stat Effects and Tech Tree Improvements 2020-04-16 03:08:18 +01:00
PlayerSettings.cs Delete the old run, settings, layout and loadout authorities (Cut 10) 2026-09-14 21:51:10 +02:00
PlayerSettings.cs.meta Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
Rect.cs Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
Rect.cs.meta TECH TREES WHOO 2020-04-11 19:18:02 +01:00
SampleElimination.cs Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
SampleElimination.cs.meta Sector Generation 2021-03-10 09:18:07 +00:00
SavedGame.cs Land RunSave and the one-cache run and player lifecycle (Cut 10) 2026-09-14 22:00:27 +02:00
SavedGame.cs.meta Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
Serialization.meta Delete the in-tree cache, JsonKnownTypes and vendored MessagePack 2026-09-14 18:42:09 +02:00
Settings.cs Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
Settings.cs.meta Asteroids & Refactoring 2020-12-01 00:16:11 +00:00
Ship.cs Delete AetheriaMath in favour of CultMath 2026-09-14 18:02:41 +02:00
Ship.cs.meta Database Support 2020-03-22 19:05:26 +00:00
Wormhole.cs Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
Wormhole.cs.meta Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
WwiseMetadata.cs Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
WwiseMetadata.cs.meta Wwise Audio Integration 2021-04-30 06:39:57 +01:00
WwiseSoundBinding.cs Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
WwiseSoundBinding.cs.meta Wwise Audio Integration 2021-04-30 06:39:57 +01:00
Zone.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
Zone.cs.meta Initial ARPG Port 2020-11-27 22:47:33 +00:00
ZoneData.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
ZoneData.cs.meta Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
ZoneGenerator.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
ZoneGenerator.cs.meta Database Support 2020-03-22 19:05:26 +00:00