Commit graph

4,299 commits

Author SHA1 Message Date
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
Nibu
1537bc2c52 Credits: credit the Ubuntu and Montserrat fonts from their embedded notices; review unreferenced fonts; stop skipping obj/bin/Library under Assets
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-12 14:37:48 +00:00
Nibu
390b4c7a45 Credits screen: one row per notice line, refuse a missing attribution file, follow the New Game focus handling
ShowCredits renders the selected credit as property rows instead of one multi-line label, refuses with a dialog when
the attribution TextAsset is missing or malformed, takes list rows out of automatic navigation, steps with Up/Down on
the focused Back button and leaves on Cancel. ScenarioPicker's focus hold moves to FocusHold so both screens share it.
The menu wiring test now strips comments before matching.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-12 12:48:52 +00:00
Nibu
16cb82d096 Credits: credit every third-party work whose own text states holder and licence; test discovers all licence-like files
Adds Liberation Sans (OFL), UniRx, KDTree, webgl-noise simplex noise and ambientCG to the list. CreditsTests now
matches LICEN[CS]E, COPYING, NOTICE, README, SOURCES, OFL files under Assets and requires each to be credited or
listed as reviewed-not-credited with a reason; credit notices are checked against what their files state. The
attribution heading is checked rather than skipped, the test states independent expectations, and the split Hurricane
line is joined.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-12 12:43:50 +00:00
Nibu
b367f80e6d Credits screen: one attribution list in Shared, reachable from the main menu
Twemoji, Playdead and the Noun Project icon credits, held against the licence files under Assets by CreditsTests.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-12 09:47:53 +00:00
b1a6fbf880 Merge pull request 'element-ids doc: retired slots held placeholders, why nakovalnya shrank' (#15) from nibu/element-ids-doc-fix into master 2026-11-11 13:44:40 +00:00
Nibu
7f148f08f1 element-ids doc: retired slots held placeholders, and why nakovalnya shrank
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 13:44:38 +00:00
73d36698b0 Merge pull request 'Pin CultLib abd1a92e: element ids on every list element type' (#12) from nibu/cultlib-pin-abd1a92e into master 2026-11-11 13:44:28 +00:00
Nibu
344ef3265c Regenerate the shipped mod ship.cc files off the retired HullData slots; blind element ids only where they are irrelevant
AetherDb ship-authoring regenerate rewrites a package under the current schema and requires it to read back identical. ElementIdUpgradeTests gains content preservation and a shipped-packages-writable check; ShipModCatalogTests compares mod records unblinded where the same packages are composed twice.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 13:10:31 +00:00
Nibu
7675296ec4 Pin CultLib cultlib-unity-v3.0.0 (7225835d) and CultMath cultmath-unity-v0.5.1 (f1edfa45) in the manifest and the headless build
The v3.0.0 plugin GameCult.Caching.dll exports CultElementIdAttribute; caching-unity stays at v2.0.0 (editor tooling, unchanged).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 13:10:31 +00:00
Nibu
6cb7b94551 element-ids doc: the old pin refuses v3, shipped mod packages are not rewritable, Unity cannot compile the attribute yet
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 13:10:31 +00:00
Nibu
9512e35d62 EmissionTests: launcher row is 38 slots with the element id
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 13:10:31 +00:00
Nibu
ff54fe7b46 Pin CultLib abd1a92e: element ids on every list element type, tests follow the new wire and write rules
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 13:10:31 +00:00
2c087bf2b0 Merge pull request 'Scenarios batch-4 minors: gun moves within its own hardpoint; station reactors regain quality spread' (#14) from nibu/scenarios-batch4-minors into master 2026-11-11 13:10:14 +00:00
Nibu
156d7c5a19 Determinism ledger: record why the station-reactor spread moves the two-AI digest
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 13:10:13 +00:00
Nibu
4c6dcfea73 AetherDb station-reactor-spread [apply]: station reactor products regain their sources' quality spread
f458206c7 authored the five per-manufacturer station reactor products with bare
ProductRole entries (the .5 / .15 default). The command copies each source product's
Mean and StandardDeviation per role to a role still at the default, and was applied
to the catalog. TwoAiDigest repinned for the catalog move.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 12:43:37 +00:00
Nibu
b1dae6218e Entity.ItemFits: an equipped item is judged without its own cells, so a gun moves within its hardpoint
The public ItemFits(item, coord) the inventory drag asks counted the dragged equipped
item's own cells as occupied, so a nudge overlapping its current cells was refused.
The private rule now takes the item being moved as an excluded occupant. TryEquip
and TryFindSpace pass none and stay strict, so equipping an equipped item twice is
still refused; the UI keeps TryUnequip then TryEquip (cargo bay emptiness rule).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 12:43:37 +00:00
5e443569c3 Merge pull request 'Shaders use cultmath_snoise from CultMath.hlsl' (#13) from nibu/shaders-use-cultmath-hlsl into master 2026-11-11 12:10:41 +00:00
Nibu
3c78dbcbd1 Fauna map B29: Aetheria pins cultmath-unity-v0.5.0
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 12:10:37 +00:00
Nibu
b6c428d682 Shaders: GalaxyMap, Clouds, SimplexBrush and Lightning.compute call cultmath_snoise
The previous commit deleted the GPU Noise includes; this one carries the call-site
edits it described. Release map notes Background's remaining 2D gradient copy.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 12:08:15 +00:00
Nibu
feb7cf8606 Shaders: GalaxyMap, Clouds, Lightning, SimplexBrush use cultmath_snoise from CultMath.hlsl
CPU snoise (CultMath C#) and the GPU shaders now share one implementation, so
fBm agrees. Deletes the GPU Noise copies nothing includes any more (Classic 2D/3D,
Simplex 3D, SimplexGrad 3D). Background.shader keeps SimplexNoise2D/SimplexNoiseGrad2D:
CultMath has no 2D gradient (cultmath_snoise_grad is float3 -> float4 only).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 11:53:16 +00:00
a5536cf150 Merge pull request 'Opens of suite-honest: honest station descriptions, Arcs bay, measured crates, drag test at play ThrustScale, HUD readout decision in Shared, gated Console capture' (#11) from nibu/opens-econ into master 2026-11-11 07:16:44 +00:00
Nibu
f856021997 Ammunition run: say the real window (heat death ~260 s, not ten minutes) and drop a dead debug line
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 07:16:40 +00:00
Nibu
782aee4ae5 Merge nibu/opens-tests into nibu/opens-econ 2026-11-11 06:35:35 +00:00
Nibu
465ab50666 Arcs player gets a bay; Arcs and Pursuit crates sized from a measured run
The Arcs fighter had no hold, so its Autocannon and Cell Blasters went silent after one magazine: it now fits the one free 2x2 bay. The estimated crate counts are replaced by measured draws (ten minutes of play or death by heat) plus margin, authored for every ammunition-drawing shooter; ScenarioAmmunitionRunTests drives both scenarios and fails if any shooter is stocked below its measured draw.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 06:34:46 +00:00
Nibu
dcd27cb3b0 Station-kind descriptions name only goods a recipe makes or takes
Uranium, Hydrogen (and Bacteria, Fungi, Animal Products) were named by mining, volatiles, agriculture, habitat-support and power descriptions with no recipe behind them. Dropped the claims (smaller than authoring a power chain); batch StationKindDescriptions restates the five kinds in the catalog; test pins the rule.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 05:59:44 +00:00
Nibu
58c4fa10c1 ShipProductTests and ShipModCatalogTests capture Console through ConsoleProbe.Capture so restores cannot interleave
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 05:59:30 +00:00
Nibu
eee5f213bf Ammo label visibility is Weapon.ShowsAmmoReadout: the HUD's three AmmoType.IsSet() decisions move into Shared and are tested
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 05:59:30 +00:00
Nibu
036f75a0d8 CoastingTests: a ship launched below top speed keeps it at the play ThrustScale 0.1 and at 1
Reads only the ship's velocity after the zone steps; reintroducing drag below top speed fails both cases (50 -> 18.39 in 10 s).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 05:58:27 +00:00
6cc6414425 Merge pull request 'Make the suite honest: digest repin, Crossing/MiningCut3 causes, authored cargo for Arcs and Pursuit, ConstantWeapon HUD, station descriptions' (#10) from nibu/suite-honest into master 2026-11-11 05:55:07 +00:00
Nibu
3458f0d7b3 TwoAiDigestIsPinned: repin linux-x64 to 52fbb10d and name the flight-model commits that moved it
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 05:20:46 +00:00
Nibu
663d054b02 Merge nibu/ammo-tail into nibu/suite-honest 2026-11-11 05:15:55 +00:00
Nibu
601ce3cc18 Catalog: mining names Diamond, volatiles names Ammonia (economy author ExtractionKindDescriptions)
Applied through AetherDb: 0 added, 2 changed (station-kind:mining, station-kind:volatiles), 0 removed. economy report fault count unchanged at 126.
GameData/Aetheria.cc sha256 956a1573fa2aa69d7f72861e10dd17d7d3255d114e878da81802869efcfe31e9 (before: 0f81d35d4cec8f57178220f20bca98ffaa6709783349efe3cc28aa64ea1f02b1).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 05:14:40 +00:00
Nibu
ee49f95843 AetherDb economy: Author takes the scratch root; TheTrialCopyIsRemoved audits its own, not the shared temp folder
The test counted aetherdb-economy-* directories in the machine's temp folder, which every parallel test running the command also writes to.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 05:07:47 +00:00
Nibu
85f1a933d4 GetAllChildClasses: the type memo is concurrent
A plain Dictionary written by parallel catalog loads corrupted itself ("Operations that change non-concurrent collections must have exclusive
access") and failed unrelated tests at random, through ValidateStatModifiers.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 05:07:47 +00:00