Commit graph Aetheria/Assets/Scripts/UI
Author SHA1 Message Date
Meta Vens
9bdf6ef23f Replace the Database Tools with the Studio and cut Unity over
Cut 8b. The Unity project compiles with 0 errors in 6000.3.24f1 batchmode.

Packages: manifest.json pins org.gamecult.cultlib at cultlib-unity-v1.0.57
and org.gamecult.caching.unity at caching-unity-v1.2.0, next to the 8a
CultMath tag. Aetheria.Shared.Unity references GameCult.CultLib and keeps
noEngineReferences.

The Database Tools (Assets/Scripts/CultCache/Editor) are deleted in this
commit, alongside their five ported drawers in
Assets/Scripts/Editor/CultCacheDrawers.cs, each an
[CultInspectorDrawer] ICultInspectorDrawer:
- InspectableType: popup of the attribute type's [Union] member names,
  writing the string.
- InspectableColor: float3 and float4 through ColorField.
- InspectableAnimationCurve: float4[] and BezierCurve through CurveField.
- InspectableTemperature: Kelvin, Celsius and Fahrenheit fields over one
  value.
- InspectableSchematicShape: size and cell toggles. The old drawer also
  drew the item's schematic texture and tinted hull hardpoints, which need
  the parent document. The tagged Studio hands a drawer only the value, so
  those wait on the Studio exposing the open record.

Unity call sites:
- ActionGameManager opens the catalog through AetheriaStores; Cut 10 adds
  the run and player stores.
- Refs resolve through ItemManager.GetData or Get(ref); orbit, planet and
  belt maps key by CultRecordKey; identity is compared by reference or key.
- The PlayerSettings.msgpack reader and writer, which Cut 10 deletes, pass
  CultDocumentMessagePackSerialization.OptionsFor, since the embedded run
  reaches CultMath values and refs. Keyboard layouts need no resolver and
  keep MessagePack's defaults until Cut 10.
- The input map uses the nested action to binding shape.
- PropertiesPanel reads CultInspectorRangeAttribute.
- NameTools loses its legacy name-file writer.
- Slime compares serialized settings instead of the deleted SHA1 helper.
- FieldDriver drops InspectorHeader.
- .gitignore covers the test project's build output.

