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; - } }