From d29c1e572eb75542b54cc895a052cd32fc688217 Mon Sep 17 00:00:00 2001 From: dfsek Date: Wed, 24 Feb 2021 09:17:44 -0700 Subject: [PATCH] basic Fabric pack selection --- .../java/com/dfsek/terra/fabric/TerraFabricPlugin.java | 4 +++- .../world/generator/FabricChunkGeneratorWrapper.java | 7 +++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/TerraFabricPlugin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/TerraFabricPlugin.java index 37a201fed..bc69f8ebc 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/TerraFabricPlugin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/TerraFabricPlugin.java @@ -36,6 +36,7 @@ import com.dfsek.terra.fabric.world.FabricTree; import com.dfsek.terra.fabric.world.FabricWorldHandle; import com.dfsek.terra.fabric.world.TerraBiomeSource; import com.dfsek.terra.fabric.world.features.PopulatorFeature; +import com.dfsek.terra.fabric.world.generator.FabricChunkGenerator; import com.dfsek.terra.fabric.world.generator.FabricChunkGeneratorWrapper; import com.dfsek.terra.registry.exception.DuplicateEntryException; import com.dfsek.terra.registry.master.AddonRegistry; @@ -134,9 +135,10 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer { @Override public TerraWorld getWorld(World world) { + if(worldMap.size() > 1) System.out.println(worldMap.size()); return worldMap.computeIfAbsent(world.getSeed(), w -> { logger.info("Loading world " + w); - return new TerraWorld(world, getConfigRegistry().get("DEFAULT"), this); + return new TerraWorld(world, ((FabricChunkGeneratorWrapper) ((FabricChunkGenerator) world.getGenerator()).getHandle()).getPack(), this); }); } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/generator/FabricChunkGeneratorWrapper.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/generator/FabricChunkGeneratorWrapper.java index d28a1cde9..302f3ee83 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/generator/FabricChunkGeneratorWrapper.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/generator/FabricChunkGeneratorWrapper.java @@ -44,6 +44,9 @@ public class FabricChunkGeneratorWrapper extends ChunkGenerator implements com.d .apply(instance, instance.stable(FabricChunkGeneratorWrapper::new))); private final ConfigPack pack; + public ConfigPack getPack() { + return pack; + } private final FloraPopulator floraPopulator = new FloraPopulator(TerraFabricPlugin.getInstance()); private final OrePopulator orePopulator = new OrePopulator(TerraFabricPlugin.getInstance()); @@ -75,8 +78,8 @@ public class FabricChunkGeneratorWrapper extends ChunkGenerator implements com.d super(biomeSource, new StructuresConfig(false)); this.pack = configPack; - this.delegate = new DefaultChunkGenerator3D(configPack, TerraFabricPlugin.getInstance(), pack.getSamplerCache()); - delegate.getMain().logger().info("Loading world..."); + this.delegate = new DefaultChunkGenerator3D(pack, TerraFabricPlugin.getInstance(), pack.getSamplerCache()); + delegate.getMain().logger().info("Loading world with config pack " + pack.getTemplate().getID()); this.biomeSource = biomeSource; this.seed = seed;