Commit Graph
209 Commits
Author SHA1 Message Date
Brian Neumann-Fopiano 657aaeaccf Add /iris language and /iris debugdump on both platforms
/iris language opens a locale menu and sets the language for the caller
or, for a gamemaster, the server default; /iris debugdump writes a
diagnostic report and optionally uploads it. Neither needs iris.all, so
a plain player can reach them. Every modded command now executes inside
a language audience scope, and the Bukkit dispatcher opens one around
execution, tab completion and help. Permissions, message keys and the
shipped locales follow.
2026-09-03 05:03:28 -04:00
Brian Neumann-Fopiano b25937f986 Download translations on demand instead of bundling them
Locales are fetched from the Iris repository at runtime into
languages/downloaded and cached against the revision the jar was built
from; the artifact ships only a manifest of the available locales.
IrisLanguage gains a player language service, per-audience snapshots and
an in-game message editor that writes locale overrides. The Bukkit
artifact verifier now fails when any locale file is embedded, and the
modded shadow jars drop the Bukkit-only switcher and editor classes.
2026-09-03 05:03:21 -04:00
Brian Neumann-Fopiano 5053a644c7 Grow speleothems from decorators and keep them supported
Dripstone and sulfur spikes are placed as oriented, thickness-graded
columns by the surface and ceiling decorators through a shared
IrisSpeleothems helper, replacing the ad hoc dripstone fixups, and the
stacking path is unified for both directions. The perfection modifier
renormalizes a spike whose support a pool replaced, dropping the
unsupported run and re-tipping what remains. Surface sturdiness is asked
per face now, so a downward spike tests the ceiling it hangs from.
2026-09-03 05:03:14 -04:00
Brian Neumann-Fopiano fd66b41bad Answer server-thread terrain queries from natural terrain
A height or biome query from the tick thread no longer blocks on a cold
hydrology plan: it answers from the natural streams and asks the
planning pool for the tiles meanwhile. A new world prefetches the tiles
around spawn when the generator is injected, and the hydrology pool gets
full parallelism instead of a third. Also stops the shared corner-bounds
cache from pinning a non-finite sample and fences its two stamp reads.
2026-09-03 05:03:07 -04:00
Brian Neumann-Fopiano e92c0efe09 Keep native structures out of static object cells
Vanilla structure and feature placement now runs through the bounded
worldgen access with a protected-position predicate, so a jigsaw piece
or an imported feature can read a static object's blocks but never
overwrite them, and never schedules a tick or block entity there.
Dimensions without static objects keep the plain level as before.
2026-09-03 05:02:53 -04:00
Brian Neumann-Fopiano 0b543bf7ee Compat report, validation and commands
- Force-load every registrant and placement during pack validation and persist the findings with the Minecraft version in the validation cache
- Turn an excluded dimension into a blocking validation error and suppress content-key warnings the gate already reported
- Print the capped per-key listing after the validation lines on Bukkit and modded, ordered excluded, dropped, substituted
- Log one summary line per world engine from the published validation result
- Add /iris pack compat on Bukkit and modded with help and locale keys for every shipped language
2026-09-03 04:54:38 -04:00
Brian Neumann-Fopiano 516ef71c9c Version content gate core
- Add the ContentGate, CompatWalker, PackCompatReport and finding types under core.compat
- Resolve block keys through the live registry, the legacy rename table, dimension blockFallbacks and the entry backup on every platform
- Move the legacy rename table into LegacyBlockRenames so Bukkit and the mod loaders apply it identically
- Evaluate every registrant on load from IrisData.preprocessObject and store the verdict on IrisRegistrant
- Add IrisDimension.blockFallbacks as a plain object property
- Keep missing palette keys as MissingBlockState placeholders so a chance-1 edit rule can still rewrite them
- Guard the modded rotator, merger and face fixer against non-modded states
- Source the legacy potion effect aliases from the gate so the Bukkit-typed table stays unloaded on modded
2026-09-03 04:54:22 -04:00
Brian Neumann-Fopiano 665b201e41 Merge terrain-first hydrology into master
Surface rivers v2: valley-first eroded channels, spring pools, standing
pools, tributaries, bed padding, ring-ordered feature search, schema v2
hydrology configuration and the transect probe.
2026-09-02 03:00:10 -04:00
Brian Neumann-Fopiano 333b766d2d Datapack imports from Modrinth, HTTP(S) and local file ZIPs
Work in progress parked from the working tree so the hydrology merge
could land; amend or squash as needed.
2026-09-02 03:00:10 -04:00
Brian Neumann-Fopiano f6a7ad7472 Merge origin/master into terrain-first hydrology
Brings master's Sentry removal, bound platform classification, Vision
entity toggle, release version and generation context binding onto the
rivers rework while keeping the hydrology system master had removed.
Hydrology files master deleted are restored from the branch, master's
non-hydrology edits are kept, and the modded adapter builds drop the
Sentry dependency with master.

