Commit graph Aetheria/Assets/Scripts/ServerShared/ItemManager.cs
Author SHA1 Message Date
Meta Vens
a2b54889b4 Move the ServerShared data model onto CultLib's CultCache
Cut 8b. Aetheria.Shared builds headless against GameCult.Caching and
GameCult.Caching.MessagePack at the pinned CultLib; the pin guard also
checks the Caching project exists.

Documents: [CultDocument("aetheria.<type>", "1")] with [MessagePackObject]
and integer [Key]s on the Q7 concrete types (the eight ItemData leaves,
Faction, FactionProductData, PersonalityAttribute, NameFile, OrbitData, the
four BodyData leaves, SavedZone, SavedGame, PlayerSettings, InputLayout).
SavedGame and PlayerSettings are [CultGlobal]; Name members are [CultName].
ItemData, CraftedItemData, EquippableItemData, BodyData and AgentTask lose
[MessagePackObject]; BodyData and AgentTask lose their [Union]s. InputLayout
moves into ServerShared so AetheriaStores can route it.

References: Guid and DatabaseLink<T> members become CultRecordRef<T>;
Guid-keyed maps become ref-keyed with [CultReference(..., many: true)];
ZonePack holds refs to orbit and body records. Runtime maps (Zone orbits,
bodies and belts, cargo ItemsOfType, agent targets) key by CultRecordKey.
Identity is the record key: ID comparisons become reference or key
comparisons. StatModifierData.RequireBehavior is a simple type name.

AetheriaStores.Open composes the catalog (read-only unless writable), run
and player stores, one home per type. CultRecordRefs carries IsSet, a
null-safe Get(ref), RefOf (key from TryGetHandle) and Upsert.
ItemManager.GetData is the one item resolution path. MathResolver is
declared by [assembly: CultCacheFormatterResolver].

Inspector attributes: text, range and asset path map onto CultLib's
CultInspector attributes (asset path only on string members); every
replaced Aetheria attribute keeps [Inspectable] for the runtime panel.

Builds: Aetheria.Shared. Does not build: AetherDb and the Unity project,
which follow.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 19:00:42 +02:00
Meta Vens
6140a06a0a Swap Unity.Mathematics usings for CultMath
Every Unity.Mathematics using, alias and qualified name under Assets\Scripts
and tools now names CultMath. The nine `using static ...noise;` lines are
gone: snoise lives on CultMath's math. UnityExtensions loses float4.ToColor
and Color.ToFloat4, which duplicate the bridge's ToColor and ToCultMath; the
float3 colour pair stays because the bridge has none.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 17:39:12 +02:00
Meta Vens
8d93b937bc Author manufacturer variation as faction products
A design lists role names; a faction product is a manufacturer's branded
build of one, carrying its name, its flavor text, and a pseudo-gaussian
quality distribution per role whose mean is the technology put in and
whose deviation is their quality control. A PerformanceStat may name the
role whose quality it reads, unset reading the item own workmanship as
before, so old saves behave unchanged. Generation selects products rather
than designs, which makes what a faction makes the availability rule.

