mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-07-20 22:00:48 +00:00
6a68884ce9
Generation now produces bit-identical output across repeated runs, server restarts, and parallel generation (golden-hash verified, 289/289 chunks). Engine fixes: - MatterGenerator: components flagged complete before generateLayer finished (raiseFlagUnchecked), letting concurrent neighbors consume half-written mantle data; switched to completion-locked raiseFlagSuspend - MantleObjectComponent: procedural objects (trees/ruins/formations/coral/ fungi/crystals) were absent from computeRadius, so canopies crossed chunk borders without ordering guarantees; variant footprints now counted - MantleCarvingComponent: carve profile ordering depended on IdentityHashMap iteration and hashCode sort ties; replaced with first-seen column-scan order and creation-sequence tiebreaks - IrisObject/IrisPostModifier: shared BlockData instances mutated in place (vine facing x3, auto-waterlog x2, leaf persistence); clone before mutate - IrisObject: slope-following placement mutated the shared pack-defined rotation config; now builds a local rotation on a copied placement - IrisObjectPlacement: surface-warp CNG seeded from first-caller chunk RNG; now seeded from the engine seed manager - GenerationCacheWarmer: engine init pre-bakes placement/decorator/ore/ procedural caches in sorted order, removing lazy first-touch ordering - IrisProceduralPlacement: expose getVariantObjects for radius computation Verification harness: - /iris dev goldenhash: buffered chunk generation (no world writes), SHA-256 per-chunk block+biome digests, golden capture/verify with per-chunk mismatch reporting, auto-diagnosis (repeat-gen + mantle-reset comparison, block-level diffs), deep per-chunk blockstate dumps, threads/deep params, full mantle reset (saveAll + tectonic file wipe) for reproducible runs - IrisEngineSVC: mantle trim/unload suspended while a goldenhash scan runs - MantleCarvingComponentTop2BlendTest: sequence-tiebreak regression test