Builds: Aetheria.Shared, AetherDb, Aetheria.Shared.Tests (6/6), Unity
batchmode (0 errors).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 19:15:20 +02:00
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
4d89c6d932 Fix the sector map label pivot after the CultMath sign swap
CultMath's sign(float) returns int, as HLSL does, so sign(x)/2+.5f became
integer division and pinned the pivot at 0.5. Scale by .5f instead so the
pivot is 0 or 1 again. The other sign( uses in Assets combine the int with
a float by multiplication or compare it against a float threshold, so their
values are unchanged.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 17:58:53 +02:00
Meta Vens
2281793154 Convert engine types through CultMath.UnityBridge
CultMath has no implicit conversions to or from Vector*, Quaternion or
Color, so Assembly-CSharp converts explicitly with ToCultMath/ToUnity at
each engine boundary: FieldDriver, GuidedProjectile(Manager),
EntityInstance, ActionGameManager, HullCollider, GridObject, ShipInstance,
ShieldManager, ItemPickup, FieldTester, PlaceUIElementWorldspace,
MapMenuInput, MapRenderer, SectorRenderer and ZoneRenderer. CultMath math
calls that were handed Unity vectors now take converted values;
Vector3.Scale in FieldDriver becomes a float3 product, and ItemPickup's
Vector3.Dot on float3s becomes dot. packages-lock.json records the
cultmath git package at f0605367 and demotes com.unity.mathematics to a
transitive dependency.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 17:47:33 +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
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
cc7f2c8877 Remove dead code, unused plugins, and multiplayer remnants
Delete Economy.Server/Economy.Shared, LiteNetLib, network message types,
the texture-based Gravity duplicate, unreferenced scripts and agent
states, and unused plugins (MSAGL, NaughtyAttributes, AsyncAwaitUtil,
Allegorithmic, Localization samples, MrtTest, ThinkGear, QuickGraph),
plus vendored sample scenes, root zips/logs, and the stray Obsidian
folder. MainMenu logs faulted galaxy-generation tasks directly instead of
AsyncAwaitUtil's WrapErrors. Stop tracking UserSettings and the Wwise
.backup folder; ignore generated .sln/.csproj by pattern.

Game-system test scenes are kept. Playdead stays: VolumeCloudRenderer
derives from its EffectBase.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-11 22:14:57 +02:00
Meta Vens
7006a6b0dd Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
Meta Vens
56b0910a90 Persist and select playable tutorial runs 2026-07-17 08:48:56 +01:00
Meta Vens
a330e24d96 Make trade acceptance daemon authoritative 2026-07-15 20:46:05 +01:00
Meta Vens
6f0375f4ad Publish gravity fog through generic Eve fields 2026-07-15 20:17:05 +01:00
Meta Vens
b88bafd9e1 Use managed Verse target copy 2026-07-06 01:29:53 +01:00
Meta Vens
0751d3baa2 Remove RTS vocabulary from Unity map icons 2026-07-05 22:31:10 +01:00
Meta Vens
911bb72f69 Make game viewport authority runtime-neutral 2026-07-05 19:56:18 +01:00
Meta Vens
b86635fda5 Move RTS menu panel authority to daemon 2026-07-05 18:07:21 +01:00
Meta Vens
188188cec8 Simplify CultMesh menu surface access 2026-07-01 14:33:46 +01:00
Meta Vens
eb0760c81f Move main menu surface access to CultMesh 2026-06-30 23:15:57 +01:00
Meta Vens
764f7c25c9 Resolve embedded main menu font assets 2026-06-30 22:51:02 +01:00
Meta Vens
e9024149c0 Use UI Toolkit font assets for main menu 2026-06-30 22:45:44 +01:00
Meta Vens
c28cb4beff Stop main menu requiring daemon frame 2026-06-30 21:25:03 +01:00
Meta Vens
c95677375e Restore main menu typography 2026-06-30 20:40:34 +01:00
Meta Vens
4d7bb65868 Integrate CultMesh UI and URP cleanup 2026-06-30 19:14:49 +01:00
Meta Vens
4981e9d1fa Fix typed Unity state compile errors 2026-06-29 13:07:24 +01:00
Meta Vens
a1f3d08676 Use provider-native current state reads 2026-06-29 13:04:01 +01:00
Meta Vens
ab6387fe1e Use managed RTS viewport document handles 2026-06-29 12:54:07 +01:00
Meta Vens
f09c298bcd Remove Unity runtime state call chains 2026-06-29 12:33:48 +01:00
Meta Vens
7285a82cb1 Expose native Unity indexed document access 2026-06-29 12:27:34 +01:00
Meta Vens
988b72d2ba Expose native Unity current document access 2026-06-29 12:17:14 +01:00
Meta Vens
cf5897a98c Expose native Unity docking state access 2026-06-29 12:12:16 +01:00
Meta Vens
ed1ac90b3a Read local story docking through current state 2026-06-29 11:51:21 +01:00
Meta Vens
8b718d0da9 Map inventory docking from typed state 2026-06-29 11:41:32 +01:00
Meta Vens
ca8b5858a2 Read menu docking through current typed state 2026-06-29 11:36:38 +01:00
Meta Vens
c5c7498a14 Collapse menu tabs into MenuPanel 2026-06-29 10:52:47 +01:00
Meta Vens
77c92643e8 Sample map settings through current typed access 2026-06-29 10:40:37 +01:00
Meta Vens
6497636bb2 Sample inventory panel through current typed access 2026-06-29 10:36:52 +01:00
Meta Vens
f47b0f2d7d Sample inventory menu through current typed access 2026-06-29 10:31:54 +01:00
Meta Vens
071c1febbd Sample trade menu through current typed access 2026-06-29 10:24:52 +01:00
Meta Vens
10186bd078 Sample sector renderer through current typed access 2026-06-29 10:20:35 +01:00
Meta Vens
19ca2619c8 Sample sector map through current typed access 2026-06-29 10:16:04 +01:00
Meta Vens
7c9e0f1aae Sample schematic HUD through current typed access 2026-06-29 10:06:48 +01:00
Meta Vens
2f09855ddb Sample input settings through current typed access 2026-06-29 10:03:25 +01:00
Meta Vens
6708581363 Sample main menu state through current typed access 2026-06-29 10:00:35 +01:00
Meta Vens
ade95ae5b6 Sample docking state through current typed access 2026-06-29 09:54:19 +01:00
Meta Vens
67c1b3d689 Normalize schematic typed snapshots 2026-06-29 09:36:58 +01:00
Meta Vens
2941847112 Share Unity docking document access 2026-06-29 09:33:22 +01:00
Meta Vens
29111f74f4 Normalize menu shared document snapshots 2026-06-29 09:25:56 +01:00
Meta Vens
e08819dbbb Normalize inventory typed state reads 2026-06-29 09:21:29 +01:00
Meta Vens
aa45a6bb07 Add named parameterized document access 2026-06-29 07:51:45 +01:00
Meta Vens
c2ef01f8b4 Add named map and zone document access 2026-06-29 07:43:02 +01:00