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
This commit is contained in:
Brian Neumann-Fopiano committed 2026-09-03 04:54:22 -04:00
1 parent df34f328e7
commit 516ef71c9c
30 files changed
+3818 -173

No files matched your search

@@ -39,7 +39,9 @@ public final class ModdedDecoratorHooks implements DecoratorPlatformHooks.FaceFi
@Override
public PlatformBlockState fixFaces(PlatformBlockState state, Hunk<PlatformBlockState> hunk, int rX, int rZ, int x, int y, int z, EngineMantle mantle) {
ModdedBlockState fabric = (ModdedBlockState) state;
if (!(state instanceof ModdedBlockState fabric)) {
return state;
}
BlockState cloned = fabric.handle();
Map<String, BooleanProperty> allowed = faceProperties(cloned);
@@ -28,8 +28,9 @@ import java.util.Map;
public final class ModdedStateMerger implements BlockDataMergeSupport.StateMerger {
@Override
public PlatformBlockState merge(PlatformBlockState base, PlatformBlockState update) {
ModdedBlockState fabricBase = (ModdedBlockState) base;
ModdedBlockState fabricUpdate = (ModdedBlockState) update;
if (!(base instanceof ModdedBlockState fabricBase) || !(update instanceof ModdedBlockState fabricUpdate)) {
return update;
}
ModdedBlockState metadataSource = fabricUpdate.isCustom() ? fabricUpdate : fabricBase;
try {
@@ -47,7 +47,9 @@ public final class ModdedStateRotator implements IrisObjectRotation.StateRotator
@Override
public PlatformBlockState rotate(IrisObjectRotation rotation, PlatformBlockState state, int spinxx, int spinyy, int spinzz) {
ModdedBlockState fabric = (ModdedBlockState) state;
if (!(state instanceof ModdedBlockState fabric)) {
return state;
}
BlockState d = fabric.handle();
boolean deleted = false;