Commit graph Aetheria/Assets/Scripts/UI/HUD/SchematicDisplay.cs
Author SHA1 Message Date
Meta Vens
f6c0d24dba One aim slot holds an item or a mount; the cycle covers every located mount
Entity.AimedAt (AimTarget: a revealed item or a believed mount) replaces
TargetItem. Two writers, TrySelectTargetItem (IsRevealed) and TrySelectMount
(in LayoutOf, not seen destroyed); ResolvedAim re-validates both on every read.
AimCycle is SchematicRows' enemy rows minus mounts in the observer's
seen-destroyed record, written only in Sense through PerceivesDestroyed.
SchematicRows drops its covering filter. IsLocated and AimsAtMount are deleted;
PendingShot.AimedMount and Silhouette's HardpointData mount replace the bool.
The cycle key calls Entity.CycleAim; the schematic marks read ResolvedAim.
Entity.ToString names an entity (follow-up entity-formats-safely).

The slot is AimedAt, not Aim: Entity.Aim is the pilot's pointing direction.
Not yet built or run; ActionGameManager and SchematicDisplay are uncompiled
without Unity.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 04:42:38 +02:00
Meta Vens
095efacd79 Layout-aim: an identified hull shows where its mounts are; a located mount can be aimed at
TrySelectTargetItem and ResolvedTargetItem gate on FireControl.IsLocated (an item seen to act, or one on a mount of the
believed hull's layout) instead of IsRevealed; Combat keeps IsRevealed. Entity.LayoutOf derives the layout from the
Contact profile; SchematicRows appends a mount row per unclaimed hardpoint. A mount aim centres on the mount's cells and
is frozen per shot (PendingShot.AimAtMount). The cycle runs over located items, the schematic renders mount rows and
marks through SchematicRow.Marks. Not yet built or tested.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 00:17:14 +02:00
Meta Vens
b14d609cae Schematic lists revealed gear; scan progress indicators at both ends
Entity.RevealedGear and SchematicRows' enemy branch (revealed weapons then revealed gear); SchematicRow.Range is float? (null for a non-weapon claim); SchematicDisplay shows ShowGear rows for non-weapon claims and hides the range label when null; SchematicListElement.ShowGear. ActionGameManager: one progress-indicator list (lock weapons hostile-gated, scanners ungated) and the incoming indicator follows Track or Scan paints. Not Unity-compiled yet; Shared tests unaffected by the UI files.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 21:11:37 +02:00
Meta Vens
90294e0fef EW 2 fix: the enemy schematic's rows, claimed class and range label are derived in ServerShared
Entity.SchematicRows(subject) owns which weapon rows a schematic shows, each row's item and
claimed design, and its range (own ship: live; any other: the claimed design's rated range).
SchematicDisplay renders SchematicRow and decides nothing. Headless tests cover default-to-truth,
a weapon claimed as another weapon, a weapon claimed as a non-weapon, own rows, and the rebuild key.

Builds on the Shared side not yet verified at this commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:21:15 +02:00
Meta Vens
76aeeabfca EW 2: claims ride the act into the book; schematic and AI classify from them
Signature, ActiveEmission and Reveal carry Claimed (the class the ship's EW claims for the item, the true item's data by default); Entity gains the claim slots and one write port; Contact gains Profile, derived from the ship's claimed hull once Identified; Entity.RevealedWeapons is the one classifying read for weapons. Combat and the enemy schematic read it; their reads of the target's live gear are cut. Weapons rate by their claimed design (ew-claim-weapon-measure-ruled, rated-design): WeaponData.RatedRangeDamagePerSecond runs the same per-kind formula as the live weapon. Aim, damage and physics keep the truth.

Not yet compiled or run at this commit; the Unity-only SchematicDisplay is unverified.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 18:17:14 +02:00
Meta Vens
4708a71a67 contact-hud: the HUD reads the player's own ContactOf and book; TargetedBy and the spotted blink go
Selection is nothing the selected ship can sense: TargetedBy, TargetedByCount, their subscriptions and the music
read of them are deleted. Indicator fills, the target panel, the compass, music and the enemy schematic rows now
read CurrentEntity's ContactOf / RevealsOf / RevealedSubjects (new, the book's keys); the schematic rows are built
by one builder from the book and rebuilt when the revealed set changes. Impact hull effect and projectile hit
effects at another ship's position draw only through ActionGameManager.DrawsAt (the player's own ship or a Tracked
contact). Builds untested in Unity at this commit; tests NothingReadsSelection and RevealedSubjectsListsTheBook.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 07:13:55 +02:00
Meta Vens
2cfdc72853 Delete the aether drive: behaviour, union 12, hardpoint type, aggregates, settings, presenters, prefab
AetherDriveData and AetherDrive, Union(12) (now a retired-do-not-reuse comment, as 26 is),
HardpointType.AetherDrive (last member, nothing shifts), Ship's drive sets, aggregates and
Axis write, the five request-field rows, GameplaySettings Aether multipliers, ShipInstance's
drive particles, SchematicDisplay's RPM display and AetherDriveUi, the undock refusal's drive
clause, the drive prefab and material, and AetherDb's drive roles and brownout row. The
design is kept at parked/aether-drive.
Adds EveryShippedShipHullHasATopSpeed. ARPG.unity still holds stale serialized references to
the removed SchematicDisplay fields and the RPM Display object; the next commit removes them.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-08 14:04:28 +02:00
Meta Vens
04c0943fa0 Wire subsystem selection and reveal into player input and the HUD
A new "Cycle Target Item" action (hand-authored into Aetheria.inputactions;
no Unity editor here to regenerate AetheriaInput.cs, so ActionGameManager
looks it up by name through Input.asset.FindAction instead of a typed
accessor) cycles the local player's aim point among the current target's
revealed items via TrySelectTargetItem. SchematicDisplay's enemy view now
filters to what FireControl.IsRevealed actually resolves for the viewer,
and marks whichever row is the current ResolvedTargetItem through a new
SchematicListElement.SelectedIndicator (unwired in any prefab yet -- a
no-op until an editor pass assigns one).

