Commit graph

4,333 commits

Author SHA1 Message Date
Nibu
f7d5a7d2a8 A failed start is decided in RunStart.Launch; the scene steps nothing without a live run
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 13:32:34 +00:00
3f6a2fde4f Merge pull request 'Probes never write item.Rotation; ItemFits reports the seat via out' (#25) from eureka/aetheria-release-itemfits-rotation-1 into master 2026-11-13 13:28:50 +00:00
Nibu
cc20ce93ac Catalog origin pin fails if its scan visits nothing
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 13:28:37 +00:00
Nibu
d9ccac6296 Pin probe purity and the shipped catalog's hardpoint origins
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 11:19:26 +00:00
Nibu
2d91a5b13b Probes never write item.Rotation: TryEquip seats the hardpoint's rotation; ItemFits reports it via out
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 11:19:09 +00:00
958f0b0cce Merge pull request 'Reload keeps the hardpoint an ambiguous origin was seated in' (#24) from eureka/aetheria-release-hardpoint-origin-1 into master 2026-11-13 11:15:05 +00:00
Nibu
eea98d4414 HardpointAt prefers the hardpoint matching the item's Rotation
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 09:33:23 +00:00
Nibu
f38862aabc Test: reload keeps the hardpoint an origin two hardpoints accept (fails at base)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 09:33:16 +00:00
12256cbdc2 Merge pull request 'Remove the 41 .sbsar files and every reference (clean break from Substance)' (#23) from eureka/aetheria-release-remove-sbsar-files into master 2026-11-13 09:19:47 +00:00
Nibu
ea6b5115b4 Docs: the LFS staging set greens the sbsar guards only; name what else a green suite needs
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 09:19:27 +00:00
Nibu
83e6957de0 Test: guid resolution requires the asset beside the .meta
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 08:41:38 +00:00
Nibu
e326f5a8fa Docs: ygg-verify recipe stages every LFS file the sbsar guards read
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 08:41:38 +00:00
Nibu
6905726ba3 Test: guard repointed prefab/fbx.meta material guids, LFS pointers, all text assets, texture importer type
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 08:21:54 +00:00
Nibu
b2a272d1ab Test: scan m_TexEnvs up to m_Floats (some materials have no m_Ints)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 07:41:17 +00:00
Nibu
0bcf8f8187 Docs: record the sbsar removal
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 07:39:54 +00:00
Nibu
d144a2ccc2 Repoint the Substance materials to the owned ambientCG PBR sets
Rewrites 14 materials from the removed sbsar sub-assets to Assets/Materials/PBR
textures (Steel_Brushed, Gunmetal_Dark, Metal_Scratched, Paint_Worn_Light,
Plates_Panels), keeping each sbsar preset colour as _Color where it differed; flat
colour for Discobolus Marble (no marble set ships). Adds Pickup Trim.mat (copy of
Car Paint White Small, flat trim colour). Turret, the five pickup prefabs and the
Zenith_Blender externalObjects now name file materials instead of the ProceduralMaterial
sub-asset. Own commit so it reverts alone (question sbsar-fallback-fidelity, built on
its recommended option; no ruling yet).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 07:39:47 +00:00
Nibu
3f2f637e63 Drop the *.sbsar LFS rule and SUBSTANCE_PLUGIN_ENABLED define
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 07:39:07 +00:00
Nibu
6222b5c711 Remove the 41 .sbsar files, the Substance define and five unreferenced materials
Deletes Assets/Materials/Substance (41 .sbsar + metas, folder metas), the LFS rule for
*.sbsar, SUBSTANCE_PLUGIN_ENABLED from the Standalone scripting defines, and five
materials with zero GUID referrers (Assets/Steel, Steel brushed, Radiators 1,
Thrusters, Discobolus Bronze). Surviving materials and prefabs still name the removed
guids until the next commit repoints them.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 07:38:28 +00:00
Nibu
5c2dd76ceb Test: the Substance clean break (red on base)
Four headless facts: no .sbsar or .sbsar.meta remains; no surviving Assets/Packages/
ProjectSettings/GameData file names a removed Substance guid (44 tombstones: 41 sbsar
metas, 2 folder metas, the importer script guid); the SUBSTANCE_PLUGIN_ENABLED define,
LFS rule and manifest entries are gone; every repointed material names only textures
that resolve to a .meta outside the removed tree. Fails on b2322c4ce for those reasons.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 07:38:06 +00:00
b2322c4ce5 Merge pull request 'Mod ships: the catalog gate decides every file-decidable GLB fact once' (#22) from eureka/aetheria-release-mod-ship-glb-gate into master 2026-11-13 07:28:20 +00:00
Nibu
ad295acaf3 Pin BuildsMesh clauses: points mode, one bad primitive, negative and fractional mesh index, missing meshes array
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 06:45:43 +00:00
Nibu
339c617a74 ShipRigTests fixture: the shared mesh has a POSITION primitive
The fixture's empty primitives array is a mesh the importer cannot
build, which Bind now refuses.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 06:22:33 +00:00
Nibu
b66d4f89ab Bind decides every GLB-structure fact of a mod ship once
ReadNodeIds' HasMesh is now BuildsMesh: no skin, mesh index inside meshes,
at least one primitive, POSITION and triangle mode on each. Assemble's
shield-radii throw is deleted (Bind's PositiveScale is the judge). The FBX
thruster emitter takes Hide, with a smoke Require. Unity-only edits are
not compiled in this Body.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 06:08:44 +00:00
Nibu
7d5e14a65b Red test: a boot catalog must hold no hull the importer cannot build
ABootCatalogHoldsNoHullTheImporterCannotBuild fails at f7fd76857: dangling,
POSITION-less, skinned and primitive-less mesh nodes are all composed
and included (Excluded is empty).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 06:08:02 +00:00
f7fd76857e Merge pull request 'Mining cut 6: ore taken is visible in flight; one-click Sell Ore' (#21) from eureka/aetheria-release-mining-6 into master 2026-11-13 05:59:05 +00:00
Nibu
b5cfa3cbea Mining 6 fix: pickup reports the whole stack (read Quantity before TryStore); pin sell-ore Origin and Collected hold fill
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 05:58:28 +00:00
Nibu
c131045e7d Mining 6 C5: Event Log shows each take (CargoGained), Sell Ore foldout entry; dormant log activated, placeholder text removed
Option event-log of question mining-6-feedback-surface (recommended; no ruling).
Unity files are not compiled here.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 05:32:18 +00:00
Nibu
1662c53b9c Mining 6 tests: CargoGained from Extract and TryPickUp, HaulFeed, TrySellOre, DemoLoop sells ore in one step
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 05:16:35 +00:00
Nibu
d09850cfce Mining 6 C4: StationServices.OreValue and TrySellOre sell mined stacks through TrySell
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 05:14:48 +00:00
Nibu
149c513269 Mining 6 C1-C3: Zone.CargoGained, published by Extract and TryPickUp; HaulFeed words and hold fill
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 05:14:48 +00:00
ae64dbce2c Merge pull request 'Mining cut 5b: extracted lots; stacks merge, split and root by lot' (#20) from eureka/aetheria-release-mining-5b into master 2026-11-13 05:06:11 +00:00
Nibu
d3572c0190 Save roots: every crafted item roots at Lot 0 too; pin zero-draw mint guard and both root sides
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 03:55:32 +00:00
Nibu
7d9c4d4844 Tests: mined lots, stack merge and split by lot, save GC roots, rebuilt index, old saves read Lot 0
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 03:03:25 +00:00
Nibu
df67c875e3 FireControl.Extract stamps every mined stack with the Extracted lot of its zone, belt and ore
Extracted gains Body at key 2. ItemManager.ExtractedLot finds or mints the lot; its
(zone, belt, ore) index is derived from the ledger at construction and never saved.
SavedGame roots skip null items and Lot 0.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 03:03:25 +00:00
Nibu
00a036427d Lot moves to ItemInstance at key 11; stacks merge, split, restore and root by lot
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 03:00:44 +00:00
408f8086cb Merge pull request 'Mining cut 5a: a worn rock pays the shooter in ore; demo loop closes (#19)' (#19) from eureka/aetheria-release-mining-5a into master 2026-11-13 02:58:43 +00:00
Nibu
5663361e94 Tests: ore dice keyed by ShotId and DropSeed on both fire paths; TrySell of an unheld commodity pays nothing
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 02:57:50 +00:00
Nibu
5a3324d612 Station market absorbs a sold commodity; DemoLoop mine, sell, repair, buy test
TrySell: a simple commodity always sells (aetheria-release:ruling:station-market-absorbs-sold-commodity). The station bays take as much of the stack as fits, the market absorbs the rest, full price paid. Crafted items still need a bay.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 02:06:45 +00:00
Nibu
8a31099d99 Mining 5a: a worn rock pays the shooter in ore at the wear site from the shot's dice; overflow floats
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-12 23:05:37 +00:00
Nibu
f5eeb2e214 Zone.Wear returns the damage the rock absorbed; a break is ChunkExists
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-12 23:05:37 +00:00
Nibu
3ccb980185 Ore sheet: DemoOre batch and tests for the Asteroid ore yields, holdability and prices
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-12 23:01:04 +00:00
2b3278ba3d Mining cut 4: rocks take blasts and shots through the one fire path (#18) 2026-11-12 22:42:48 +00:00
c47a34115c Merge pull request 'Credits header scan: catch (c)/lowercase/colon forms, second holders, credit-only lines' (#17) from nibu/credits-header-scan into master 2026-11-12 16:57:18 +00:00
Nibu
61cea7d8c7 Credits test: header holders must equal a credited holder; scan Copyright followed by a bare name
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-12 16:52:06 +00:00
Nibu
50ab1cd7f4 Credits: credit uiextensions' BezierPath (Tulleken); review the credit-only lines in StableFluids, Triplanar and uiextensions
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-12 16:33:18 +00:00
Nibu
2071cea6e7 Credits test: header scan catches (c) and copyright-sign notices, lowercase copyright, 'Copyright:', every holder on a line, whole holder compared
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-12 16:32:03 +00:00
1c47036b7c Merge pull request 'Credits screen: one attribution list, reachable from the main menu' (#16) from nibu/credits-screen into master 2026-11-12 16:27:16 +00:00
Nibu
63403c8441 Credits: ship the Ubuntu Font Licence 1.0 and SIL OFL 1.1 texts beside the fonts
UFL-1.0.txt is the upstream Ubuntu Font Licence 1.0 text (google/fonts ufl/ubuntu/UFL.txt).
Montserrat-OFL-1.1.txt is the OFL 1.1 body, byte-for-byte the text already shipped with
Liberation Sans, headed by the copyright the Montserrat font embeds (Copyright(c) 2014 by
Julieta Ulanovsky) rather than the project's later authors line. The Ubuntu and
Montserrat credits now name these files as their LicenceFile; the test checks each
carries its licence, sits beside its fonts, and (OFL) the embedded holder.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-12 16:20:52 +00:00
Nibu
43be42fb52 Credits: credit the works whose notice is only a source header; test scans headers
Commit 16cb82d09 said every third-party work whose own text states holder and licence
was credited. That was false: header-only notices were missed. Now credited, holder
and licence taken from each file's own text: Academy of Motion Picture Arts and
Sciences (ACES.hlsl, 2015), Unity Technologies 2016 MIT (the built-in shader sources
Particle Standard Unlit, StretchedSkybox, MaskedWorldSpaceUI, MaskedWorldSpaceAdditiveUI
and the three AdditiveUI shaders), Supyrb 2017 (AdditiveUI shaders; the header states
no licence for that portion), and Stefan Gustavson 2011 MIT (Celestial Body
SimplexNoise2.cginc).

The discovery test now also scans every Copyright line in .shader/.hlsl/.cginc/.cs/.compute
under Assets; its holder must appear in a credit notice or in ReviewedHeaders with the
reason. Microsoft Open Technologies (UniRx headers, no licence stated, points at a
License.txt that is not in the repo) is the one reviewed entry. The Unity headers point
at a license.txt that is likewise not in the repo.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-12 16:16:25 +00:00
Nibu
a04c6414e1 Credits test: follow a reviewed font to its SDF asset and fallback tables
Prefabs reference the TMP SDF asset made from a font, not the .ttf, so matching the
font file guid alone could never fail. The unreferenced-font check now follows the
font guid and the guid of every Assets/Fonts file that references a guid already
followed (the font's own SDF asset, any SDF asset listing it as a fallback); a file
outside Assets/Fonts naming any of them is a use.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-12 16:10:24 +00:00