Also removes the ridge_tunnel find selector: no course publishes ridge
bores any more, so it could never return a result.
2026-09-02 02:52:08 -04:00
Brian Neumann-Fopiano d1c73025a0 Spring pools at headwaters and ring-ordered feature search
- channel.springWidthRatio / springLength open every surface river in a pool that shrinks where the ground falls away
- Banks settings keep structural invariants only; authoring bounds stay in the validator
- Feature searches walk tiles outward and stop early; find and goto report progress per ring
2026-09-01 23:13:47 -04:00
Brian Neumann-Fopiano 48afa0d93f Terrain-first hydrology
- Replace the river package with the hydrology planner, footprint compiler, cave containment and runtime
- Add the hydrology pack schema, validator, probes and tests
- Wire hydrology into IrisComplex, actuators, mantle, Vision and commands
2026-09-01 18:28:00 -04:00
Brian Neumann-Fopiano 27799039d1 Bind generation context
- Resolve first-generation engine binding from authoritative published level context.
- Validate generator identity and recover canonical Overworld binding from stale snapshots.
- Add shared loader regression tests and their Mockito test dependency.
2026-08-28 16:30:11 -04:00
Brian Neumann-Fopiano fd8c55076e Bridge host levels
- Publish and remove dynamic levels through host lifecycle methods when available.
- Attach hybrid host level data before engine binding and publication.
- Preserve native loader behavior when host extensions are absent.
2026-08-28 16:30:05 -04:00
Brian Neumann-Fopiano 1ca943ab51 Remove Sentry
- Remove automatic error reporting and server-identifying attachments.
- Remove Sentry dependencies, release tooling, settings, and test commands.
- Keep failures operator-visible through local stack traces and logging.
2026-08-28 16:29:33 -04:00
Brian Neumann-Fopiano 2b92fbf825 iris release commits 2026-08-27 02:47:05 -04:00
Brian Neumann-Fopiano f398c55091 Remove Hydrology 2026-08-27 00:45:15 -04:00
Brian Neumann-Fopiano bdaa84975a f 2026-08-25 15:49:54 -04:00
Brian Neumann-Fopiano 07cc76614f Way too much 2026-08-25 12:52:12 -04:00
Brian Neumann-Fopiano 2797a5bf22 dwa 2026-08-24 16:50:57 -04:00
Brian Neumann-Fopiano 37b01b73c4 Imagemap sanitization 2026-08-24 13:44:44 -04:00
Brian Neumann-Fopiano e20bb86f40 f 2026-08-24 02:27:26 -04:00
Brian Neumann-Fopiano fe5651f854 d
d
2026-08-23 13:56:23 -04:00
Brian Neumann-Fopiano dce7af1955 object cleanup 2026-08-22 11:29:37 -04:00
Robert Stoneking fe684083e7 Adding myself and fixing Windows Tests. 2026-08-21 20:59:26 -06:00
Brian Neumann-Fopiano 34092da6be d 2026-08-21 02:03:24 -04:00
Brian Neumann-Fopiano 8eaafa3c69 Object fixes / PS 2026-08-20 11:49:39 -04:00
Brian Neumann-Fopiano 5cacf6d435 MV 2026-08-20 10:59:17 -04:00
Brian Neumann-Fopiano fec655def4 ddd 2026-08-19 22:21:25 -04:00
Brian Neumann-Fopiano 41b2b53ac8 dwa 2026-08-19 19:36:03 -04:00
Brian Neumann-Fopiano 03746468ec COntent 2026-08-16 23:53:42 -04:00
Brian Neumann-Fopiano a1cef36f10 a 2026-08-15 23:02:50 -04:00
Brian Neumann-Fopiano 7691d2df53 dwa 2026-08-15 22:32:40 -04:00
Brian Neumann-Fopiano fc0fdf4ce4 d 2026-08-15 21:32:00 -04:00
Brian Neumann-Fopiano ef2e1b8f58 Modded adapters 2026-08-15 15:58:26 -04:00
Brian Neumann-Fopiano 8297e49ed2 Fix Iris replacement 2026-08-15 15:58:07 -04:00
Brian Neumann-Fopiano 4568b3fff1 chunk granularity 2026-08-15 15:58:00 -04:00
Brian Neumann-Fopiano d196ffe853 stabilize pregeneration 2026-08-15 15:57:36 -04:00
Brian Neumann-Fopiano 57072d5bcd Correct Java 26.2 Iris world lifecycle 2026-08-15 11:27:46 -04:00
Brian Neumann-Fopiano 32beca236c ddd 2026-08-13 16:54:37 -04:00
Brian Neumann-Fopiano 1586b4bd1a dwa 2026-08-13 12:38:08 -04:00
Brian Neumann-Fopiano 14b6280668 Full audit fixpass: 93 defect fixes, 14 perf wins, vestigial cleanup 2026-08-13 01:01:01 -04:00
Brian Neumann-Fopiano 13e02ecd2f s 2026-08-12 16:31:27 -04:00
Brian Neumann-Fopiano 12b97b7994 Fixes 2026-08-12 00:42:33 -04:00
Brian Neumann-Fopiano 8a189195ad d 2026-08-11 20:42:37 -04:00
Brian Neumann-Fopiano d9860782ef oops 2026-08-11 20:41:41 -04:00
Brian Neumann-Fopiano 623a02025c content 2026-08-11 20:35:27 -04:00
Brian Neumann-Fopiano 82290a3090 fix 2026-08-11 14:54:53 -04:00
Brian Neumann-Fopiano dfae45663a Fixes 2026-08-10 17:32:44 -04:00
Brian Neumann-Fopiano 998a5c9f5f dwa
(removed ai file from when i generated docs)
2026-08-10 15:48:22 -04:00