Import the legacy catalog into GameData/Aetheria.cc (Cut 9)
AetherDb gains legacy-census and a one-shot import (tools/AetherDb/Import.cs, deleted by Cut 10). The import rewrites each legacy [tag, payload] record by the target type's [Key] shape: slot 0 Guid becomes the record key and nil, CultRecordRef members and DatabaseLink wrappers become D strings, the all-zero Guid becomes nil, StatModifierData.RequireBehavior keeps the simple type name. All 180 records land in one Commit; a second import refuses. InputLayout moves to the catalog (Q9-1 A), with the test fixture seeding it while the catalog is writable. GameData/*.cc is LFS, GameData/*.lock ignored. The legacy msgpack and ansi104.json sources are removed. Imported: SimpleCommodityData 13, CompoundCommodityData 51, GearData 25, HullData 3, NameFile 12, Faction 12, PersonalityAttribute 3, CargoBayData 4, DockingBayData 1, WeaponItemData 18, FactionProductData 37, InputLayout 1. Six refs dangled already in the legacy data and are preserved as authored. The Key(0) precondition checks only the Guid-slotted tagged types; InputLayout is imported bare and keeps its Key(0). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
1ec29b132c
commit
70fbaca1ed
22 changed files with 258 additions and 47 deletions
|
|
@ -6,9 +6,9 @@ using GameCult.Caching.MessagePack;
|
|||
// Aetheria's stores: one home store per type, composed here and nowhere else.
|
||||
public static class AetheriaStores
|
||||
{
|
||||
public static readonly Type[] CatalogTypes = { typeof(ItemData), typeof(Faction), typeof(FactionProductData), typeof(PersonalityAttribute), typeof(NameFile) };
|
||||
public static readonly Type[] CatalogTypes = { typeof(ItemData), typeof(Faction), typeof(FactionProductData), typeof(PersonalityAttribute), typeof(NameFile), typeof(InputLayout) };
|
||||
public static readonly Type[] RunTypes = { typeof(OrbitData), typeof(BodyData), typeof(SavedZone), typeof(SavedGame) };
|
||||
public static readonly Type[] PlayerTypes = { typeof(PlayerSettings), typeof(InputLayout) };
|
||||
public static readonly Type[] PlayerTypes = { typeof(PlayerSettings) };
|
||||
|
||||
// Attaches (hydrates) the catalog read-only unless catalogWritable, then the run and player stores when given.
|
||||
// A read-only catalog throws when a [CultGlobal] type routed to it has no record. A writable catalog is being
|
||||
|
|
|
|||
Loading…
Reference in a new issue