Aetheria/Assets/Scripts/Editor
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens a454a5a77f Collapse the two implicit shield ellipsoids into ShieldEnvelope (Cut 2)
FieldDriver derived the shield ellipsoid from its own transform.localScale;
ShieldManager derived it independently from the Shield prefab instance's
transform, doing the same normalise-and-project by hand against a different
object. Add ShieldEnvelope as the one reader of a transform's centre, radii,
surface projection, and true outward normal (derived, not authored, per R6 --
no second copy of numbers the physical MeshCollider already owns), and switch
both consumers onto it, deleting their hand-rolled projections.

Radii read the attached collider mesh's own bounds.extents per axis rather
than assuming a flat 0.5 or 1.0: Shield.prefab's Icosphere collider measures
(0.0095106, 0.01, 0.01), not a uniform round number, and the cubesphere's
collider measures exactly (1,1,1) -- confirmed by a throwaway batchmode probe
against the actual mesh assets, not guessed.

SurfaceNormal is not normalize(p): a non-uniform ellipsoid's true normal is
the gradient of the implicit surface, transformed by rotation and the INVERSE
of lossyScale (a normal is a covector). The first implementation used
TransformDirection (rotation and forward scale) and the batchmode probe's
finite-difference gradient check caught it immediately -- exactly the
plausible-looking-wrong-answer failure mode the cut map called out by name.
Both original consumers keep normalize(p)-equivalent behaviour via the new
SurfaceDirection method, since they only ever wanted a direction.

FieldDriver falls back to its pre-cut formulas (logged once) when no
ShieldEnvelope is present, since it has no guaranteed carrier yet.
ShieldManager does not: every object that carries it gets an envelope in this
cut, so a missing one logs an error and degrades to a fixed direction rather
than recomputing a second projection.

No prefab or scene file is touched here (Q5: the operator rigs prefabs and
scenes by hand); ShieldPanelCut2Verify's batchmode probe instead builds
synthetic transforms carrying Longinus's and Djinni's actual override values
plus the real Icosphere mesh, and proves ProjectToSurface lands exactly on the
ellipsoid and SurfaceNormal matches a finite-difference gradient to 1e-3.
mutation_tests_shield_panel_cut2.py mutates SurfaceNormal three ways (back to
normalize(p), back to TransformDirection, and a flattened 0.5 extents factor)
and confirms the probe goes red for each, naming the reason.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 06:33:38 +02:00
..
CellBrushEditor.cs Boundless 2022-07-21 21:40:44 +01:00
CellBrushEditor.cs.meta Boundless 2022-07-21 21:40:44 +01:00
CultCacheDrawers.cs Switch engine asset references from Resources paths to Addressables GUIDs 2026-09-18 05:04:50 +02:00
CultCacheDrawers.cs.meta Replace the Database Tools with the Studio and cut Unity over 2026-09-14 19:15:20 +02:00
EngineAssetCheck.cs Switch engine asset references from Resources paths to Addressables GUIDs 2026-09-18 05:04:50 +02:00
EngineAssetCheck.cs.meta Switch engine asset references from Resources paths to Addressables GUIDs 2026-09-18 05:04:50 +02:00
GameplaySettingsEditor.cs Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
GameplaySettingsEditor.cs.meta Gear Schematic HUD 2020-12-31 19:53:16 +00:00
NameTools.cs Replace the Database Tools with the Studio and cut Unity over 2026-09-14 19:15:20 +02:00
NameTools.cs.meta Sector Generation 2021-03-10 09:18:07 +00:00
PlayScenePlusPlus.cs Action Bar Weapon Group Binding 2021-04-19 03:46:35 +01:00
PlayScenePlusPlus.cs.meta Action Bar Weapon Group Binding 2021-04-19 03:46:35 +01:00
ShieldPanelCut1Verify.cs Add the Cut 1 batchmode probe and its mutation harness 2026-09-18 06:08:24 +02:00
ShieldPanelCut1Verify.cs.meta Add the Cut 1 batchmode probe and its mutation harness 2026-09-18 06:08:24 +02:00
ShieldPanelCut2Verify.cs Collapse the two implicit shield ellipsoids into ShieldEnvelope (Cut 2) 2026-09-18 06:33:38 +02:00
ShieldPanelCut2Verify.cs.meta Collapse the two implicit shield ellipsoids into ShieldEnvelope (Cut 2) 2026-09-18 06:33:38 +02:00