Presentation only; decides nothing. Unverified here -- Unity batchmode
is unavailable in this environment.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-19 13:02:54 +02:00
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
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
4d7bb65868 Integrate CultMesh UI and URP cleanup 2026-06-30 19:14:49 +01:00
Meta Vens
988b72d2ba Expose native Unity current document access 2026-06-29 12:17:14 +01:00
Meta Vens
7c9e0f1aae Sample schematic HUD through current typed access 2026-06-29 10:06:48 +01:00
Meta Vens
67c1b3d689 Normalize schematic typed snapshots 2026-06-29 09:36:58 +01:00
Meta Vens
a3d6df3bfd Add named catalog and settings document access 2026-06-29 07:30:21 +01:00
Meta Vens
baac952fe3 Add named entity and refit document access 2026-06-29 07:21:01 +01:00
Meta Vens
7a298cf95d Use native runtime documents in render UI 2026-06-29 06:14:38 +01:00
Meta Vens
296a0b6de8 Add native reactive client state access 2026-06-29 04:18:22 +01:00
Meta Vens
0830588cbb Flatten Aetheria CultMesh reactive access 2026-06-29 02:42:08 +01:00
Meta Vens
3048b52058 Use generic current state documents 2026-06-29 00:08:58 +01:00
Meta Vens
e9c5281e3f Use generic reactive fixed documents 2026-06-28 23:50:28 +01:00
Meta Vens
9e4a17bb22 Use reactive typed docs in schematic HUD 2026-06-28 16:04:43 +01:00
Meta Vens
43f92f2b7b Centralize player HUD state access 2026-06-28 13:37:15 +01:00
Meta Vens
a035a55fc3 Remove Aetheria client state alias 2026-06-28 13:13:07 +01:00
Meta Vens
0cf4591b8f Centralize catalog item object lookup 2026-06-28 12:21:38 +01:00
Meta Vens
1f6097f54e Use reactive current entity HUD document 2026-06-28 09:51:47 +01:00
Meta Vens
194e45c3bd Use reactive shared state in schematic HUD 2026-06-28 08:55:49 +01:00
Meta Vens
e1052eba30 Use named managed map and viewport accessors 2026-06-28 08:13:17 +01:00
Meta Vens
68fc0b0aa1 Use named managed shared state accessors 2026-06-28 08:02:16 +01:00
Meta Vens
5d03a64ddb Cache managed runtime clients by runtime id 2026-06-28 02:39:41 +01:00
Meta Vens
03b1e082ea Route catalog reads through managed document 2026-06-28 01:58:58 +01:00
Meta Vens
943a210bc5 Route Unity settings reads through managed documents 2026-06-28 01:52:11 +01:00
Meta Vens
2884cef870 Use Aetheria state handles for current entity UI reads 2026-06-27 13:58:42 +01:00
Meta Vens
6dba17d86c Keep Unity state surface compile fixes 2026-06-27 13:36:40 +01:00
Meta Vens
2e96660d48 Build typed Aetheria client surfaces 2026-06-25 18:09:33 +01:00
Meta Vens
4464f5cdce Move HUD thermal risk into runtime render settings 2026-06-21 23:17:00 +01:00
Meta Vens
be1207c585 Move runtime API namespace to Verse 2026-06-21 09:54:15 +01:00
Meta Vens
4891c7fafc Resolve runtime catalog items by typed keys 2026-06-15 00:49:54 +01:00
Meta Vens
95bd76ee91 Use typed item keys in behavior item refs 2026-06-14 23:31:54 +01:00
Meta Vens
7b605f049c Demote entity blueprints to construction 2026-06-14 20:40:13 +01:00
Meta Vens
6b8ac0cb07 Move weapon ammo display behind runtime owner 2026-06-14 18:05:26 +01:00
Meta Vens
d163b3064c Expose item identity on runtime instances 2026-06-14 11:12:48 +01:00
Meta Vens
e998a8d789 Use typed behavior kinds for schematic weapons 2026-06-14 06:14:51 +01:00
Meta Vens
0d286e095a Use typed thermal bounds in schematic HUD 2026-06-14 03:05:37 +01:00
Meta Vens
b33bccea45 Use typed durability for presentation 2026-06-14 02:05:26 +01:00
Meta Vens
fee50c5ad6 Require typed weapon facets for schematic icons 2026-06-14 01:31:53 +01:00
Meta Vens
d21a8b5cfd Use typed durability in schematic HUD 2026-06-14 01:19:42 +01:00
Meta Vens
c832a882af Use typed weapon facets in schematic HUD 2026-06-14 00:32:26 +01:00
Meta Vens
3f2614cec0 Demote runtime player settings projection 2026-06-13 18:48:53 +01:00