Commit graph Aetheria/Assets/Scripts/ServerShared/Galaxy.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
55c3fc6a49 Delete AetheriaMath in favour of CultMath
AetheriaMath predates the CultMath swap and re-implemented helpers CultMath
now owns. Callers use CultMath directly: decay (Ship, AetherDrive, Entity),
damp (VelocityConversion, FieldTester, FieldDriver), first_order_intercept
(TurretController, Combat, GuidedProjectile), quadratic_bezier (FieldDriver)
and smootherstep (Ship). Parameter order matches in every case, and those
formulas have the same float evaluation order, so behaviour is unchanged.
Galaxy's commented-out segment check names distance_to_segment.

The other overloads had no callers and are dropped without a CultMath
counterpart being needed: the double Damp overloads, FindDistanceToSegment,
GetCatmullRomPosition, GetCubicSplinePosition, Smoothstep(x), and the
Deg2Rad/Rad2Deg constants.

AetherDb census, factions and hardpoint-fit are byte-identical to the
pre-cut captures.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 18:02:41 +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
7006a6b0dd Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
Meta Vens
2e96660d48 Build typed Aetheria client surfaces 2026-06-25 18:09:33 +01:00
Meta Vens
7440eda8a9 Preserve daemon zone identity in projected galaxy 2026-06-21 19:00:01 +01:00
Meta Vens
73ea4ad5bb Remove Unity zone cache from galaxy model 2026-06-21 18:57:09 +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
5c691ea85c Delete faction legacy ID projection 2026-06-16 12:31:48 +01:00
Meta Vens
8ea97a08f8 Use faction keys for shell identity 2026-06-16 11:43:37 +01:00
Meta Vens
392c24a7da Use typed keys for faction shell links 2026-06-16 11:22:18 +01:00
Meta Vens
a29794232d Use typed faction keys for galaxy allegiance 2026-06-16 10:20:36 +01:00
Meta Vens
7f87373886 Use typed catalog keys for faction lookups 2026-06-15 17:25:40 +01:00
Meta Vens
3eab07c9dc Delete galaxy zone blueprint cache 2026-06-14 18:59:14 +01:00
Meta Vens
9ca3de2ed6 Persist run generation seed in typed state 2026-06-14 15:12:38 +01:00
Meta Vens
3f2614cec0 Demote runtime player settings projection 2026-06-13 18:48:53 +01:00
Meta Vens
ade6845e1d Demote runtime save packs to blueprints 2026-06-13 18:06:59 +01:00
Meta Vens
c43d7b8f67 Resolve runtime factions through typed galaxy projection 2026-06-13 13:24:36 +01:00
Meta Vens
de36150dc2 Import typed corporation allegiances 2026-06-13 13:18:03 +01:00
Meta Vens
8b6c9e4294 Use typed catalog for galaxy factions 2026-06-13 13:00:15 +01:00
Meta Vens
ede38228bc Use typed catalog for galaxy names 2026-06-13 12:54:26 +01:00
Meta Vens
8cdd4d0b37 Move Galaxy off legacy catalog reader 2026-06-13 10:54:08 +01:00
Meta Vens
c9f6002ff2 Expose legacy catalog as read port 2026-06-13 07:41:21 +01:00
Meta Vens
742bb69d43 Rename legacy runtime cache 2026-06-13 07:11:16 +01:00
Meta Vens
83ef113937 Delete legacy saved game DTOs 2026-06-13 05:39:06 +01:00
Reinier Vens
c6ffcad3f1 Shields
Created field bubble shields / propulsion, currently just a prototype with its own test scene
2025-01-30 01:58:05 +00:00
Reinier Vens
47e500e1ce Playability
Fixed loadout generator tutorial edge cases
Recreated missing items
Created field shader & test scene
2022-08-08 22:43:55 +01:00
Reinier Vens
ce1a0a4654 It Runs 2021-10-27 02:58:22 +01:00
Reinier Vens
b0673c82fc Multi-Location Quest Injection 2021-05-16 05:24:51 +01:00
Reinier Vens
2f98904614 Hostility Fix + Story Work
Fixed various bugs caused by triggering wormhole animation multiple times
Sector -> Galaxy
Fixed bug in hostility system; deserialized entities' PresencePermitted was silently throwing an exception (due to Faction being null during initialization) and thus never updating in response to security level changes
Worked a bit on story processing
2021-05-14 03:03:28 +01:00
Renamed from Assets/Scripts/ServerShared/Sector.cs (Browse further)