Commit graph Aetheria/Assets/Scripts/UI/Properties Panel
Author SHA1 Message Date
Meta Vens
c212ec0232 Reveal book: no scratch holds a departed entity, a destroyed lit gun is refused at the gate, one IsDestroyed rule, departure and allocation pins
Not verified yet at this commit (build and tests run next).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 02:20:46 +02:00
Meta Vens
7f700d3c78 Items are titled by their product: ItemManager.Title, read by every title site
Title derives the brand's product name and falls back to the design name.
The trade list, buy dialog and properties title read it; the product name
line leaves the properties body. Build not yet verified at this commit.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-08 14:34:47 +02:00
Meta Vens
05b5a209db Cut 1: terms replace the four fixed exponents; R-heat
PerformanceStat's four fixed fields (HeatExponentMultiplier,
DurabilityExponentMultiplier, QualityExponent, FromRole) tombstone into a
declared List<StatTerm> (source + exponent + role), walked by the one
evaluation path Cut 0 unified. A stat with no terms resolves to Max (the
same identity a stat with all-zero exponents already produced), so the
migration is exact: a zero multiplier becomes no term, not a term with
exponent 0.

R-heat (operator, docs/stats-and-power-cut.md): EquippableItemData's
HeatPerformanceCurve (a BezierCurve, plus the 100-sample scan that inferred
OptimalTemperature and its cache) is retired in favor of an authored
minimum, maximum, optimum and plateau width, with linear falloff outside
the plateau. StatValidation refuses an optimum outside its bounds or a
negative plateau width, loudly, at catalog load. The plateau's consequence
rides along for free: Wear's thermal term is pow(ThermalPerformance, ...),
and Performance() now returns exactly 1 across the plateau, so a
well-managed item takes wear only from deltaTemp there -- the
operational-lifespan lever the operator asked for.

ConsumableItemEffect's progress-through-duration substitution for "heat"
becomes its own StatSource (ConsumableProgress) rather than an unconditional
override applied regardless of what a stat declares.

Tests: LoadoutTests' four PerformanceStat-shaped fixtures rebuilt against
Terms/authored heat fields; HeatResponseTests.cs (new) pins load
validation, the plateau shape, and the three wear-lever claims (held
inside takes no thermal wear, held outside does, a fast swing across still
wears) each under its own mutation in tests/mutation_tests_stats_power_cut1.py
(new, 10 rules including a no-op control; all pass).

