diff --git a/common/src/main/java/com/dfsek/terra/api/core/TerraPlugin.java b/common/src/main/java/com/dfsek/terra/api/core/TerraPlugin.java
index 7076afc2c..8bd907761 100644
--- a/common/src/main/java/com/dfsek/terra/api/core/TerraPlugin.java
+++ b/common/src/main/java/com/dfsek/terra/api/core/TerraPlugin.java
@@ -8,8 +8,8 @@ import com.dfsek.terra.api.platform.world.World;
import com.dfsek.terra.config.PluginConfig;
import com.dfsek.terra.config.lang.Language;
import com.dfsek.terra.debug.DebugLogger;
-import com.dfsek.terra.registry.AddonRegistry;
-import com.dfsek.terra.registry.ConfigRegistry;
+import com.dfsek.terra.registry.master.AddonRegistry;
+import com.dfsek.terra.registry.master.ConfigRegistry;
import com.dfsek.terra.world.TerraWorld;
import java.io.File;
diff --git a/common/src/main/java/com/dfsek/terra/api/platform/world/generator/ChunkData.java b/common/src/main/java/com/dfsek/terra/api/platform/world/generator/ChunkData.java
new file mode 100644
index 000000000..bb7f164a4
--- /dev/null
+++ b/common/src/main/java/com/dfsek/terra/api/platform/world/generator/ChunkData.java
@@ -0,0 +1,14 @@
+package com.dfsek.terra.api.platform.world.generator;
+
+import com.dfsek.terra.api.platform.world.ChunkAccess;
+
+public interface ChunkData extends ChunkAccess {
+ /**
+ * Get the maximum height for the chunk.
+ *
+ * Setting blocks at or above this height will do nothing.
+ *
+ * @return the maximum height
+ */
+ int getMaxHeight();
+}
diff --git a/common/src/main/java/com/dfsek/terra/api/platform/world/generator/ChunkGenerator.java b/common/src/main/java/com/dfsek/terra/api/platform/world/generator/ChunkGenerator.java
index 63676d31c..da3594011 100644
--- a/common/src/main/java/com/dfsek/terra/api/platform/world/generator/ChunkGenerator.java
+++ b/common/src/main/java/com/dfsek/terra/api/platform/world/generator/ChunkGenerator.java
@@ -1,43 +1,7 @@
package com.dfsek.terra.api.platform.world.generator;
import com.dfsek.terra.api.platform.Handle;
-import com.dfsek.terra.api.platform.world.BiomeGrid;
-import com.dfsek.terra.api.platform.world.ChunkAccess;
-import com.dfsek.terra.api.platform.world.World;
-import com.dfsek.terra.api.world.generation.TerraChunkGenerator;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import java.util.List;
-import java.util.Random;
public interface ChunkGenerator extends Handle {
- boolean isParallelCapable();
- boolean shouldGenerateCaves();
-
- boolean shouldGenerateDecorations();
-
- boolean shouldGenerateMobs();
-
- boolean shouldGenerateStructures();
-
- ChunkData generateChunkData(@NotNull World world, @NotNull Random random, int x, int z, @NotNull BiomeGrid biome);
-
-
- List getDefaultPopulators(World world);
-
- @Nullable
- TerraChunkGenerator getTerraGenerator();
-
- interface ChunkData extends ChunkAccess {
- /**
- * Get the maximum height for the chunk.
- *
- * Setting blocks at or above this height will do nothing.
- *
- * @return the maximum height
- */
- int getMaxHeight();
- }
}
diff --git a/common/src/main/java/com/dfsek/terra/api/platform/world/generator/GeneratorWrapper.java b/common/src/main/java/com/dfsek/terra/api/platform/world/generator/GeneratorWrapper.java
deleted file mode 100644
index 4de6bdc2b..000000000
--- a/common/src/main/java/com/dfsek/terra/api/platform/world/generator/GeneratorWrapper.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.dfsek.terra.api.platform.world.generator;
-
-import com.dfsek.terra.api.platform.Handle;
-
-public interface GeneratorWrapper extends Handle {
-}
diff --git a/common/src/main/java/com/dfsek/terra/api/structures/script/StructureScript.java b/common/src/main/java/com/dfsek/terra/api/structures/script/StructureScript.java
index c68c7cb07..232a931f6 100644
--- a/common/src/main/java/com/dfsek/terra/api/structures/script/StructureScript.java
+++ b/common/src/main/java/com/dfsek/terra/api/structures/script/StructureScript.java
@@ -28,7 +28,7 @@ import com.dfsek.terra.api.structures.structure.Rotation;
import com.dfsek.terra.api.structures.structure.buffer.Buffer;
import com.dfsek.terra.api.structures.structure.buffer.DirectBuffer;
import com.dfsek.terra.api.structures.structure.buffer.StructureBuffer;
-import com.dfsek.terra.registry.FunctionRegistry;
+import com.dfsek.terra.registry.config.FunctionRegistry;
import com.dfsek.terra.registry.config.LootRegistry;
import com.dfsek.terra.registry.config.ScriptRegistry;
import com.dfsek.terra.world.generation.math.SamplerCache;
@@ -47,7 +47,7 @@ public class StructureScript {
private final String id;
private final Cache cache;
private final TerraPlugin main;
- String tempID;
+ private String tempID;
public StructureScript(InputStream inputStream, TerraPlugin main, ScriptRegistry registry, LootRegistry lootRegistry, SamplerCache cache, FunctionRegistry functionRegistry) throws ParseException {
Parser parser;
diff --git a/common/src/main/java/com/dfsek/terra/api/world/generation/TerraChunkGenerator.java b/common/src/main/java/com/dfsek/terra/api/world/generation/TerraChunkGenerator.java
index c4b52f2f3..94b89a983 100644
--- a/common/src/main/java/com/dfsek/terra/api/world/generation/TerraChunkGenerator.java
+++ b/common/src/main/java/com/dfsek/terra/api/world/generation/TerraChunkGenerator.java
@@ -3,14 +3,14 @@ package com.dfsek.terra.api.world.generation;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.platform.world.BiomeGrid;
import com.dfsek.terra.api.platform.world.World;
-import com.dfsek.terra.api.platform.world.generator.ChunkGenerator;
+import com.dfsek.terra.api.platform.world.generator.ChunkData;
import com.dfsek.terra.config.pack.ConfigPack;
import org.jetbrains.annotations.NotNull;
import java.util.Random;
public interface TerraChunkGenerator {
- ChunkGenerator.ChunkData generateChunkData(@NotNull World world, Random random, int x, int z, ChunkGenerator.ChunkData original);
+ ChunkData generateChunkData(@NotNull World world, Random random, int x, int z, ChunkData original);
void generateBiomes(@NotNull World world, @NotNull Random random, int x, int z, @NotNull BiomeGrid biome);
diff --git a/common/src/main/java/com/dfsek/terra/config/pack/ConfigPack.java b/common/src/main/java/com/dfsek/terra/config/pack/ConfigPack.java
index 7f36e01b6..fb9d433e6 100644
--- a/common/src/main/java/com/dfsek/terra/config/pack/ConfigPack.java
+++ b/common/src/main/java/com/dfsek/terra/config/pack/ConfigPack.java
@@ -46,11 +46,11 @@ import com.dfsek.terra.config.templates.OreTemplate;
import com.dfsek.terra.config.templates.PaletteTemplate;
import com.dfsek.terra.config.templates.StructureTemplate;
import com.dfsek.terra.config.templates.TreeTemplate;
-import com.dfsek.terra.registry.FunctionRegistry;
import com.dfsek.terra.registry.TerraRegistry;
import com.dfsek.terra.registry.config.BiomeRegistry;
import com.dfsek.terra.registry.config.CarverRegistry;
import com.dfsek.terra.registry.config.FloraRegistry;
+import com.dfsek.terra.registry.config.FunctionRegistry;
import com.dfsek.terra.registry.config.LootRegistry;
import com.dfsek.terra.registry.config.NoiseRegistry;
import com.dfsek.terra.registry.config.OreRegistry;
diff --git a/common/src/main/java/com/dfsek/terra/profiler/WorldProfiler.java b/common/src/main/java/com/dfsek/terra/profiler/WorldProfiler.java
index 7b3e9c12d..a1ea04908 100644
--- a/common/src/main/java/com/dfsek/terra/profiler/WorldProfiler.java
+++ b/common/src/main/java/com/dfsek/terra/profiler/WorldProfiler.java
@@ -1,6 +1,7 @@
package com.dfsek.terra.profiler;
import com.dfsek.terra.api.platform.world.World;
+import com.dfsek.terra.world.TerraWorld;
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
import net.jafama.FastMath;
@@ -13,7 +14,7 @@ public class WorldProfiler {
private boolean isProfiling;
public WorldProfiler(World w) {
- if(w.getGenerator().getTerraGenerator() == null)
+ if(!TerraWorld.isTerraWorld(w))
throw new IllegalArgumentException("Attempted to instantiate profiler on non-Terra managed world!");
this.addMeasurement(new Measurement(2500000, DataType.PERIOD_MILLISECONDS), "TotalChunkGenTime")
.addMeasurement(new Measurement(1500000, DataType.PERIOD_MILLISECONDS), "FloraTime")
@@ -21,7 +22,7 @@ public class WorldProfiler {
.addMeasurement(new Measurement(1500000, DataType.PERIOD_MILLISECONDS), "OreTime")
.addMeasurement(new Measurement(5000000, DataType.PERIOD_MILLISECONDS), "CaveTime")
.addMeasurement(new Measurement(1500000, DataType.PERIOD_MILLISECONDS), "StructureTime");
- ;
+
isProfiling = false;
this.world = w;
}
diff --git a/common/src/main/java/com/dfsek/terra/registry/FunctionRegistry.java b/common/src/main/java/com/dfsek/terra/registry/config/FunctionRegistry.java
similarity index 63%
rename from common/src/main/java/com/dfsek/terra/registry/FunctionRegistry.java
rename to common/src/main/java/com/dfsek/terra/registry/config/FunctionRegistry.java
index dc3689d0a..6e0e465e6 100644
--- a/common/src/main/java/com/dfsek/terra/registry/FunctionRegistry.java
+++ b/common/src/main/java/com/dfsek/terra/registry/config/FunctionRegistry.java
@@ -1,6 +1,7 @@
-package com.dfsek.terra.registry;
+package com.dfsek.terra.registry.config;
import com.dfsek.terra.api.structures.parser.lang.functions.FunctionBuilder;
+import com.dfsek.terra.registry.TerraRegistry;
public class FunctionRegistry extends TerraRegistry> {
}
diff --git a/common/src/main/java/com/dfsek/terra/registry/AddonRegistry.java b/common/src/main/java/com/dfsek/terra/registry/master/AddonRegistry.java
similarity index 98%
rename from common/src/main/java/com/dfsek/terra/registry/AddonRegistry.java
rename to common/src/main/java/com/dfsek/terra/registry/master/AddonRegistry.java
index d73799b67..40db3b7b0 100644
--- a/common/src/main/java/com/dfsek/terra/registry/AddonRegistry.java
+++ b/common/src/main/java/com/dfsek/terra/registry/master/AddonRegistry.java
@@ -1,4 +1,4 @@
-package com.dfsek.terra.registry;
+package com.dfsek.terra.registry.master;
import com.dfsek.terra.addons.addon.TerraAddon;
import com.dfsek.terra.addons.injection.InjectionException;
@@ -8,6 +8,7 @@ import com.dfsek.terra.addons.loading.AddonLoadException;
import com.dfsek.terra.addons.loading.pre.AddonPool;
import com.dfsek.terra.addons.loading.pre.PreLoadAddon;
import com.dfsek.terra.api.core.TerraPlugin;
+import com.dfsek.terra.registry.TerraRegistry;
import java.io.File;
import java.io.IOException;
diff --git a/common/src/main/java/com/dfsek/terra/registry/master/ChunkGeneratorRegistry.java b/common/src/main/java/com/dfsek/terra/registry/master/ChunkGeneratorRegistry.java
new file mode 100644
index 000000000..93ee25e94
--- /dev/null
+++ b/common/src/main/java/com/dfsek/terra/registry/master/ChunkGeneratorRegistry.java
@@ -0,0 +1,7 @@
+package com.dfsek.terra.registry.master;
+
+import com.dfsek.terra.api.platform.world.generator.ChunkGenerator;
+import com.dfsek.terra.registry.TerraRegistry;
+
+public class ChunkGeneratorRegistry extends TerraRegistry {
+}
diff --git a/common/src/main/java/com/dfsek/terra/registry/ConfigRegistry.java b/common/src/main/java/com/dfsek/terra/registry/master/ConfigRegistry.java
similarity index 94%
rename from common/src/main/java/com/dfsek/terra/registry/ConfigRegistry.java
rename to common/src/main/java/com/dfsek/terra/registry/master/ConfigRegistry.java
index 8532cf535..0cf923850 100644
--- a/common/src/main/java/com/dfsek/terra/registry/ConfigRegistry.java
+++ b/common/src/main/java/com/dfsek/terra/registry/master/ConfigRegistry.java
@@ -1,8 +1,9 @@
-package com.dfsek.terra.registry;
+package com.dfsek.terra.registry.master;
import com.dfsek.tectonic.exception.ConfigException;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.config.pack.ConfigPack;
+import com.dfsek.terra.registry.TerraRegistry;
import java.io.File;
import java.io.IOException;
diff --git a/common/src/main/java/com/dfsek/terra/world/TerraWorld.java b/common/src/main/java/com/dfsek/terra/world/TerraWorld.java
index 6a607008d..0dd3d9129 100644
--- a/common/src/main/java/com/dfsek/terra/world/TerraWorld.java
+++ b/common/src/main/java/com/dfsek/terra/world/TerraWorld.java
@@ -6,7 +6,7 @@ import com.dfsek.terra.api.math.vector.Location;
import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.world.World;
-import com.dfsek.terra.api.platform.world.generator.GeneratorWrapper;
+import com.dfsek.terra.api.platform.world.generator.ChunkGenerator;
import com.dfsek.terra.api.world.biome.UserDefinedBiome;
import com.dfsek.terra.api.world.biome.provider.BiomeProvider;
import com.dfsek.terra.api.world.palette.Palette;
@@ -40,7 +40,7 @@ public class TerraWorld {
}
public static boolean isTerraWorld(World w) {
- return w.getGenerator().getHandle() instanceof GeneratorWrapper;
+ return w.getGenerator().getHandle() instanceof ChunkGenerator;
}
public BiomeProvider getBiomeProvider() {
diff --git a/common/src/main/java/com/dfsek/terra/world/generation/MasterChunkGenerator.java b/common/src/main/java/com/dfsek/terra/world/generation/MasterChunkGenerator.java
index e51131e7c..ef9415f52 100644
--- a/common/src/main/java/com/dfsek/terra/world/generation/MasterChunkGenerator.java
+++ b/common/src/main/java/com/dfsek/terra/world/generation/MasterChunkGenerator.java
@@ -12,7 +12,7 @@ import com.dfsek.terra.api.platform.block.data.Stairs;
import com.dfsek.terra.api.platform.block.data.Waterlogged;
import com.dfsek.terra.api.platform.world.BiomeGrid;
import com.dfsek.terra.api.platform.world.World;
-import com.dfsek.terra.api.platform.world.generator.ChunkGenerator;
+import com.dfsek.terra.api.platform.world.generator.ChunkData;
import com.dfsek.terra.api.util.world.PaletteUtil;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.biome.UserDefinedBiome;
@@ -92,7 +92,7 @@ public class MasterChunkGenerator implements TerraChunkGenerator {
@Override
@SuppressWarnings({"try"})
- public ChunkGenerator.ChunkData generateChunkData(@NotNull World world, Random random, int chunkX, int chunkZ, ChunkGenerator.ChunkData chunk) {
+ public ChunkData generateChunkData(@NotNull World world, Random random, int chunkX, int chunkZ, ChunkData chunk) {
TerraWorld tw = main.getWorld(world);
BiomeProvider grid = tw.getBiomeProvider();
try(ProfileFuture ignore = tw.getProfiler().measure("TotalChunkGenTime")) {
@@ -151,7 +151,7 @@ public class MasterChunkGenerator implements TerraChunkGenerator {
}
}
- private void prepareBlockPartFloor(BlockData down, BlockData orig, ChunkGenerator.ChunkData chunk, Vector3 block, Map> slabs,
+ private void prepareBlockPartFloor(BlockData down, BlockData orig, ChunkData chunk, Vector3 block, Map> slabs,
Map> stairs, double thresh, Sampler sampler) {
if(sampler.sample(block.getX(), block.getY() - 0.4, block.getZ()) > thresh) {
if(stairs != null) {
@@ -172,7 +172,7 @@ public class MasterChunkGenerator implements TerraChunkGenerator {
}
}
- private void prepareBlockPartCeiling(BlockData up, BlockData orig, ChunkGenerator.ChunkData chunk, Vector3 block, Map> slabs,
+ private void prepareBlockPartCeiling(BlockData up, BlockData orig, ChunkData chunk, Vector3 block, Map> slabs,
Map> stairs, double thresh, Sampler sampler) {
if(sampler.sample(block.getX(), block.getY() + 0.4, block.getZ()) > thresh) {
if(stairs != null) {
@@ -196,7 +196,7 @@ public class MasterChunkGenerator implements TerraChunkGenerator {
}
}
- private boolean placeStair(BlockData orig, ChunkGenerator.ChunkData chunk, Vector3 block, double thresh, Sampler sampler, Stairs stairNew) {
+ private boolean placeStair(BlockData orig, ChunkData chunk, Vector3 block, double thresh, Sampler sampler, Stairs stairNew) {
if(sampler.sample(block.getBlockX() - 0.55, block.getY(), block.getZ()) > thresh) {
diff --git a/common/src/test/java/biome/DistributionTest.java b/common/src/test/java/biome/DistributionTest.java
index 464c93a33..2f91fb2a3 100644
--- a/common/src/test/java/biome/DistributionTest.java
+++ b/common/src/test/java/biome/DistributionTest.java
@@ -34,10 +34,10 @@ import com.dfsek.terra.config.loaders.config.sampler.NoiseSamplerBuilderLoader;
import com.dfsek.terra.config.pack.ConfigPack;
import com.dfsek.terra.config.templates.AbstractableTemplate;
import com.dfsek.terra.debug.DebugLogger;
-import com.dfsek.terra.registry.AddonRegistry;
-import com.dfsek.terra.registry.ConfigRegistry;
import com.dfsek.terra.registry.config.BiomeRegistry;
import com.dfsek.terra.registry.config.NoiseRegistry;
+import com.dfsek.terra.registry.master.AddonRegistry;
+import com.dfsek.terra.registry.master.ConfigRegistry;
import com.dfsek.terra.world.TerraWorld;
import javax.swing.*;
diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java
index 7e62cd637..75d296d81 100644
--- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java
+++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java
@@ -31,8 +31,8 @@ import com.dfsek.terra.config.lang.LangUtil;
import com.dfsek.terra.config.lang.Language;
import com.dfsek.terra.config.pack.ConfigPack;
import com.dfsek.terra.debug.DebugLogger;
-import com.dfsek.terra.registry.AddonRegistry;
-import com.dfsek.terra.registry.ConfigRegistry;
+import com.dfsek.terra.registry.master.AddonRegistry;
+import com.dfsek.terra.registry.master.ConfigRegistry;
import com.dfsek.terra.world.TerraWorld;
import com.dfsek.terra.world.generation.MasterChunkGenerator;
import io.papermc.lib.PaperLib;
diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/PacksCommand.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/PacksCommand.java
index ce768d37a..2a36c4986 100644
--- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/PacksCommand.java
+++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/PacksCommand.java
@@ -4,7 +4,7 @@ import com.dfsek.terra.bukkit.BukkitCommandSender;
import com.dfsek.terra.bukkit.command.Command;
import com.dfsek.terra.config.lang.LangUtil;
import com.dfsek.terra.config.pack.ConfigPackTemplate;
-import com.dfsek.terra.registry.ConfigRegistry;
+import com.dfsek.terra.registry.master.ConfigRegistry;
import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;
diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGenerator.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGenerator.java
index b1875f1ff..da186a425 100644
--- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGenerator.java
+++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGenerator.java
@@ -1,20 +1,10 @@
package com.dfsek.terra.bukkit.generator;
import com.dfsek.terra.api.platform.block.BlockData;
-import com.dfsek.terra.api.platform.world.BiomeGrid;
-import com.dfsek.terra.api.platform.world.World;
-import com.dfsek.terra.api.platform.world.generator.BlockPopulator;
-import com.dfsek.terra.api.world.generation.TerraChunkGenerator;
-import com.dfsek.terra.bukkit.world.BukkitBiomeGrid;
-import com.dfsek.terra.bukkit.world.BukkitWorld;
+import com.dfsek.terra.api.platform.world.generator.ChunkData;
import com.dfsek.terra.bukkit.world.block.data.BukkitBlockData;
import org.bukkit.generator.ChunkGenerator;
import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import java.util.List;
-import java.util.Random;
-import java.util.stream.Collectors;
public class BukkitChunkGenerator implements com.dfsek.terra.api.platform.world.generator.ChunkGenerator {
private final ChunkGenerator delegate;
@@ -28,46 +18,6 @@ public class BukkitChunkGenerator implements com.dfsek.terra.api.platform.world.
return delegate;
}
- @Override
- public boolean isParallelCapable() {
- return delegate.isParallelCapable();
- }
-
- @Override
- public boolean shouldGenerateCaves() {
- return delegate.shouldGenerateCaves();
- }
-
- @Override
- public boolean shouldGenerateDecorations() {
- return delegate.shouldGenerateDecorations();
- }
-
- @Override
- public boolean shouldGenerateMobs() {
- return delegate.shouldGenerateMobs();
- }
-
- @Override
- public boolean shouldGenerateStructures() {
- return delegate.shouldGenerateStructures();
- }
-
- @Override
- public ChunkData generateChunkData(@NotNull World world, @NotNull Random random, int x, int z, @NotNull BiomeGrid biome) {
- return new BukkitChunkData(delegate.generateChunkData(((BukkitWorld) world).getHandle(), random, x, z, ((BukkitBiomeGrid) biome).getHandle()));
- }
-
- @Override
- public List getDefaultPopulators(World world) {
- return delegate.getDefaultPopulators(((BukkitWorld) world).getHandle()).stream().map(BukkitPopulator::new).collect(Collectors.toList());
- }
-
- @Override
- public @Nullable TerraChunkGenerator getTerraGenerator() {
- return delegate instanceof BukkitChunkGeneratorWrapper ? ((BukkitChunkGeneratorWrapper) delegate).getHandle() : null;
- }
-
public static class BukkitChunkData implements ChunkData {
private final ChunkGenerator.ChunkData delegate;
diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGeneratorWrapper.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGeneratorWrapper.java
index 81e305834..8c0e5bb09 100644
--- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGeneratorWrapper.java
+++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGeneratorWrapper.java
@@ -2,7 +2,6 @@ package com.dfsek.terra.bukkit.generator;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.platform.world.Chunk;
-import com.dfsek.terra.api.platform.world.generator.GeneratorWrapper;
import com.dfsek.terra.api.world.generation.TerraBlockPopulator;
import com.dfsek.terra.api.world.generation.TerraChunkGenerator;
import com.dfsek.terra.bukkit.population.PopulationManager;
@@ -32,7 +31,7 @@ import java.util.Random;
import java.util.logging.Level;
import java.util.stream.Collectors;
-public class BukkitChunkGeneratorWrapper extends ChunkGenerator implements GeneratorWrapper {
+public class BukkitChunkGeneratorWrapper extends ChunkGenerator implements com.dfsek.terra.api.platform.world.generator.ChunkGenerator {
private static final Map popMap = new HashMap<>();
@@ -123,7 +122,7 @@ public class BukkitChunkGeneratorWrapper extends ChunkGenerator implements Gener
@Override
public boolean shouldGenerateStructures() {
- return super.shouldGenerateStructures();
+ return delegate.shouldGenerateStructures();
}
@Override
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 cb6baa70a..c57fb5dc4 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
@@ -26,8 +26,8 @@ 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.FabricChunkGeneratorWrapper;
-import com.dfsek.terra.registry.AddonRegistry;
-import com.dfsek.terra.registry.ConfigRegistry;
+import com.dfsek.terra.registry.master.AddonRegistry;
+import com.dfsek.terra.registry.master.ConfigRegistry;
import com.dfsek.terra.world.TerraWorld;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.ModInitializer;
@@ -200,7 +200,7 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
return debugLogger;
}
- Transformer biomeFixer = new Transformer.Builder()
+ private Transformer biomeFixer = new Transformer.Builder()
.addTransform(id -> BuiltinRegistries.BIOME.get(Identifier.tryParse(id)), new NotNullValidator<>())
.addTransform(id -> BuiltinRegistries.BIOME.get(Identifier.tryParse("minecraft:" + id.toLowerCase())), new NotNullValidator<>()).build();
@@ -286,7 +286,7 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
Registry.register(Registry.CHUNK_GENERATOR, new Identifier("terra:terra"), FabricChunkGeneratorWrapper.CODEC);
Registry.register(Registry.BIOME_SOURCE, new Identifier("terra:terra"), TerraBiomeSource.CODEC);
- if(FabricLoader.getInstance().getEnvironmentType().equals(EnvType.CLIENT)) {
+ if(FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT) {
GeneratorTypeAccessor.getValues().add(new GeneratorType("terra") {
@Override
protected ChunkGenerator getChunkGenerator(Registry biomeRegistry, Registry chunkGeneratorSettingsRegistry, long seed) {
diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/generator/FabricChunkData.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/generator/FabricChunkData.java
index 9864c472f..24ea33e9b 100644
--- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/generator/FabricChunkData.java
+++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/generator/FabricChunkData.java
@@ -1,13 +1,13 @@
package com.dfsek.terra.fabric.world.generator;
import com.dfsek.terra.api.platform.block.BlockData;
-import com.dfsek.terra.api.platform.world.generator.ChunkGenerator;
+import com.dfsek.terra.api.platform.world.generator.ChunkData;
import com.dfsek.terra.fabric.world.block.FabricBlockData;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.chunk.Chunk;
import org.jetbrains.annotations.NotNull;
-public class FabricChunkData implements ChunkGenerator.ChunkData {
+public class FabricChunkData implements ChunkData {
private final Chunk handle;
public FabricChunkData(Chunk handle) {
diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/generator/FabricChunkGenerator.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/generator/FabricChunkGenerator.java
index 52b4c0d5f..ae7526326 100644
--- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/generator/FabricChunkGenerator.java
+++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/generator/FabricChunkGenerator.java
@@ -1,15 +1,6 @@
package com.dfsek.terra.fabric.world.generator;
-import com.dfsek.terra.api.platform.world.BiomeGrid;
-import com.dfsek.terra.api.platform.world.World;
-import com.dfsek.terra.api.platform.world.generator.BlockPopulator;
import com.dfsek.terra.api.platform.world.generator.ChunkGenerator;
-import com.dfsek.terra.api.world.generation.TerraChunkGenerator;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import java.util.List;
-import java.util.Random;
public class FabricChunkGenerator implements ChunkGenerator {
private final net.minecraft.world.gen.chunk.ChunkGenerator delegate;
@@ -18,47 +9,6 @@ public class FabricChunkGenerator implements ChunkGenerator {
this.delegate = delegate;
}
- @Override
- public boolean isParallelCapable() {
- return false;
- }
-
- @Override
- public boolean shouldGenerateCaves() {
- return false;
- }
-
- @Override
- public boolean shouldGenerateDecorations() {
- return false;
- }
-
- @Override
- public boolean shouldGenerateMobs() {
- return false;
- }
-
- @Override
- public boolean shouldGenerateStructures() {
- return false;
- }
-
- @Override
- public ChunkData generateChunkData(@NotNull World world, @NotNull Random random, int x, int z, @NotNull BiomeGrid biome) {
- return null;
- }
-
- @Override
- public List getDefaultPopulators(World world) {
- return null;
- }
-
- @Override
- public @Nullable TerraChunkGenerator getTerraGenerator() {
- if(delegate instanceof FabricChunkGeneratorWrapper) return ((FabricChunkGeneratorWrapper) delegate).getHandle();
- return null;
- }
-
@Override
public net.minecraft.world.gen.chunk.ChunkGenerator getHandle() {
return delegate;
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 898c230d9..dfc83d37b 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
@@ -1,6 +1,5 @@
package com.dfsek.terra.fabric.world.generator;
-import com.dfsek.terra.api.platform.world.generator.GeneratorWrapper;
import com.dfsek.terra.api.util.FastRandom;
import com.dfsek.terra.config.pack.ConfigPack;
import com.dfsek.terra.fabric.TerraFabricPlugin;
@@ -30,7 +29,7 @@ import net.minecraft.world.gen.chunk.ChunkGenerator;
import net.minecraft.world.gen.chunk.StructuresConfig;
import net.minecraft.world.gen.chunk.VerticalBlockSample;
-public class FabricChunkGeneratorWrapper extends ChunkGenerator implements GeneratorWrapper {
+public class FabricChunkGeneratorWrapper extends ChunkGenerator implements com.dfsek.terra.api.platform.world.generator.ChunkGenerator {
private final long seed;
private final MasterChunkGenerator delegate;
private final TerraBiomeSource biomeSource;
diff --git a/platforms/region/src/main/java/com/dfsek/terra/StandalonePlugin.java b/platforms/region/src/main/java/com/dfsek/terra/StandalonePlugin.java
index 0f6eb97c2..aa918951a 100644
--- a/platforms/region/src/main/java/com/dfsek/terra/StandalonePlugin.java
+++ b/platforms/region/src/main/java/com/dfsek/terra/StandalonePlugin.java
@@ -17,8 +17,8 @@ import com.dfsek.terra.config.lang.Language;
import com.dfsek.terra.debug.DebugLogger;
import com.dfsek.terra.platform.RawBiome;
import com.dfsek.terra.platform.RawWorldHandle;
-import com.dfsek.terra.registry.AddonRegistry;
-import com.dfsek.terra.registry.ConfigRegistry;
+import com.dfsek.terra.registry.master.AddonRegistry;
+import com.dfsek.terra.registry.master.ConfigRegistry;
import com.dfsek.terra.world.TerraWorld;
import java.io.File;
diff --git a/platforms/region/src/main/java/com/dfsek/terra/platform/DirectChunkData.java b/platforms/region/src/main/java/com/dfsek/terra/platform/DirectChunkData.java
index 2705e70e2..4eac21cce 100644
--- a/platforms/region/src/main/java/com/dfsek/terra/platform/DirectChunkData.java
+++ b/platforms/region/src/main/java/com/dfsek/terra/platform/DirectChunkData.java
@@ -4,12 +4,12 @@ import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.block.Block;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.world.World;
-import com.dfsek.terra.api.platform.world.generator.ChunkGenerator;
+import com.dfsek.terra.api.platform.world.generator.ChunkData;
import net.querz.mca.Chunk;
import net.querz.nbt.tag.CompoundTag;
import org.jetbrains.annotations.NotNull;
-public class DirectChunkData implements ChunkGenerator.ChunkData, com.dfsek.terra.api.platform.world.Chunk {
+public class DirectChunkData implements ChunkData, com.dfsek.terra.api.platform.world.Chunk {
private final Chunk delegate;
private final DirectWorld world;
private final int x;
diff --git a/platforms/region/src/main/java/com/dfsek/terra/platform/GenWrapper.java b/platforms/region/src/main/java/com/dfsek/terra/platform/GenWrapper.java
index 25118e8bf..e41fb743f 100644
--- a/platforms/region/src/main/java/com/dfsek/terra/platform/GenWrapper.java
+++ b/platforms/region/src/main/java/com/dfsek/terra/platform/GenWrapper.java
@@ -1,17 +1,7 @@
package com.dfsek.terra.platform;
-import com.dfsek.terra.api.platform.world.BiomeGrid;
-import com.dfsek.terra.api.platform.world.World;
-import com.dfsek.terra.api.platform.world.generator.BlockPopulator;
import com.dfsek.terra.api.platform.world.generator.ChunkGenerator;
-import com.dfsek.terra.api.world.generation.TerraChunkGenerator;
import com.dfsek.terra.world.generation.MasterChunkGenerator;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.Random;
public class GenWrapper implements ChunkGenerator {
private final MasterChunkGenerator generator;
@@ -25,43 +15,4 @@ public class GenWrapper implements ChunkGenerator {
return generator;
}
- @Override
- public boolean isParallelCapable() {
- return true;
- }
-
- @Override
- public boolean shouldGenerateCaves() {
- return true;
- }
-
- @Override
- public boolean shouldGenerateDecorations() {
- return true;
- }
-
- @Override
- public boolean shouldGenerateMobs() {
- return true;
- }
-
- @Override
- public boolean shouldGenerateStructures() {
- return true;
- }
-
- @Override
- public ChunkData generateChunkData(@NotNull World world, @NotNull Random random, int x, int z, @NotNull BiomeGrid biome) {
- throw new UnsupportedOperationException(); // gen is directly handled by Generator
- }
-
- @Override
- public List getDefaultPopulators(World world) {
- return Collections.emptyList();
- }
-
- @Override
- public @Nullable TerraChunkGenerator getTerraGenerator() {
- return generator;
- }
}