From 1fba4d778041502119e6ef0b406a7518bb4bd06f Mon Sep 17 00:00:00 2001 From: haykam821 <24855774+haykam821@users.noreply.github.com> Date: Fri, 15 Aug 2025 18:21:26 -0400 Subject: [PATCH] Allow constructing template chunk generators without a server instance --- .../api/game/world/generator/GameChunkGenerator.java | 8 ++++++-- .../api/game/world/generator/TemplateChunkGenerator.java | 9 +++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/java/xyz/nucleoid/plasmid/api/game/world/generator/GameChunkGenerator.java b/src/main/java/xyz/nucleoid/plasmid/api/game/world/generator/GameChunkGenerator.java index dd614136..124dc997 100644 --- a/src/main/java/xyz/nucleoid/plasmid/api/game/world/generator/GameChunkGenerator.java +++ b/src/main/java/xyz/nucleoid/plasmid/api/game/world/generator/GameChunkGenerator.java @@ -2,6 +2,7 @@ import net.minecraft.registry.RegistryKey; import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.RegistryWrapper; import net.minecraft.server.MinecraftServer; import net.minecraft.util.math.BlockPos; import net.minecraft.world.ChunkRegion; @@ -32,9 +33,12 @@ public GameChunkGenerator(MinecraftServer server) { this(createBiomeSource(server, BiomeKeys.THE_VOID)); } + protected static FixedBiomeSource createBiomeSource(RegistryWrapper.WrapperLookup registries, RegistryKey biome) { + return new FixedBiomeSource(registries.getOrThrow(RegistryKeys.BIOME).getOrThrow(biome)); + } + protected static FixedBiomeSource createBiomeSource(MinecraftServer server, RegistryKey biome) { - var registryManager = server.getRegistryManager(); - return new FixedBiomeSource(registryManager.getOrThrow(RegistryKeys.BIOME).getOrThrow(biome)); + return createBiomeSource(server.getRegistryManager(), biome); } @Override diff --git a/src/main/java/xyz/nucleoid/plasmid/api/game/world/generator/TemplateChunkGenerator.java b/src/main/java/xyz/nucleoid/plasmid/api/game/world/generator/TemplateChunkGenerator.java index ce386b2b..641049ec 100644 --- a/src/main/java/xyz/nucleoid/plasmid/api/game/world/generator/TemplateChunkGenerator.java +++ b/src/main/java/xyz/nucleoid/plasmid/api/game/world/generator/TemplateChunkGenerator.java @@ -3,6 +3,7 @@ import net.minecraft.block.BlockState; import net.minecraft.registry.DynamicRegistryManager; import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryWrapper; import net.minecraft.server.MinecraftServer; import net.minecraft.structure.StructureTemplateManager; import net.minecraft.util.math.BlockPos; @@ -30,13 +31,17 @@ public class TemplateChunkGenerator extends GameChunkGenerator { private final MapTemplate template; private final BlockBounds worldBounds; - public TemplateChunkGenerator(MinecraftServer server, MapTemplate template) { - super(createBiomeSource(server, template.getBiome())); + public TemplateChunkGenerator(RegistryWrapper.WrapperLookup registries, MapTemplate template) { + super(createBiomeSource(registries, template.getBiome())); this.template = template; this.worldBounds = template.getBounds(); } + public TemplateChunkGenerator(MinecraftServer server, MapTemplate template) { + this(server.getRegistryManager(), template); + } + @Override public void setStructureStarts(DynamicRegistryManager registryManager, StructurePlacementCalculator placementCalculator, StructureAccessor structureAccessor, Chunk chunk, StructureTemplateManager structureTemplateManager, RegistryKey dimension) { }