This is Njordr shape at one dimension: role names, per-role derivation
and per-product distributions carry over when quality widens into
dimensions. No parts exist yet; the product authors the role quality.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 01:12:12 +02:00
Meta Vens
3dcfaf9783 Delete commented-out code blocks
Git keeps the history. SimpleCommodityData records its retired
MessagePack keys so they are not reused against old data.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-11 22:14:58 +02:00
Meta Vens
7006a6b0dd Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
Meta Vens
0cf4591b8f Centralize catalog item object lookup 2026-06-28 12:21:38 +01:00
Meta Vens
be1207c585 Move runtime API namespace to Verse 2026-06-21 09:54:15 +01:00
Meta Vens
39a0dc8737 Sync daemon authority migration 2026-06-21 09:37:54 +01:00
Meta Vens
5d7f0ef9b2 Remove redundant runtime item catalog adapter 2026-06-16 19:14:35 +01:00
Meta Vens
6391176a40 Remove dead ItemManager cache residue 2026-06-16 13:11:38 +01:00
Meta Vens
18a4ead6f8 Delete runtime behavior config bridge 2026-06-15 20:12:34 +01:00
Meta Vens
6479f6fcfa Bypass config for AetherDrive 2026-06-15 19:54:54 +01:00
Meta Vens
70c9e965a1 Bypass configs for heavy behaviors 2026-06-15 19:29:34 +01:00
Meta Vens
3877b4b263 Bypass configs for medium behaviors 2026-06-15 19:20:06 +01:00
Meta Vens
b97bf31b50 Bypass configs for simple behaviors 2026-06-15 19:06:13 +01:00
Meta Vens
068bc11622 Bypass configs for no-payload behaviors 2026-06-15 18:51:59 +01:00
Meta Vens
e173989b3d Project behavior item refs as typed keys 2026-06-15 16:10:13 +01:00
Meta Vens
0b92a2faae Remove item instance legacy ID projection 2026-06-15 02:57:50 +01:00
Meta Vens
2554b34c76 Remove behavior payload GUID reader 2026-06-15 02:36:26 +01:00
Meta Vens
ffe9d6d7bf Make runtime item catalog key-only 2026-06-15 01:31:16 +01:00
Meta Vens
95bd76ee91 Use typed item keys in behavior item refs 2026-06-14 23:31:54 +01:00
Meta Vens
8337d5f5c7 Move runtime item references to typed keys 2026-06-14 22:58:02 +01:00
Meta Vens
d8db6c3e2c Replace behavior config reflection mapper 2026-06-14 22:07:05 +01:00
Meta Vens
32187038eb Demote behavior construction configs 2026-06-14 21:48:43 +01:00
Meta Vens
84bf298596 Name runtime item references as definition ids 2026-06-14 11:40:28 +01:00
Meta Vens
22e7d0a972 Expose item reference API on runtime instances 2026-06-14 11:19:27 +01:00
Meta Vens
d163b3064c Expose item identity on runtime instances 2026-06-14 11:12:48 +01:00
Meta Vens
477e1b2ed5 Keep behavior config bridge inside item manager 2026-06-14 10:54:17 +01:00
Meta Vens
f403ab28a7 Target live behavior data for stat modifiers 2026-06-14 10:38:04 +01:00
Meta Vens
37f4ef4a12 Route runtime behavior construction through item manager 2026-06-14 10:29:17 +01:00
Meta Vens
301b1251b1 Use typed runtime item category tokens 2026-06-14 09:38:55 +01:00
Meta Vens
1a7ea0a0e5 Rename runtime item reader around typed catalog 2026-06-14 09:19:53 +01:00
Meta Vens
c0d0fbf656 Delete runtime item DTO hydration 2026-06-14 07:52:18 +01:00
Meta Vens
4d5b6cda22 Clone blueprint items from typed rows 2026-06-14 07:41:32 +01:00
Meta Vens
d15418a389 Delete dead runtime item projection bridge 2026-06-14 07:35:33 +01:00
Meta Vens
a786da0e24 Instantiate loadout items from typed rows 2026-06-14 07:27:23 +01:00
Meta Vens
4e151cd61d Use typed durability for item instantiation 2026-06-14 06:35:34 +01:00
Meta Vens
df46979095 Use typed durability for item stat evaluation 2026-06-14 06:23:45 +01:00
Meta Vens
c68dc15c3e Use typed item rows for blueprint pricing 2026-06-14 05:56:41 +01:00
Meta Vens
18dc4a61ce Use typed payloads for behavior construction 2026-06-14 05:51:15 +01:00
Meta Vens
ce8adfbaf2 Use typed rows for loadout selection 2026-06-14 05:25:56 +01:00
Meta Vens
64214c5dd8 Use typed hull facets in motion consumers 2026-06-14 05:15:18 +01:00
Meta Vens
a8f6df5bb1 Use typed item mass and thermal facts 2026-06-14 04:35:51 +01:00
Meta Vens
b9377a112a Name item catalog bridge as projection 2026-06-13 23:10:48 +01:00
Meta Vens
d8cd07fd84 Demote item reference projection value 2026-06-13 23:01:27 +01:00
Meta Vens
c38be9ee5c Collapse runtime item catalog links 2026-06-13 20:02:41 +01:00
Meta Vens
b368f674f5 Delete dead legacy catalog roots 2026-06-13 19:30:18 +01:00
Meta Vens
b3e91999be Cut ambient runtime catalog lookup 2026-06-13 17:38:05 +01:00
Meta Vens
e7d33e5e43 Demote legacy runtime cache names 2026-06-13 17:22:03 +01:00
Meta Vens
949907de65 Use typed runtime item catalog 2026-06-13 14:36:54 +01:00