From 08ffb9668079d905d33778a4e59353e7ec6fb63d Mon Sep 17 00:00:00 2001 From: Brian Neumann-Fopiano Date: Tue, 29 Sep 2026 01:12:16 -0400 Subject: [PATCH] Modded registry factories - Modded platform gets registry access from the modded server factory - Engine bootstrap and tile parity test get tile readers from the modded server factory - Registry access tests build through the modded server factory --- .../java/art/arcane/iris/modded/ModdedEngineBootstrap.java | 2 +- .../main/java/art/arcane/iris/modded/ModdedPlatform.java | 5 +---- .../java/art/arcane/iris/modded/ModdedTileParityTest.java | 3 ++- .../art/arcane/iris/modded/NativeRegistryAccessTest.java | 6 +++--- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedEngineBootstrap.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedEngineBootstrap.java index e972e70eb..b6bd3726e 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedEngineBootstrap.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedEngineBootstrap.java @@ -391,7 +391,7 @@ public final class ModdedEngineBootstrap { BlockDataMergeSupport.StateMerger previousMerger = BlockDataMergeSupport.bindPlatformMerger(new NativeStateMerger(ModdedBlockResolution.BLOCKS)::merge); rollback.add(() -> BlockDataMergeSupport.restorePlatformMerger(previousMerger)); - NativeTileReader nativeTileReader = NativeTileReader.forServer(boundLoader::currentServer); + NativeTileReader nativeTileReader = NativeModdedServer.tileReader(boundLoader::currentServer); TileData.TileReader previousTileReader = TileData.bindPlatformReader(in -> ModdedTileData.wrap(nativeTileReader.read(in))); rollback.add(() -> TileData.restorePlatformReader(previousTileReader)); diff --git a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedPlatform.java b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedPlatform.java index 2a488b3d5..3d795bfd5 100644 --- a/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedPlatform.java +++ b/adapters/modded-common/src/main/java/art/arcane/iris/modded/ModdedPlatform.java @@ -20,7 +20,6 @@ package art.arcane.iris.modded; import art.arcane.volmlib.nativelib.minecraft26_2.modded.NativeModdedServer; -import art.arcane.volmlib.nativelib.minecraft26_2.modded.NativeRegistryAccess; import art.arcane.volmlib.nativelib.minecraft26_2.terrain.NativeRegistryDefinitions; import art.arcane.volmlib.nativelib.minecraft26_2.modded.NativeEntitySpawns; import art.arcane.volmlib.nativelib.minecraft26_2.modded.NativeModdedLoader; @@ -61,9 +60,7 @@ public final class ModdedPlatform implements IrisPlatform { public ModdedPlatform(NativeModdedLoader loader) { this.loader = loader; this.registries = new ModdedRegistries( - new NativeRegistryAccess(new NativeRegistryAccess.Configuration( - ModdedEngineBootstrap::currentServer, - ModdedRegistries::warnNotReady)), + NativeModdedServer.registryAccess(ModdedEngineBootstrap::currentServer, ModdedRegistries::warnNotReady), ModdedPlatform::generationRegistry); this.scheduler = new ModdedScheduler(); this.structureHooks = new ModdedStructureHooks(ModdedEngineBootstrap::currentServer); diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedTileParityTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedTileParityTest.java index 7fbb2b7ee..d87c20d51 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedTileParityTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/ModdedTileParityTest.java @@ -1,5 +1,6 @@ package art.arcane.iris.modded; +import art.arcane.volmlib.nativelib.minecraft26_2.modded.NativeModdedServer; import art.arcane.volmlib.nativelib.minecraft26_2.modded.NativeTileReader; import art.arcane.volmlib.nativelib.minecraft26_2.modded.ModdedBlockState; import art.arcane.iris.generation.block.TileData; @@ -41,7 +42,7 @@ public class ModdedTileParityTest { SharedConstants.tryDetectVersion(); Bootstrap.bootStrap(); registries = RegistryAccess.fromRegistryOfRegistries(BuiltInRegistries.REGISTRY); - NativeTileReader nativeTileReader = NativeTileReader.forServer(() -> null); + NativeTileReader nativeTileReader = NativeModdedServer.tileReader(() -> null); TileData.bindPlatformReader(in -> ModdedTileData.wrap(nativeTileReader.read(in))); TileData.bindPlatformFactory(ModdedTileData::fromProperties); } diff --git a/adapters/modded-common/src/test/java/art/arcane/iris/modded/NativeRegistryAccessTest.java b/adapters/modded-common/src/test/java/art/arcane/iris/modded/NativeRegistryAccessTest.java index af9790899..11b104c84 100644 --- a/adapters/modded-common/src/test/java/art/arcane/iris/modded/NativeRegistryAccessTest.java +++ b/adapters/modded-common/src/test/java/art/arcane/iris/modded/NativeRegistryAccessTest.java @@ -36,7 +36,7 @@ public class NativeRegistryAccessTest { @Test public void statePropertiesPreserveTypesDefaultsAndSharedGroups() { - NativeRegistryAccess access = new NativeRegistryAccess(new NativeRegistryAccess.Configuration(() -> null, message -> {})); + NativeRegistryAccess access = NativeModdedServer.registryAccess(() -> null, message -> {}); Map> properties = access.blockStateProperties(); assertSame(properties.get("minecraft:stone"), properties.get("minecraft:dirt")); @@ -52,7 +52,7 @@ public class NativeRegistryAccessTest { @Test public void staticRegistriesResolveWithoutAnActiveServerAndDynamicReadsStayEmpty() { List warnings = new ArrayList<>(); - NativeRegistryAccess access = new NativeRegistryAccess(new NativeRegistryAccess.Configuration(() -> null, warnings::add)); + NativeRegistryAccess access = NativeModdedServer.registryAccess(() -> null, warnings::add); assertEquals("minecraft:diamond_sword", access.item("DIAMOND SWORD").key()); assertEquals("creature", access.entity("minecraft:cow").spawnCategory()); @@ -68,7 +68,7 @@ public class NativeRegistryAccessTest { public void dynamicRegistriesFollowServerStartupReloadAndShutdown() { AtomicReference activeServer = new AtomicReference<>(); List warnings = new ArrayList<>(); - NativeRegistryAccess access = new NativeRegistryAccess(new NativeRegistryAccess.Configuration(activeServer::get, warnings::add)); + NativeRegistryAccess access = NativeModdedServer.registryAccess(activeServer::get, warnings::add); assertTrue(access.lootTableKeys().isEmpty()); MinecraftServer server = mock(MinecraftServer.class, RETURNS_DEEP_STUBS);