64 pre-Cut-1 tests still pass unmodified; 71 total with the 7 new ones.
Unity batchmode: 0 error CS. ShieldPanelCut1Verify and Cut2Verify pass;
Cut3Verify fails with an unrelated pre-existing "Kernel 'KInit' not found"
compute-shader error, reproduced against Cut 0's own landing state with no
shader/compute file in this diff -- flagged for Soul, not fixed here.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 17:18:06 +02:00
Meta Vens
415f8e1152 Add the lot ledger and mint every crafted instance through it
Quality, Ingredients and Product leave CraftedItemInstance; a unit now
carries only a LotId into the run-scoped ProvenanceLedger. ItemManager
gains the one lot-minting path (CreateLot/CreateInstance(int)), GetLot,
and Brand(), which derives a maker and product from provenance instead
of a stored field. RunSave persists the ledger pruned to what the saved
zones' entities still reach; the live ledger is never pruned, so a
floor pickup collected after a save still resolves. CopyBuild is gone:
matching hardpoints now share the same lot instead of copying values.
PropertiesPanel shows the derived brand where the design's manufacturer
used to be. AetherDb's census flags duplicate (maker, design) products
and its save command checks every crafted instance's lot against a real
run store.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 04:16:23 +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
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
6de0141b33 Delete dead generic popup inspector shell 2026-06-17 07:27:59 +01:00
Meta Vens
fed0759074 Delete dead inventory weapon group shell 2026-06-17 02:39:13 +01:00
Meta Vens
7bb896f41e Complete typed behavior metadata coverage 2026-06-16 19:55:50 +01:00
Meta Vens
9c63c0a1af Delete dead PropertiesPanel reflection inspector 2026-06-16 19:38:02 +01:00
Meta Vens
21d2071f6e Route runtime tuning through checkpoint commits 2026-06-16 00:01:19 +01:00
Meta Vens
cd497836b3 Make PropertiesPanel inspection read-only 2026-06-15 23:19:41 +01:00
Meta Vens
85eca69d37 Stop medium behaviors retaining configs 2026-06-15 17:54:59 +01:00
Meta Vens
4891c7fafc Resolve runtime catalog items by typed keys 2026-06-15 00:49:54 +01:00
Meta Vens
32187038eb Demote behavior construction configs 2026-06-14 21:48:43 +01:00
Meta Vens
7b605f049c Demote entity blueprints to construction 2026-06-14 20:40:13 +01:00
Meta Vens
d163b3064c Expose item identity on runtime instances 2026-06-14 11:12:48 +01:00
Meta Vens
3e616ae988 Use typed metadata for properties behavior stats 2026-06-14 10:12:32 +01:00
Meta Vens
6cb0c3f987 Use typed stat modifier behavior kind 2026-06-14 10:03:28 +01:00
Meta Vens
26219ebd44 Use typed weapon behavior metadata 2026-06-14 09:59:30 +01:00
Meta Vens
16c9ee3a5f Use typed behavior key for properties payloads 2026-06-14 09:06:42 +01:00
Meta Vens
c0d0fbf656 Delete runtime item DTO hydration 2026-06-14 07:52:18 +01:00
Meta Vens
6a465da23e Inspect trade items from typed rows 2026-06-14 07:33:07 +01:00
Meta Vens
0568ea71db Use typed behavior payloads in properties panel 2026-06-14 04:24:05 +01:00
Meta Vens
e9a29e7837 Use typed thermal properties without DTO fallback 2026-06-14 04:18:14 +01:00
Meta Vens
66c4acf97d Use typed thermal curves in properties panel 2026-06-14 03:20:13 +01:00
Meta Vens
9cbd9eaa2a Use typed fields for properties presentation 2026-06-14 02:35:36 +01:00
Meta Vens
b33bccea45 Use typed durability for presentation 2026-06-14 02:05:26 +01:00
Meta Vens
a950205ecc Use typed durability in properties panel 2026-06-14 01:23:31 +01:00
Meta Vens
089266d932 Use typed catalog facts in properties panel 2026-06-14 00:14:12 +01:00
Meta Vens
128b2abd9f Delete dead personality projection 2026-06-13 20:59:58 +01:00
Meta Vens
3f2614cec0 Demote runtime player settings projection 2026-06-13 18:48:53 +01:00
Meta Vens
b3e91999be Cut ambient runtime catalog lookup 2026-06-13 17:38:05 +01:00
Meta Vens
87b622441e Use typed runtime catalog for item manufacturer UI 2026-06-13 12:29:32 +01:00
Meta Vens
fabbd088e2 Hide legacy catalog reader behind ItemManager 2026-06-13 10:49:29 +01:00
Meta Vens
be1c8801ed Centralize legacy catalog access 2026-06-13 10:45:01 +01:00
Meta Vens
c9f6002ff2 Expose legacy catalog as read port 2026-06-13 07:41:21 +01:00
Meta Vens
fd6aa1d280 Isolate legacy catalog boundary 2026-06-13 06:33:38 +01:00
Meta Vens
0a4f1530fb Move economy server to Aetheria state spine 2026-06-13 01:59:17 +01:00
Reinier Vens
6b0860b178 Bugfixes & Reactive Refactor
Added credits display to trade screen
Fixed bug in inventory screen where a failed drag from a cargo bay would make the item disappear until a refresh is triggered
Changed behavior of Escape key to exit menu if a menu is open
Fixed zone map gravity isolines to correctly track maximum gravity depth
Refactored orbit and planet data to replace reactive variables with regular ones
2025-07-18 00:21:33 +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
81acaf2a47 In Game Input Screen
Implemented saving/loading of custom input settings
Incorporated Input Screen in game
Organized UI scripts into folders
Deleted some unused UI scripts
Reimplemented Fog Blur (by copying modified DoF to assets)
2021-05-08 07:35:16 +01:00