From 82169f0921de3abe0a9a40f6017a349f677530e8 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 13:04:33 -0700 Subject: [PATCH 01/33] ConfigType#getTypeClass -> getTypeKey --- .../dfsek/terra/addons/biome/BiomeConfigType.java | 2 +- .../terra/addons/feature/FeatureConfigType.java | 2 +- .../dfsek/terra/addons/flora/FloraConfigType.java | 2 +- .../com/dfsek/terra/addons/ore/OreConfigType.java | 2 +- .../terra/addons/palette/PaletteConfigType.java | 2 +- .../java/com/dfsek/terra/api/config/ConfigType.java | 2 +- .../event/events/config/ConfigurationLoadEvent.java | 6 +++--- .../events/config/type/ConfigTypeLoadEvent.java | 6 +++--- .../com/dfsek/terra/config/pack/ConfigPackImpl.java | 12 ++++++------ .../terra/registry/config/ConfigTypeRegistry.java | 2 +- 10 files changed, 19 insertions(+), 19 deletions(-) diff --git a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/BiomeConfigType.java b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/BiomeConfigType.java index 9f9786b07..d6cdb8416 100644 --- a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/BiomeConfigType.java +++ b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/BiomeConfigType.java @@ -32,7 +32,7 @@ public class BiomeConfigType implements ConfigType { } @Override - public TypeKey getTypeClass() { + public TypeKey getTypeKey() { return BIOME_TYPE_TOKEN; } diff --git a/common/addons/config-feature/src/main/java/com/dfsek/terra/addons/feature/FeatureConfigType.java b/common/addons/config-feature/src/main/java/com/dfsek/terra/addons/feature/FeatureConfigType.java index 3d2c3e709..7a02bd640 100644 --- a/common/addons/config-feature/src/main/java/com/dfsek/terra/addons/feature/FeatureConfigType.java +++ b/common/addons/config-feature/src/main/java/com/dfsek/terra/addons/feature/FeatureConfigType.java @@ -26,7 +26,7 @@ public class FeatureConfigType implements ConfigType { } @Override - public TypeKey getTypeClass() { + public TypeKey getTypeKey() { return FEATURE_TYPE_KEY; } diff --git a/common/addons/config-flora/src/main/java/com/dfsek/terra/addons/flora/FloraConfigType.java b/common/addons/config-flora/src/main/java/com/dfsek/terra/addons/flora/FloraConfigType.java index 1fc80a9b4..c17a604ba 100644 --- a/common/addons/config-flora/src/main/java/com/dfsek/terra/addons/flora/FloraConfigType.java +++ b/common/addons/config-flora/src/main/java/com/dfsek/terra/addons/flora/FloraConfigType.java @@ -26,7 +26,7 @@ public class FloraConfigType implements ConfigType { } @Override - public TypeKey getTypeClass() { + public TypeKey getTypeKey() { return FLORA_TYPE_TOKEN; } diff --git a/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OreConfigType.java b/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OreConfigType.java index e284b41d3..36ffa5785 100644 --- a/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OreConfigType.java +++ b/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OreConfigType.java @@ -25,7 +25,7 @@ public class OreConfigType implements ConfigType { } @Override - public TypeKey getTypeClass() { + public TypeKey getTypeKey() { return ORE_TYPE_TOKEN; } diff --git a/common/addons/config-palette/src/main/java/com/dfsek/terra/addons/palette/PaletteConfigType.java b/common/addons/config-palette/src/main/java/com/dfsek/terra/addons/palette/PaletteConfigType.java index 2a3c821be..97d4c81fa 100644 --- a/common/addons/config-palette/src/main/java/com/dfsek/terra/addons/palette/PaletteConfigType.java +++ b/common/addons/config-palette/src/main/java/com/dfsek/terra/addons/palette/PaletteConfigType.java @@ -34,7 +34,7 @@ public class PaletteConfigType implements ConfigType { } @Override - public TypeKey getTypeClass() { + public TypeKey getTypeKey() { return PALETTE_TYPE_TOKEN; } diff --git a/common/api/src/main/java/com/dfsek/terra/api/config/ConfigType.java b/common/api/src/main/java/com/dfsek/terra/api/config/ConfigType.java index 15ad2541d..7cefbda01 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/config/ConfigType.java +++ b/common/api/src/main/java/com/dfsek/terra/api/config/ConfigType.java @@ -11,7 +11,7 @@ public interface ConfigType { ConfigFactory getFactory(); - TypeKey getTypeClass(); + TypeKey getTypeKey(); Supplier> registrySupplier(ConfigPack pack); } diff --git a/common/api/src/main/java/com/dfsek/terra/api/event/events/config/ConfigurationLoadEvent.java b/common/api/src/main/java/com/dfsek/terra/api/event/events/config/ConfigurationLoadEvent.java index b6486a137..0fb9f3363 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/event/events/config/ConfigurationLoadEvent.java +++ b/common/api/src/main/java/com/dfsek/terra/api/event/events/config/ConfigurationLoadEvent.java @@ -51,13 +51,13 @@ public class ConfigurationLoadEvent implements PackEvent, FailThroughEvent { } public boolean is(Class clazz) { - return clazz.isAssignableFrom(type.getTypeClass().getRawType()); + return clazz.isAssignableFrom(type.getTypeKey().getRawType()); } @SuppressWarnings("unchecked") public T getLoadedObject(Class clazz) { - if(!clazz.isAssignableFrom(type.getTypeClass().getRawType())) - throw new ClassCastException("Cannot assign object from loader of type " + ReflectionUtil.typeToString(type.getTypeClass().getType()) + " to class " + clazz.getCanonicalName()); + if(!clazz.isAssignableFrom(type.getTypeKey().getRawType())) + throw new ClassCastException("Cannot assign object from loader of type " + ReflectionUtil.typeToString(type.getTypeKey().getType()) + " to class " + clazz.getCanonicalName()); return (T) loaded; } diff --git a/common/api/src/main/java/com/dfsek/terra/api/event/events/config/type/ConfigTypeLoadEvent.java b/common/api/src/main/java/com/dfsek/terra/api/event/events/config/type/ConfigTypeLoadEvent.java index 14a4d6d50..a18568d45 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/event/events/config/type/ConfigTypeLoadEvent.java +++ b/common/api/src/main/java/com/dfsek/terra/api/event/events/config/type/ConfigTypeLoadEvent.java @@ -25,13 +25,13 @@ public abstract class ConfigTypeLoadEvent implements PackEvent, FailThroughEvent } public boolean is(Class clazz) { - return clazz.isAssignableFrom(type.getTypeClass().getRawType()); + return clazz.isAssignableFrom(type.getTypeKey().getRawType()); } @SuppressWarnings("unchecked") public CheckedRegistry getRegistry(Class clazz) { - if(!clazz.isAssignableFrom(type.getTypeClass().getRawType())) - throw new ClassCastException("Cannot assign object from loader of type " + ReflectionUtil.typeToString(type.getTypeClass().getType()) + " to class " + clazz.getCanonicalName()); + if(!clazz.isAssignableFrom(type.getTypeKey().getRawType())) + throw new ClassCastException("Cannot assign object from loader of type " + ReflectionUtil.typeToString(type.getTypeKey().getType()) + " to class " + clazz.getCanonicalName()); return (CheckedRegistry) registry; } } diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java b/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java index 93357edb1..035c81d6a 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java @@ -199,12 +199,12 @@ public class ConfigPackImpl implements ConfigPack { private ConfigTypeRegistry createRegistry() { return new ConfigTypeRegistry(main, (id, configType) -> { OpenRegistry openRegistry = configType.registrySupplier(this).get(); - if(registryMap.containsKey(configType.getTypeClass().getType())) { // Someone already registered something; we need to copy things to the new registry. - registryMap.get(configType.getTypeClass().getType()).getLeft().forEach(((OpenRegistry) openRegistry)::register); + if(registryMap.containsKey(configType.getTypeKey().getType())) { // Someone already registered something; we need to copy things to the new registry. + registryMap.get(configType.getTypeKey().getType()).getLeft().forEach(((OpenRegistry) openRegistry)::register); } - selfLoader.registerLoader(configType.getTypeClass().getType(), openRegistry); - abstractConfigLoader.registerLoader(configType.getTypeClass().getType(), openRegistry); - registryMap.put(configType.getTypeClass().getType(), ImmutablePair.of(openRegistry, new CheckedRegistryImpl<>(openRegistry))); + selfLoader.registerLoader(configType.getTypeKey().getType(), openRegistry); + abstractConfigLoader.registerLoader(configType.getTypeKey().getType(), openRegistry); + registryMap.put(configType.getTypeKey().getType(), ImmutablePair.of(openRegistry, new CheckedRegistryImpl<>(openRegistry))); }); } @@ -265,7 +265,7 @@ public class ConfigPackImpl implements ConfigPack { } for(ConfigType configType : configTypeRegistry.entries()) { // Load the configs - CheckedRegistry registry = getCheckedRegistry(configType.getTypeClass()); + CheckedRegistry registry = getCheckedRegistry(configType.getTypeKey()); main.getEventManager().callEvent(new ConfigTypePreLoadEvent(configType, registry, this)); for(AbstractConfiguration config : abstractConfigLoader.loadConfigs(configs.getOrDefault(configType, Collections.emptyList()))) { try { diff --git a/common/implementation/src/main/java/com/dfsek/terra/registry/config/ConfigTypeRegistry.java b/common/implementation/src/main/java/com/dfsek/terra/registry/config/ConfigTypeRegistry.java index b12af27ef..9686546b2 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/registry/config/ConfigTypeRegistry.java +++ b/common/implementation/src/main/java/com/dfsek/terra/registry/config/ConfigTypeRegistry.java @@ -22,7 +22,7 @@ public class ConfigTypeRegistry extends OpenRegistryImpl> { @Override public boolean register(String identifier, Entry> value) { callback.accept(identifier, value.getValue()); - main.getDebugLogger().info("Registered config registry with ID " + identifier + " to type " + ReflectionUtil.typeToString(value.getValue().getTypeClass().getType())); + main.getDebugLogger().info("Registered config registry with ID " + identifier + " to type " + ReflectionUtil.typeToString(value.getValue().getTypeKey().getType())); return super.register(identifier, value); } } From a91a5019f8b19d056f333b746de5a8c303049e40 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 13:28:14 -0700 Subject: [PATCH 02/33] implement getBiomeProvider in World --- .../api/src/main/java/com/dfsek/terra/api/world/World.java | 3 +++ .../main/java/com/dfsek/terra/config/dummy/DummyWorld.java | 6 ++++++ .../dfsek/terra/fabric/generation/TerraBiomeSource.java | 4 ++++ .../mixin/implementations/world/ChunkRegionMixin.java | 7 +++++++ .../mixin/implementations/world/ServerWorldMixin.java | 7 +++++++ 5 files changed, 27 insertions(+) diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/World.java b/common/api/src/main/java/com/dfsek/terra/api/world/World.java index f50731eff..7c8d00bbd 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/World.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/World.java @@ -6,6 +6,7 @@ import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.entity.Entity; import com.dfsek.terra.api.entity.EntityType; import com.dfsek.terra.api.vector.Vector3; +import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.ChunkGenerator; import com.dfsek.terra.api.world.generator.GeneratorWrapper; import com.dfsek.terra.api.world.generator.TerraChunkGenerator; @@ -60,4 +61,6 @@ public interface World extends Handle { default TerraChunkGenerator getTerraGenerator() { return ((GeneratorWrapper) getGenerator().getHandle()).getHandle(); } + + BiomeProvider getBiomeProvider(); } diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java b/common/implementation/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java index 33adc7438..97953b8b2 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java @@ -7,6 +7,7 @@ import com.dfsek.terra.api.entity.EntityType; import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.World; +import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.ChunkGenerator; import com.dfsek.terra.api.world.generator.GeneratorWrapper; @@ -60,4 +61,9 @@ public class DummyWorld implements World { public int getMinHeight() { return 0; } + + @Override + public BiomeProvider getBiomeProvider() { + throw new UnsupportedOperationException("Cannot get biome provider of DummyWorld"); + } } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraBiomeSource.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraBiomeSource.java index f054a0c20..81fe4f503 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraBiomeSource.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraBiomeSource.java @@ -56,4 +56,8 @@ public class TerraBiomeSource extends BiomeSource { TerraBiome biome = provider.getBiome(biomeX << 2, biomeZ << 2, seed); return biomeRegistry.get(new Identifier("terra", FabricUtil.createBiomeID(pack, biome.getID()))); } + + public BiomeProvider getProvider() { + return provider; + } } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java index c30547d6d..201a732c9 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java @@ -7,11 +7,13 @@ import com.dfsek.terra.api.entity.EntityType; import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.World; +import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.ChunkGenerator; import com.dfsek.terra.api.world.generator.GeneratorWrapper; import com.dfsek.terra.api.world.generator.TerraChunkGenerator; import com.dfsek.terra.fabric.block.FabricBlockState; import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper; +import com.dfsek.terra.fabric.generation.TerraBiomeSource; import com.dfsek.terra.fabric.util.FabricUtil; import net.minecraft.block.FluidBlock; import net.minecraft.fluid.Fluid; @@ -107,6 +109,11 @@ public abstract class ChunkRegionMixin { return ((FabricChunkGeneratorWrapper) terraWorld$getGenerator()).getHandle(); } + @SuppressWarnings("deprecation") + public BiomeProvider terraWorld$getBiomeProvider() { + return ((TerraBiomeSource) ((ChunkRegion) (Object) this).toServerWorld().getChunkManager().getChunkGenerator().getBiomeSource()).getProvider(); + } + /** * We need regions delegating to the same world * to have the same hashcode. This diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java index c71badb2a..bf86d5252 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java @@ -7,14 +7,17 @@ import com.dfsek.terra.api.entity.EntityType; import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.World; +import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.ChunkGenerator; import com.dfsek.terra.api.world.generator.GeneratorWrapper; import com.dfsek.terra.api.world.generator.TerraChunkGenerator; import com.dfsek.terra.fabric.block.FabricBlockState; import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper; +import com.dfsek.terra.fabric.generation.TerraBiomeSource; import com.dfsek.terra.fabric.util.FabricUtil; import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.BlockPos; +import net.minecraft.world.ChunkRegion; import net.minecraft.world.ServerWorldAccess; import net.minecraft.world.WorldAccess; import org.spongepowered.asm.mixin.Implements; @@ -83,6 +86,10 @@ public abstract class ServerWorldMixin { return ((FabricChunkGeneratorWrapper) terra$getGenerator()).getHandle(); } + public BiomeProvider terra$getBiomeProvider() { + return ((TerraBiomeSource) ((ServerWorld) (Object) this).getChunkManager().getChunkGenerator().getBiomeSource()).getProvider(); + } + /** * Overridden in the same manner as {@link ChunkRegionMixin#hashCode()} * From 2948f25b5080b16bfc5c3d976427120baaca3d8c Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 13:32:34 -0700 Subject: [PATCH 03/33] remove uses of TerraWorld#getBiomeProvider --- .../generation/generators/NoiseChunkGenerator3D.java | 6 +++--- .../terra/addons/biome/command/biome/BiomeCommand.java | 2 +- .../addons/biome/command/biome/BiomeLocateCommand.java | 2 +- .../java/com/dfsek/terra/addons/carver/CarverCache.java | 4 ++-- .../main/java/com/dfsek/terra/addons/ore/OrePopulator.java | 2 +- .../dfsek/terra/addons/structure/StructurePopulator.java | 2 +- .../structure/command/structure/StructureLocateCommand.java | 2 +- .../addons/generation/feature/FeatureGenerationStage.java | 2 +- .../terra/addons/generation/flora/FloraGenerationStage.java | 2 +- .../addons/terrascript/script/functions/BiomeFunction.java | 2 +- .../main/java/com/dfsek/terra/world/SamplerCacheImpl.java | 4 ++-- .../com/dfsek/terra/bukkit/listeners/PaperListener.java | 5 +++-- .../com/dfsek/terra/bukkit/listeners/SpigotListener.java | 5 +++-- 13 files changed, 21 insertions(+), 19 deletions(-) diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java index f19ca8fd5..b968b8ca2 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java @@ -48,7 +48,7 @@ public class NoiseChunkGenerator3D implements TerraChunkGenerator { int xOrig = (chunkX << 4); int zOrig = (chunkZ << 4); long seed = world.getSeed(); - BiomeProvider grid = main.getWorld(world).getBiomeProvider(); + BiomeProvider grid = world.getBiomeProvider(); for(int x = 0; x < 4; x++) { for(int z = 0; z < 4; z++) { int cx = xOrig + (x << 2); @@ -76,7 +76,7 @@ public class NoiseChunkGenerator3D implements TerraChunkGenerator { public ChunkData generateChunkData(@NotNull World world, Random random, int chunkX, int chunkZ, ChunkData chunk) { try(ProfileFrame ignore = main.getProfiler().profile("chunk_base_3d")) { TerraWorld tw = main.getWorld(world); - BiomeProvider grid = tw.getBiomeProvider(); + BiomeProvider grid = world.getBiomeProvider(); int xOrig = (chunkX << 4); int zOrig = (chunkZ << 4); @@ -169,7 +169,7 @@ public class NoiseChunkGenerator3D implements TerraChunkGenerator { @Override public BlockState getBlock(World world, int x, int y, int z) { TerraWorld terraWorld = main.getWorld(world); - BiomeProvider provider = terraWorld.getBiomeProvider(); + BiomeProvider provider = world.getBiomeProvider(); TerraBiome biome = provider.getBiome(x, z, world.getSeed()); Sampler sampler = terraWorld.getConfig().getSamplerCache().get(x, z); diff --git a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/command/biome/BiomeCommand.java b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/command/biome/BiomeCommand.java index 42f5b9db3..a5eebad2b 100644 --- a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/command/biome/BiomeCommand.java +++ b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/command/biome/BiomeCommand.java @@ -37,7 +37,7 @@ public class BiomeCommand implements CommandTemplate { public void execute(CommandSender sender) { Player player = (Player) sender; - BiomeProvider provider = main.getWorld(player.world()).getBiomeProvider(); + BiomeProvider provider = player.world().getBiomeProvider(); UserDefinedBiome biome = (UserDefinedBiome) provider.getBiome(player.position(), player.world().getSeed()); sender.sendMessage("You are standing in " + biome.getID()); } diff --git a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/command/biome/BiomeLocateCommand.java b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/command/biome/BiomeLocateCommand.java index 4f9f22ac4..5e46575f3 100644 --- a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/command/biome/BiomeLocateCommand.java +++ b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/command/biome/BiomeLocateCommand.java @@ -62,7 +62,7 @@ public class BiomeLocateCommand implements CommandTemplate { Player player = (Player) sender; - new Thread(new AsyncBiomeFinder(main.getWorld(player.world()).getBiomeProvider(), biome, player.position().clone().multiply((1D / main.getTerraConfig().getBiomeSearchResolution())), player.world(), 0, radius, location -> { + new Thread(new AsyncBiomeFinder(player.world().getBiomeProvider(), biome, player.position().clone().multiply((1D / main.getTerraConfig().getBiomeSearchResolution())), player.world(), 0, radius, location -> { if(location != null) { sender.sendMessage(String.format("The nearest %s is at [%d, ~, %d] (%.1f blocks away)", biome.getID().toLowerCase(Locale.ROOT), location.getBlockX(), location.getBlockZ(), location.add(new Vector3(0, player.position().getY(), 0)).distance(player.position()))); if(teleport) { diff --git a/common/addons/config-carver/src/main/java/com/dfsek/terra/addons/carver/CarverCache.java b/common/addons/config-carver/src/main/java/com/dfsek/terra/addons/carver/CarverCache.java index 496a2861d..e5d1f2160 100644 --- a/common/addons/config-carver/src/main/java/com/dfsek/terra/addons/carver/CarverCache.java +++ b/common/addons/config-carver/src/main/java/com/dfsek/terra/addons/carver/CarverCache.java @@ -26,12 +26,12 @@ public class CarverCache { public CarverCache(World w, TerraPlugin main, UserDefinedCarver carver) { this.carver = carver; cache = CacheBuilder.newBuilder().maximumSize(main.getTerraConfig().getCarverCacheSize()) - .build(new CacheLoader>() { + .build(new CacheLoader<>() { @Override public List load(@NotNull Long key) { int chunkX = (int) (key >> 32); int chunkZ = (int) key.longValue(); - BiomeProvider provider = main.getWorld(w).getBiomeProvider(); + BiomeProvider provider = w.getBiomeProvider(); if(CarverCache.this.carver.isChunkCarved(w, chunkX, chunkZ, new Random(PopulationUtil.getCarverChunkSeed(chunkX, chunkZ, w.getSeed() + CarverCache.this.carver.hashCode())))) { long seed = PopulationUtil.getCarverChunkSeed(chunkX, chunkZ, w.getSeed()); Random r = new Random(seed); diff --git a/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OrePopulator.java b/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OrePopulator.java index 73489249e..af7a5ed88 100644 --- a/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OrePopulator.java +++ b/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OrePopulator.java @@ -31,7 +31,7 @@ public class OrePopulator implements TerraGenerationStage { Random random = new Random(PopulationUtil.getCarverChunkSeed(chunk.getX() + cx, chunk.getZ() + cz, world.getSeed())); int originX = ((chunk.getX() + cx) << 4); int originZ = ((chunk.getZ() + cz) << 4); - TerraBiome b = tw.getBiomeProvider().getBiome(originX + 8, originZ + 8, world.getSeed()); + TerraBiome b = world.getBiomeProvider().getBiome(originX + 8, originZ + 8, world.getSeed()); /* BiomeTemplate config = ((UserDefinedBiome) b).getConfig(); int finalCx = cx; diff --git a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/StructurePopulator.java b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/StructurePopulator.java index c2a126d2d..b493bd320 100644 --- a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/StructurePopulator.java +++ b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/StructurePopulator.java @@ -34,7 +34,7 @@ public class StructurePopulator implements TerraGenerationStage, Chunkified { int cx = (chunk.getX() << 4); int cz = (chunk.getZ() << 4); - BiomeProvider provider = tw.getBiomeProvider(); + BiomeProvider provider = world.getBiomeProvider(); WorldConfig config = tw.getConfig(); for(ConfiguredStructure conf : config.getRegistry(TerraStructure.class).entries()) { Vector3 spawn = conf.getSpawn().getNearestSpawn(cx + 8, cz + 8, world.getSeed()); diff --git a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/StructureLocateCommand.java b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/StructureLocateCommand.java index dad15f00f..0e115f7a6 100644 --- a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/StructureLocateCommand.java +++ b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/StructureLocateCommand.java @@ -61,7 +61,7 @@ public class StructureLocateCommand implements CommandTemplate { public void execute(CommandSender sender) { Player player = (Player) sender; - new Thread(new AsyncStructureFinder(main.getWorld(player.world()).getBiomeProvider(), structure, player.position().clone().multiply((1D / main.getTerraConfig().getBiomeSearchResolution())), player.world(), 0, radius, location -> { + new Thread(new AsyncStructureFinder(player.world().getBiomeProvider(), structure, player.position().clone().multiply((1D / main.getTerraConfig().getBiomeSearchResolution())), player.world(), 0, radius, location -> { if(location != null) { sender.sendMessage(String.format("The nearest %s is at [%d, ~, %d] (%.1f blocks away)", structure.getID().toLowerCase(Locale.ROOT), location.getBlockX(), location.getBlockZ(), location.add(new Vector3(0, player.position().getY(), 0)).distance(player.position()))); if(teleport) { diff --git a/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java b/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java index 9810afbce..c54d2eeae 100644 --- a/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java +++ b/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java @@ -31,7 +31,7 @@ public class FeatureGenerationStage implements TerraGenerationStage { int tx = cx + x; int tz = cz + z; ColumnImpl column = new ColumnImpl(tx, tz, world); - terraWorld.getBiomeProvider().getBiome(tx, tz, seed).getContext().get(BiomeFeatures.class).getFeatures().forEach(feature -> { + world.getBiomeProvider().getBiome(tx, tz, seed).getContext().get(BiomeFeatures.class).getFeatures().forEach(feature -> { if(feature.getDistributor().matches(tx, tz, seed)) { feature.getLocator() .getSuitableCoordinates(column) diff --git a/common/addons/generation-stage-flora/src/main/java/com/dfsek/terra/addons/generation/flora/FloraGenerationStage.java b/common/addons/generation-stage-flora/src/main/java/com/dfsek/terra/addons/generation/flora/FloraGenerationStage.java index 7cf03a0b1..8a7e9a2c3 100644 --- a/common/addons/generation-stage-flora/src/main/java/com/dfsek/terra/addons/generation/flora/FloraGenerationStage.java +++ b/common/addons/generation-stage-flora/src/main/java/com/dfsek/terra/addons/generation/flora/FloraGenerationStage.java @@ -34,7 +34,7 @@ public class FloraGenerationStage implements TerraGenerationStage { if(tw.getConfig().disableFlora()) return; long seed = world.getSeed(); - BiomeProvider provider = tw.getBiomeProvider(); + BiomeProvider provider = world.getBiomeProvider(); Map> layers = new HashMap<>(); for(int x = 0; x < 16; x++) { for(int z = 0; z < 16; z++) { diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/BiomeFunction.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/BiomeFunction.java index 201df7fd0..819477d5d 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/BiomeFunction.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/BiomeFunction.java @@ -38,7 +38,7 @@ public class BiomeFunction implements Function { RotationUtil.rotateVector(xz, arguments.getRotation()); - BiomeProvider grid = main.getWorld(arguments.getWorld()).getBiomeProvider(); + BiomeProvider grid = arguments.getWorld().getBiomeProvider(); return grid.getBiome(arguments.getBuffer().getOrigin().clone().add(new Vector3(FastMath.roundToInt(xz.getX()), y.apply(implementationArguments, variableMap).intValue(), FastMath.roundToInt(xz.getZ()))), arguments.getWorld().getSeed()).getID(); } diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/SamplerCacheImpl.java b/common/implementation/src/main/java/com/dfsek/terra/world/SamplerCacheImpl.java index 523d31730..40ec86ef5 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/world/SamplerCacheImpl.java +++ b/common/implementation/src/main/java/com/dfsek/terra/world/SamplerCacheImpl.java @@ -15,12 +15,12 @@ public class SamplerCacheImpl implements com.dfsek.terra.api.world.generator.Sam public SamplerCacheImpl(TerraPlugin main, TerraWorld world) { cache = CacheBuilder.newBuilder().maximumSize(main.getTerraConfig().getSamplerCache()) - .build(new CacheLoader() { + .build(new CacheLoader<>() { @Override public Sampler load(@NotNull Long key) { int cx = (int) (key >> 32); int cz = (int) key.longValue(); - return world.getWorld().getTerraGenerator().createSampler(cx, cz, world.getBiomeProvider(), world.getWorld(), world.getConfig().elevationBlend()); + return world.getWorld().getTerraGenerator().createSampler(cx, cz, world.getWorld().getBiomeProvider(), world.getWorld(), world.getConfig().elevationBlend()); } }); } diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/PaperListener.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/PaperListener.java index f8c25b0b4..c656c76be 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/PaperListener.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/PaperListener.java @@ -3,6 +3,7 @@ package com.dfsek.terra.bukkit.listeners; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.structure.configured.ConfiguredStructure; import com.dfsek.terra.api.world.TerraWorld; +import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.locate.AsyncStructureFinder; import com.dfsek.terra.bukkit.world.BukkitAdapter; import com.dfsek.terra.world.population.items.TerraStructure; @@ -22,10 +23,10 @@ public class PaperListener implements Listener { if(!BukkitAdapter.adapt(e.getWorld()).isTerraWorld()) return; String name = "minecraft:" + e.getType().getName(); main.getDebugLogger().info("Overriding structure location for \"" + name + "\""); - TerraWorld tw = main.getWorld(BukkitAdapter.adapt(e.getWorld())); + World w = BukkitAdapter.adapt(e.getWorld()); ConfiguredStructure config = tw.getConfig().getRegistry(TerraStructure.class).get(tw.getConfig().getLocatable().get(name)); if(config != null) { - AsyncStructureFinder finder = new AsyncStructureFinder(tw.getBiomeProvider(), config, BukkitAdapter.adapt(e.getOrigin().toVector()), tw.getWorld(), 0, 500, location -> { + AsyncStructureFinder finder = new AsyncStructureFinder(w.getBiomeProvider(), config, BukkitAdapter.adapt(e.getOrigin().toVector()), tw.getWorld(), 0, 500, location -> { if(location != null) e.setResult(BukkitAdapter.adapt(location).toLocation(e.getWorld())); main.getDebugLogger().info("Location: " + location); diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/SpigotListener.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/SpigotListener.java index 340f9efa1..02d3fc906 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/SpigotListener.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/SpigotListener.java @@ -3,6 +3,7 @@ package com.dfsek.terra.bukkit.listeners; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.structure.configured.ConfiguredStructure; import com.dfsek.terra.api.world.TerraWorld; +import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.locate.AsyncStructureFinder; import com.dfsek.terra.bukkit.world.BukkitAdapter; import com.dfsek.terra.world.population.items.TerraStructure; @@ -36,9 +37,9 @@ public class SpigotListener implements Listener { if(e.getEntityType().equals(EntityType.ENDER_SIGNAL)) { main.getDebugLogger().info("Detected Ender Signal..."); if(!BukkitAdapter.adapt(e.getEntity().getWorld()).isTerraWorld()) return; - TerraWorld tw = main.getWorld(BukkitAdapter.adapt(e.getEntity().getWorld())); + World w = BukkitAdapter.adapt(e.getEntity().getWorld()); EnderSignal signal = (EnderSignal) entity; - ConfiguredStructure config = tw.getConfig().getRegistry(TerraStructure.class).get(tw.getConfig().getLocatable().get("STRONGHOLD")); + ConfiguredStructure config = tw.getConfig().getRegistry(TerraStructure.class).get(w.getConfig().getLocatable().get("STRONGHOLD")); if(config != null) { main.getDebugLogger().info("Overriding Ender Signal..."); AsyncStructureFinder finder = new AsyncStructureFinder(tw.getBiomeProvider(), config, BukkitAdapter.adapt(e.getLocation().toVector()), tw.getWorld(), 0, 500, location -> { From 7f050b37a4595e0c6cb87ea96e49234430276573 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 13:33:19 -0700 Subject: [PATCH 04/33] remove TerraWorld#getBiomeProvider --- .../java/com/dfsek/terra/api/world/TerraWorld.java | 2 -- .../java/com/dfsek/terra/world/TerraWorldImpl.java | 11 ----------- 2 files changed, 13 deletions(-) diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/TerraWorld.java b/common/api/src/main/java/com/dfsek/terra/api/world/TerraWorld.java index 8f0110204..97e25790a 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/TerraWorld.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/TerraWorld.java @@ -8,8 +8,6 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider; public interface TerraWorld { World getWorld(); - BiomeProvider getBiomeProvider(); - WorldConfig getConfig(); /** diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/TerraWorldImpl.java b/common/implementation/src/main/java/com/dfsek/terra/world/TerraWorldImpl.java index 87d31dc91..d472451db 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/world/TerraWorldImpl.java +++ b/common/implementation/src/main/java/com/dfsek/terra/world/TerraWorldImpl.java @@ -7,15 +7,10 @@ import com.dfsek.terra.api.event.events.world.TerraWorldLoadEvent; import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.World; -import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import com.dfsek.terra.api.world.generator.Palette; -import com.dfsek.terra.api.world.generator.Sampler; import com.dfsek.terra.config.pack.WorldConfigImpl; -import net.jafama.FastMath; public class TerraWorldImpl implements TerraWorld { - private final BiomeProvider provider; private final WorldConfigImpl config; private final World world; @@ -23,7 +18,6 @@ public class TerraWorldImpl implements TerraWorld { if(!w.isTerraWorld()) throw new IllegalArgumentException("World " + w + " is not a Terra World!"); this.world = w; config = (WorldConfigImpl) c.toWorldConfig(this); - this.provider = config.getProvider(); main.getEventManager().callEvent(new TerraWorldLoadEvent(this, c)); } @@ -34,11 +28,6 @@ public class TerraWorldImpl implements TerraWorld { } - @Override - public BiomeProvider getBiomeProvider() { - return provider; - } - @Override public WorldConfigImpl getConfig() { return config; From a56d1818c8e2a8c6e555aa0b8d8ed45971f04c8b Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 13:51:51 -0700 Subject: [PATCH 05/33] implement World#getConfig --- .../dfsek/terra/api/config/ConfigPack.java | 3 ++- .../dfsek/terra/api/config/WorldConfig.java | 3 ++- .../java/com/dfsek/terra/api/world/World.java | 3 +++ .../dfsek/terra/config/dummy/DummyWorld.java | 6 +++++ .../terra/config/pack/ConfigPackImpl.java | 8 +++--- .../terra/config/pack/WorldConfigImpl.java | 7 ++--- .../dfsek/terra/world/SamplerCacheImpl.java | 5 ++-- .../com/dfsek/terra/world/TerraWorldImpl.java | 2 +- .../world/ChunkRegionMixin.java | 18 +++++++++++++ .../world/ServerWorldMixin.java | 26 +++++++++++++++++++ 10 files changed, 69 insertions(+), 12 deletions(-) diff --git a/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java b/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java index edcbe9bcc..a46bb4942 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java +++ b/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java @@ -8,6 +8,7 @@ import com.dfsek.terra.api.tectonic.LoaderHolder; import com.dfsek.terra.api.tectonic.LoaderRegistrar; import com.dfsek.terra.api.util.reflection.TypeKey; import com.dfsek.terra.api.world.TerraWorld; +import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider; import com.dfsek.terra.api.world.generator.GenerationStageProvider; @@ -29,7 +30,7 @@ public interface ConfigPack extends LoaderRegistrar, LoaderHolder, RegistryHolde return getOrCreateRegistry(type.getType()); } - WorldConfig toWorldConfig(TerraWorld world); + WorldConfig toWorldConfig(World world); List getStages(); diff --git a/common/api/src/main/java/com/dfsek/terra/api/config/WorldConfig.java b/common/api/src/main/java/com/dfsek/terra/api/config/WorldConfig.java index f9303c9c2..6d249df70 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/config/WorldConfig.java +++ b/common/api/src/main/java/com/dfsek/terra/api/config/WorldConfig.java @@ -2,6 +2,7 @@ package com.dfsek.terra.api.config; import com.dfsek.terra.api.registry.Registry; import com.dfsek.terra.api.world.TerraWorld; +import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.SamplerCache; import com.dfsek.terra.api.world.generator.TerraGenerationStage; @@ -12,7 +13,7 @@ import java.util.Map; public interface WorldConfig { Registry getRegistry(Class clazz); - TerraWorld getWorld(); + World getWorld(); SamplerCache getSamplerCache(); diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/World.java b/common/api/src/main/java/com/dfsek/terra/api/world/World.java index 7c8d00bbd..962b91f92 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/World.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/World.java @@ -3,6 +3,7 @@ package com.dfsek.terra.api.world; import com.dfsek.terra.api.Handle; import com.dfsek.terra.api.block.entity.BlockEntity; import com.dfsek.terra.api.block.state.BlockState; +import com.dfsek.terra.api.config.WorldConfig; import com.dfsek.terra.api.entity.Entity; import com.dfsek.terra.api.entity.EntityType; import com.dfsek.terra.api.vector.Vector3; @@ -63,4 +64,6 @@ public interface World extends Handle { } BiomeProvider getBiomeProvider(); + + WorldConfig getConfig(); } diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java b/common/implementation/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java index 97953b8b2..38d7aad51 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java @@ -2,6 +2,7 @@ package com.dfsek.terra.config.dummy; import com.dfsek.terra.api.block.entity.BlockEntity; import com.dfsek.terra.api.block.state.BlockState; +import com.dfsek.terra.api.config.WorldConfig; import com.dfsek.terra.api.entity.Entity; import com.dfsek.terra.api.entity.EntityType; import com.dfsek.terra.api.vector.Vector3; @@ -66,4 +67,9 @@ public class DummyWorld implements World { public BiomeProvider getBiomeProvider() { throw new UnsupportedOperationException("Cannot get biome provider of DummyWorld"); } + + @Override + public WorldConfig getConfig() { + throw new UnsupportedOperationException("Cannot get config of DummyWorld"); + } } diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java b/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java index 035c81d6a..f090f2375 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java @@ -32,7 +32,7 @@ import com.dfsek.terra.api.registry.exception.DuplicateEntryException; import com.dfsek.terra.api.registry.meta.RegistryFactory; import com.dfsek.terra.api.util.generic.pair.ImmutablePair; import com.dfsek.terra.api.util.reflection.ReflectionUtil; -import com.dfsek.terra.api.world.TerraWorld; +import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider; import com.dfsek.terra.api.world.generator.GenerationStageProvider; @@ -139,7 +139,7 @@ public class ConfigPackImpl implements ConfigPack { main.logger().severe("Failed to load config pack from folder \"" + folder.getAbsolutePath() + "\""); throw e; } - toWorldConfig(new TerraWorldImpl(new DummyWorld(), this, main)); // Build now to catch any errors immediately. + toWorldConfig(new DummyWorld()); // Build now to catch any errors immediately. } public ConfigPackImpl(ZipFile file, TerraPlugin main) throws ConfigException { @@ -192,7 +192,7 @@ public class ConfigPackImpl implements ConfigPack { throw e; } - toWorldConfig(new TerraWorldImpl(new DummyWorld(), this, main)); // Build now to catch any errors immediately. + toWorldConfig(new DummyWorld()); // Build now to catch any errors immediately. } @SuppressWarnings("unchecked") @@ -353,7 +353,7 @@ public class ConfigPackImpl implements ConfigPack { @Override - public WorldConfigImpl toWorldConfig(TerraWorld world) { + public WorldConfigImpl toWorldConfig(World world) { return new WorldConfigImpl(world, this, main); } diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/pack/WorldConfigImpl.java b/common/implementation/src/main/java/com/dfsek/terra/config/pack/WorldConfigImpl.java index 1b13aacdd..a934b8830 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/pack/WorldConfigImpl.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/pack/WorldConfigImpl.java @@ -4,6 +4,7 @@ import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.config.WorldConfig; import com.dfsek.terra.api.registry.Registry; import com.dfsek.terra.api.world.TerraWorld; +import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.SamplerCache; import com.dfsek.terra.registry.LockedRegistryImpl; @@ -18,12 +19,12 @@ public class WorldConfigImpl implements WorldConfig { private final BiomeProvider provider; - private final TerraWorld world; + private final World world; private final ConfigPackImpl pack; private final Map> registryMap = new HashMap<>(); - public WorldConfigImpl(TerraWorld world, ConfigPackImpl pack, TerraPlugin main) { + public WorldConfigImpl(World world, ConfigPackImpl pack, TerraPlugin main) { this.world = world; this.pack = pack; this.samplerCache = new SamplerCacheImpl(main, world); @@ -40,7 +41,7 @@ public class WorldConfigImpl implements WorldConfig { } @Override - public TerraWorld getWorld() { + public World getWorld() { return world; } diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/SamplerCacheImpl.java b/common/implementation/src/main/java/com/dfsek/terra/world/SamplerCacheImpl.java index 40ec86ef5..45789d1f1 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/world/SamplerCacheImpl.java +++ b/common/implementation/src/main/java/com/dfsek/terra/world/SamplerCacheImpl.java @@ -3,6 +3,7 @@ package com.dfsek.terra.world; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.util.MathUtil; import com.dfsek.terra.api.world.TerraWorld; +import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.generator.Sampler; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; @@ -13,14 +14,14 @@ import org.jetbrains.annotations.NotNull; public class SamplerCacheImpl implements com.dfsek.terra.api.world.generator.SamplerCache { private final LoadingCache cache; - public SamplerCacheImpl(TerraPlugin main, TerraWorld world) { + public SamplerCacheImpl(TerraPlugin main, World world) { cache = CacheBuilder.newBuilder().maximumSize(main.getTerraConfig().getSamplerCache()) .build(new CacheLoader<>() { @Override public Sampler load(@NotNull Long key) { int cx = (int) (key >> 32); int cz = (int) key.longValue(); - return world.getWorld().getTerraGenerator().createSampler(cx, cz, world.getWorld().getBiomeProvider(), world.getWorld(), world.getConfig().elevationBlend()); + return world.getTerraGenerator().createSampler(cx, cz, world.getBiomeProvider(), world, world.getConfig().elevationBlend()); } }); } diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/TerraWorldImpl.java b/common/implementation/src/main/java/com/dfsek/terra/world/TerraWorldImpl.java index d472451db..df950d9b8 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/world/TerraWorldImpl.java +++ b/common/implementation/src/main/java/com/dfsek/terra/world/TerraWorldImpl.java @@ -17,7 +17,7 @@ public class TerraWorldImpl implements TerraWorld { public TerraWorldImpl(World w, ConfigPack c, TerraPlugin main) { if(!w.isTerraWorld()) throw new IllegalArgumentException("World " + w + " is not a Terra World!"); this.world = w; - config = (WorldConfigImpl) c.toWorldConfig(this); + config = (WorldConfigImpl) c.toWorldConfig(w); main.getEventManager().callEvent(new TerraWorldLoadEvent(this, c)); } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java index 201a732c9..380c408e3 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java @@ -2,6 +2,7 @@ package com.dfsek.terra.fabric.mixin.implementations.world; import com.dfsek.terra.api.block.entity.BlockEntity; import com.dfsek.terra.api.block.state.BlockState; +import com.dfsek.terra.api.config.WorldConfig; import com.dfsek.terra.api.entity.Entity; import com.dfsek.terra.api.entity.EntityType; import com.dfsek.terra.api.vector.Vector3; @@ -23,16 +24,24 @@ import net.minecraft.world.ChunkRegion; import net.minecraft.world.ServerWorldAccess; import net.minecraft.world.TickScheduler; import net.minecraft.world.WorldAccess; +import net.minecraft.world.chunk.ChunkStatus; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Implements; import org.spongepowered.asm.mixin.Interface; import org.spongepowered.asm.mixin.Intrinsic; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.util.List; @Mixin(ChunkRegion.class) @Implements(@Interface(iface = World.class, prefix = "terraWorld$", remap = Interface.Remap.NONE)) public abstract class ChunkRegionMixin { + private WorldConfig config; + @Shadow @Final private ServerWorld world; @@ -51,6 +60,11 @@ public abstract class ChunkRegionMixin { return (((ChunkRegion) (Object) this).getBottomY()) + ((ChunkRegion) (Object) this).getHeight(); } + @Inject(at = @At("RETURN"), method = "(Lnet/minecraft/server/world/ServerWorld;Ljava/util/List;Lnet/minecraft/world/chunk/ChunkStatus;I)V") + public void injectConstructor(ServerWorld world, List list, ChunkStatus chunkStatus, int i, CallbackInfo ci) { + this.config = ((World) world).getConfig(); + } + @SuppressWarnings("deprecation") public ChunkGenerator terraWorld$getGenerator() { return (ChunkGenerator) ((ChunkRegion) (Object) this).toServerWorld().getChunkManager().getChunkGenerator(); @@ -114,6 +128,10 @@ public abstract class ChunkRegionMixin { return ((TerraBiomeSource) ((ChunkRegion) (Object) this).toServerWorld().getChunkManager().getChunkGenerator().getBiomeSource()).getProvider(); } + public WorldConfig terraWorld$getConfig() { + return config; + } + /** * We need regions delegating to the same world * to have the same hashcode. This diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java index bf86d5252..1dab4e632 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java @@ -2,6 +2,7 @@ package com.dfsek.terra.fabric.mixin.implementations.world; import com.dfsek.terra.api.block.entity.BlockEntity; import com.dfsek.terra.api.block.state.BlockState; +import com.dfsek.terra.api.config.WorldConfig; import com.dfsek.terra.api.entity.Entity; import com.dfsek.terra.api.entity.EntityType; import com.dfsek.terra.api.vector.Vector3; @@ -15,23 +16,44 @@ import com.dfsek.terra.fabric.block.FabricBlockState; import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper; import com.dfsek.terra.fabric.generation.TerraBiomeSource; import com.dfsek.terra.fabric.util.FabricUtil; +import net.minecraft.server.MinecraftServer; +import net.minecraft.server.WorldGenerationProgressListener; import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.registry.RegistryKey; import net.minecraft.world.ChunkRegion; import net.minecraft.world.ServerWorldAccess; import net.minecraft.world.WorldAccess; +import net.minecraft.world.dimension.DimensionType; +import net.minecraft.world.gen.Spawner; +import net.minecraft.world.level.ServerWorldProperties; +import net.minecraft.world.level.storage.LevelStorage; import org.spongepowered.asm.mixin.Implements; import org.spongepowered.asm.mixin.Interface; import org.spongepowered.asm.mixin.Intrinsic; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.util.List; +import java.util.concurrent.Executor; @Mixin(ServerWorld.class) @Implements(@Interface(iface = World.class, prefix = "terra$", remap = Interface.Remap.NONE)) public abstract class ServerWorldMixin { + private WorldConfig config; @Shadow public abstract long getSeed(); + @Inject(at = @At("RETURN"), method = "(Lnet/minecraft/server/MinecraftServer;Ljava/util/concurrent/Executor;Lnet/minecraft/world/level/storage/LevelStorage$Session;Lnet/minecraft/world/level/ServerWorldProperties;Lnet/minecraft/util/registry/RegistryKey;Lnet/minecraft/world/dimension/DimensionType;Lnet/minecraft/server/WorldGenerationProgressListener;Lnet/minecraft/world/gen/chunk/ChunkGenerator;ZJLjava/util/List;Z)V") + public void injectConstructor(MinecraftServer server, Executor workerExecutor, LevelStorage.Session session, ServerWorldProperties properties, RegistryKey worldKey, DimensionType dimensionType, WorldGenerationProgressListener worldGenerationProgressListener, net.minecraft.world.gen.chunk.ChunkGenerator chunkGenerator, boolean debugWorld, long seed, List spawners, boolean shouldTickTime, CallbackInfo ci) { + if(chunkGenerator instanceof FabricChunkGeneratorWrapper) { + config = ((FabricChunkGeneratorWrapper) chunkGenerator).getPack().toWorldConfig((World) this); + } + } + public int terra$getMaxHeight() { return (((ServerWorld) (Object) this).getBottomY()) + ((ServerWorld) (Object) this).getHeight(); } @@ -90,6 +112,10 @@ public abstract class ServerWorldMixin { return ((TerraBiomeSource) ((ServerWorld) (Object) this).getChunkManager().getChunkGenerator().getBiomeSource()).getProvider(); } + public WorldConfig terra$getConfig() { + return config; + } + /** * Overridden in the same manner as {@link ChunkRegionMixin#hashCode()} * From 8898bbd5c436c7fee47b848c29ae89603657804d Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 13:59:39 -0700 Subject: [PATCH 06/33] remove usages of TerraWorld#getConfig --- .../generators/NoiseChunkGenerator3D.java | 6 ++-- .../biome/arg/BiomeArgumentParser.java | 2 +- .../command/biome/tab/BiomeTabCompleter.java | 2 +- .../terra/addons/carver/CavePopulator.java | 4 +-- .../dfsek/terra/addons/ore/OrePopulator.java | 3 +- .../addons/structure/StructurePopulator.java | 5 ++- .../argument/ScriptArgumentParser.java | 2 +- .../argument/StructureArgumentParser.java | 2 +- .../structure/completer/ScriptCompleter.java | 2 +- .../completer/StructureCompleter.java | 2 +- .../flora/FloraGenerationStage.java | 3 +- .../script/functions/CheckFunction.java | 3 +- .../events/world/TerraWorldLoadEvent.java | 32 ------------------- .../com/dfsek/terra/world/TerraWorldImpl.java | 3 -- .../dfsek/terra/bukkit/TerraBukkitPlugin.java | 4 +-- .../bukkit/listeners/CommonListener.java | 3 +- .../dfsek/terra/fabric/TerraFabricPlugin.java | 15 ++++----- 17 files changed, 23 insertions(+), 70 deletions(-) delete mode 100644 common/api/src/main/java/com/dfsek/terra/api/event/events/world/TerraWorldLoadEvent.java diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java index b968b8ca2..742965bf5 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java @@ -75,13 +75,12 @@ public class NoiseChunkGenerator3D implements TerraChunkGenerator { @SuppressWarnings({"try"}) public ChunkData generateChunkData(@NotNull World world, Random random, int chunkX, int chunkZ, ChunkData chunk) { try(ProfileFrame ignore = main.getProfiler().profile("chunk_base_3d")) { - TerraWorld tw = main.getWorld(world); BiomeProvider grid = world.getBiomeProvider(); int xOrig = (chunkX << 4); int zOrig = (chunkZ << 4); - Sampler sampler = tw.getConfig().getSamplerCache().getChunk(chunkX, chunkZ); + Sampler sampler = world.getConfig().getSamplerCache().getChunk(chunkX, chunkZ); long seed = world.getSeed(); @@ -168,10 +167,9 @@ public class NoiseChunkGenerator3D implements TerraChunkGenerator { @Override public BlockState getBlock(World world, int x, int y, int z) { - TerraWorld terraWorld = main.getWorld(world); BiomeProvider provider = world.getBiomeProvider(); TerraBiome biome = provider.getBiome(x, z, world.getSeed()); - Sampler sampler = terraWorld.getConfig().getSamplerCache().get(x, z); + Sampler sampler = world.getConfig().getSamplerCache().get(x, z); PaletteInfo paletteInfo = biome.getContext().get(PaletteInfo.class); Palette palette = PaletteUtil.getPalette(x, y, z, biome.getGenerator(world), sampler, paletteInfo); diff --git a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/command/biome/arg/BiomeArgumentParser.java b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/command/biome/arg/BiomeArgumentParser.java index d15110df7..065a4eef8 100644 --- a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/command/biome/arg/BiomeArgumentParser.java +++ b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/command/biome/arg/BiomeArgumentParser.java @@ -14,6 +14,6 @@ public class BiomeArgumentParser implements ArgumentParser { @Override public TerraBiome parse(CommandSender sender, String arg) { Player player = (Player) sender; - return main.getWorld(player.world()).getConfig().getRegistry(TerraBiome.class).get(arg); + return player.world().getConfig().getRegistry(TerraBiome.class).get(arg); } } diff --git a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/command/biome/tab/BiomeTabCompleter.java b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/command/biome/tab/BiomeTabCompleter.java index 152925211..c0338ddbf 100644 --- a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/command/biome/tab/BiomeTabCompleter.java +++ b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/command/biome/tab/BiomeTabCompleter.java @@ -17,6 +17,6 @@ public class BiomeTabCompleter implements TabCompleter { @Override public List complete(CommandSender sender) { Player player = (Player) sender; - return main.getWorld(player.world()).getConfig().getRegistry(TerraBiome.class).entries().stream().map(TerraBiome::getID).collect(Collectors.toList()); + return player.world().getConfig().getRegistry(TerraBiome.class).entries().stream().map(TerraBiome::getID).collect(Collectors.toList()); } } diff --git a/common/addons/config-carver/src/main/java/com/dfsek/terra/addons/carver/CavePopulator.java b/common/addons/config-carver/src/main/java/com/dfsek/terra/addons/carver/CavePopulator.java index 7eec08cd8..e70c36b2b 100644 --- a/common/addons/config-carver/src/main/java/com/dfsek/terra/addons/carver/CavePopulator.java +++ b/common/addons/config-carver/src/main/java/com/dfsek/terra/addons/carver/CavePopulator.java @@ -30,11 +30,9 @@ public class CavePopulator implements TerraGenerationStage, Chunkified { @SuppressWarnings("try") @Override public void populate(@NotNull World world, @NotNull Chunk chunk) { - TerraWorld tw = main.getWorld(world); - WorldHandle handle = main.getWorldHandle(); try(ProfileFrame ignore = main.getProfiler().profile("carving")) { Random random = PopulationUtil.getRandom(chunk); - WorldConfig config = tw.getConfig(); + WorldConfig config = world.getConfig(); if(config.disableCarving()) return; for(UserDefinedCarver c : config.getRegistry(UserDefinedCarver.class).entries()) { diff --git a/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OrePopulator.java b/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OrePopulator.java index af7a5ed88..434ad6684 100644 --- a/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OrePopulator.java +++ b/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OrePopulator.java @@ -22,9 +22,8 @@ public class OrePopulator implements TerraGenerationStage { @SuppressWarnings("try") @Override public void populate(@NotNull World world, @NotNull Chunk chunk) { - TerraWorld tw = main.getWorld(world); try(ProfileFrame ignore = main.getProfiler().profile("ore")) { - if(tw.getConfig().disableOres()) return; + if(world.getConfig().disableOres()) return; for(int cx = -1; cx <= 1; cx++) { for(int cz = -1; cz <= 1; cz++) { diff --git a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/StructurePopulator.java b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/StructurePopulator.java index b493bd320..1c69b024a 100644 --- a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/StructurePopulator.java +++ b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/StructurePopulator.java @@ -28,14 +28,13 @@ public class StructurePopulator implements TerraGenerationStage, Chunkified { @SuppressWarnings("try") @Override public void populate(@NotNull World world, @NotNull Chunk chunk) { - TerraWorld tw = main.getWorld(world); try(ProfileFrame ignore = main.getProfiler().profile("structure")) { - if(tw.getConfig().disableStructures()) return; + if(world.getConfig().disableStructures()) return; int cx = (chunk.getX() << 4); int cz = (chunk.getZ() << 4); BiomeProvider provider = world.getBiomeProvider(); - WorldConfig config = tw.getConfig(); + WorldConfig config = world.getConfig(); for(ConfiguredStructure conf : config.getRegistry(TerraStructure.class).entries()) { Vector3 spawn = conf.getSpawn().getNearestSpawn(cx + 8, cz + 8, world.getSeed()); diff --git a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/argument/ScriptArgumentParser.java b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/argument/ScriptArgumentParser.java index 909412a44..3c1b982e0 100644 --- a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/argument/ScriptArgumentParser.java +++ b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/argument/ScriptArgumentParser.java @@ -13,6 +13,6 @@ public class ScriptArgumentParser implements ArgumentParser { @Override public Structure parse(CommandSender sender, String arg) { - return main.getWorld(((Player) sender).world()).getConfig().getRegistry(Structure.class).get(arg); + return ((Player) sender).world().getConfig().getRegistry(Structure.class).get(arg); } } diff --git a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/argument/StructureArgumentParser.java b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/argument/StructureArgumentParser.java index aec0dcaa5..515dade11 100644 --- a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/argument/StructureArgumentParser.java +++ b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/argument/StructureArgumentParser.java @@ -13,6 +13,6 @@ public class StructureArgumentParser implements ArgumentParser complete(CommandSender sender) { - return main.getWorld(((Player) sender).world()).getConfig().getRegistry(Structure.class).entries().stream().map(Structure::getId).collect(Collectors.toList()); + return ((Player) sender).world().getConfig().getRegistry(Structure.class).entries().stream().map(Structure::getId).collect(Collectors.toList()); } } diff --git a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/completer/StructureCompleter.java b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/completer/StructureCompleter.java index 17007423f..f51538600 100644 --- a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/completer/StructureCompleter.java +++ b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/completer/StructureCompleter.java @@ -17,6 +17,6 @@ public class StructureCompleter implements TabCompleter { @Override public List complete(CommandSender sender) { Player player = (Player) sender; - return new ArrayList<>(main.getWorld(player.world()).getConfig().getRegistry(ConfiguredStructure.class).keys()); + return new ArrayList<>(player.world().getConfig().getRegistry(ConfiguredStructure.class).keys()); } } diff --git a/common/addons/generation-stage-flora/src/main/java/com/dfsek/terra/addons/generation/flora/FloraGenerationStage.java b/common/addons/generation-stage-flora/src/main/java/com/dfsek/terra/addons/generation/flora/FloraGenerationStage.java index 8a7e9a2c3..b722e40d7 100644 --- a/common/addons/generation-stage-flora/src/main/java/com/dfsek/terra/addons/generation/flora/FloraGenerationStage.java +++ b/common/addons/generation-stage-flora/src/main/java/com/dfsek/terra/addons/generation/flora/FloraGenerationStage.java @@ -29,9 +29,8 @@ public class FloraGenerationStage implements TerraGenerationStage { @SuppressWarnings("try") @Override public void populate(@NotNull World world, @NotNull Chunk chunk) { - TerraWorld tw = main.getWorld(world); try(ProfileFrame ignore = main.getProfiler().profile("flora")) { - if(tw.getConfig().disableFlora()) return; + if(world.getConfig().disableFlora()) return; long seed = world.getSeed(); BiomeProvider provider = world.getBiomeProvider(); diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/CheckFunction.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/CheckFunction.java index b97a7a6d7..5856133ca 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/CheckFunction.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/CheckFunction.java @@ -50,8 +50,7 @@ public class CheckFunction implements Function { private String apply(Vector3 vector, World world) { int y = vector.getBlockY(); if(y >= world.getMaxHeight() || y < 0) return "AIR"; - TerraWorld tw = main.getWorld(world); - SamplerCache cache = tw.getConfig().getSamplerCache(); + SamplerCache cache = world.getConfig().getSamplerCache(); double comp = sample(vector.getBlockX(), vector.getBlockY(), vector.getBlockZ(), cache); if(comp > 0) return "LAND"; // If noise val is greater than zero, location will always be land. diff --git a/common/api/src/main/java/com/dfsek/terra/api/event/events/world/TerraWorldLoadEvent.java b/common/api/src/main/java/com/dfsek/terra/api/event/events/world/TerraWorldLoadEvent.java deleted file mode 100644 index 18341ca9e..000000000 --- a/common/api/src/main/java/com/dfsek/terra/api/event/events/world/TerraWorldLoadEvent.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.dfsek.terra.api.event.events.world; - -import com.dfsek.terra.api.config.ConfigPack; -import com.dfsek.terra.api.config.WorldConfig; -import com.dfsek.terra.api.event.events.PackEvent; -import com.dfsek.terra.api.world.TerraWorld; - - -/** - * Called upon initialization of a TerraWorld. - */ -public class TerraWorldLoadEvent implements PackEvent { - private final TerraWorld world; - private final ConfigPack pack; - - public TerraWorldLoadEvent(TerraWorld world, ConfigPack pack) { - this.world = world; - this.pack = pack; - } - - public TerraWorld getWorld() { - return world; - } - - public ConfigPack getPack() { - return pack; - } - - public WorldConfig getWorldConfig() { - return world.getConfig(); - } -} diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/TerraWorldImpl.java b/common/implementation/src/main/java/com/dfsek/terra/world/TerraWorldImpl.java index df950d9b8..ce50075a0 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/world/TerraWorldImpl.java +++ b/common/implementation/src/main/java/com/dfsek/terra/world/TerraWorldImpl.java @@ -3,11 +3,9 @@ package com.dfsek.terra.world; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.config.ConfigPack; -import com.dfsek.terra.api.event.events.world.TerraWorldLoadEvent; import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.World; -import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.config.pack.WorldConfigImpl; public class TerraWorldImpl implements TerraWorld { @@ -18,7 +16,6 @@ public class TerraWorldImpl implements TerraWorld { if(!w.isTerraWorld()) throw new IllegalArgumentException("World " + w + " is not a Terra World!"); this.world = w; config = (WorldConfigImpl) c.toWorldConfig(w); - main.getEventManager().callEvent(new TerraWorldLoadEvent(this, c)); } 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 289cf518f..f74ad670d 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 @@ -100,8 +100,8 @@ public class TerraBukkitPlugin extends JavaPlugin implements TerraPlugin { boolean succeed = registry.loadAll(this); Map newMap = new HashMap<>(); worldMap.forEach((world, tw) -> { - tw.getConfig().getSamplerCache().clear(); - String packID = tw.getConfig().getID(); + world.getConfig().getSamplerCache().clear(); + String packID = world.getConfig().getID(); newMap.put(world, new TerraWorldImpl(world, registry.get(packID), this)); }); worldMap.clear(); diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/CommonListener.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/CommonListener.java index cf337d6b0..4786690f1 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/CommonListener.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/CommonListener.java @@ -43,8 +43,7 @@ public class CommonListener implements Listener { if(e.isCancelled()) return; World bukkit = BukkitAdapter.adapt(e.getWorld()); if(!bukkit.isTerraWorld()) return; - TerraWorld tw = main.getWorld(bukkit); - WorldConfig c = tw.getConfig(); + WorldConfig c = bukkit.getConfig(); if(c.isDisableSaplings()) return; e.setCancelled(true); Block block = e.getLocation().getBlock(); 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 137784b29..553bb7ee5 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 @@ -83,7 +83,7 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer { public static final ConfiguredFeature POPULATOR_CONFIGURED_FEATURE = POPULATOR_FEATURE.configure(FeatureConfig.DEFAULT).decorate(Decorator.NOPE.configure(NopeDecoratorConfig.INSTANCE)); private static TerraFabricPlugin instance; private final org.apache.logging.log4j.Logger log4jLogger = LogManager.getLogger(); - private final Map> worldMap = new HashMap<>(); + private final Map worldMap = new HashMap<>(); private final EventManager eventManager = new EventManagerImpl(this); private final GenericLoaders genericLoaders = new GenericLoaders(this); private final Profiler profiler = new ProfilerImpl(); @@ -119,7 +119,7 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer { return instance; } - public Map> getWorldMap() { + public Map getWorldMap() { return worldMap; } @@ -144,9 +144,7 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer { } public TerraWorld getWorld(DimensionType type) { - TerraWorld world = worldMap.get(type).getRight(); - if(world == null) throw new IllegalArgumentException("No world exists with dimension type " + type); - return world; + throw new IllegalArgumentException("No world exists with dimension type " + type); } @Override @@ -188,10 +186,9 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer { config.load(this); LangUtil.load(config.getLanguage(), this); // Load language. boolean succeed = configRegistry.loadAll(this); - worldMap.forEach((seed, pair) -> { - pair.getRight().getConfig().getSamplerCache().clear(); - String packID = pair.getRight().getConfig().getID(); - pair.setRight(new TerraWorldImpl(pair.getRight().getWorld(), configRegistry.get(packID), this)); + worldMap.forEach((seed, world) -> { + if(!(world instanceof World)) return; + ((World) world).getConfig().getSamplerCache().clear(); }); return succeed; } From ea60b30321158efc871c10b75a2cae7218a2f256 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 14:00:16 -0700 Subject: [PATCH 07/33] remove TerraWorld#getConfig --- .../main/java/com/dfsek/terra/api/world/TerraWorld.java | 2 -- .../main/java/com/dfsek/terra/world/TerraWorldImpl.java | 8 -------- 2 files changed, 10 deletions(-) diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/TerraWorld.java b/common/api/src/main/java/com/dfsek/terra/api/world/TerraWorld.java index 97e25790a..485273c49 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/TerraWorld.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/TerraWorld.java @@ -8,8 +8,6 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider; public interface TerraWorld { World getWorld(); - WorldConfig getConfig(); - /** * Get a block at an ungenerated location * diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/TerraWorldImpl.java b/common/implementation/src/main/java/com/dfsek/terra/world/TerraWorldImpl.java index ce50075a0..9e84ac296 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/world/TerraWorldImpl.java +++ b/common/implementation/src/main/java/com/dfsek/terra/world/TerraWorldImpl.java @@ -9,13 +9,11 @@ import com.dfsek.terra.api.world.World; import com.dfsek.terra.config.pack.WorldConfigImpl; public class TerraWorldImpl implements TerraWorld { - private final WorldConfigImpl config; private final World world; public TerraWorldImpl(World w, ConfigPack c, TerraPlugin main) { if(!w.isTerraWorld()) throw new IllegalArgumentException("World " + w + " is not a Terra World!"); this.world = w; - config = (WorldConfigImpl) c.toWorldConfig(w); } @@ -25,12 +23,6 @@ public class TerraWorldImpl implements TerraWorld { } - @Override - public WorldConfigImpl getConfig() { - return config; - } - - @Override public BlockState getUngeneratedBlock(int x, int y, int z) { return world.getTerraGenerator().getBlock(world, x, y, z); From 109b5e38cd4a2011a38eda7b7e9c0ba5b09b88b1 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 14:13:37 -0700 Subject: [PATCH 08/33] remove most terraworld dependency --- .../feature/FeatureGenerationStage.java | 1 - .../java/com/dfsek/terra/api/TerraPlugin.java | 2 -- .../dfsek/terra/commands/GetBlockCommand.java | 2 +- .../dfsek/terra/bukkit/TerraBukkitPlugin.java | 13 ---------- .../dfsek/terra/fabric/TerraFabricPlugin.java | 24 ------------------- .../FabricChunkGeneratorWrapper.java | 14 +++++------ .../terra/fabric/mixin/ServerWorldMixin.java | 7 ++---- .../com/dfsek/terra/StandalonePlugin.java | 13 ---------- .../dfsek/terra/sponge/TerraSpongePlugin.java | 7 ------ 9 files changed, 9 insertions(+), 74 deletions(-) diff --git a/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java b/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java index c54d2eeae..2ad9e18a5 100644 --- a/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java +++ b/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java @@ -21,7 +21,6 @@ public class FeatureGenerationStage implements TerraGenerationStage { @Override @SuppressWarnings("try") public void populate(World world, Chunk chunk) { - TerraWorld terraWorld = main.getWorld(world); try(ProfileFrame ignore = main.getProfiler().profile("feature")) { int cx = chunk.getX() << 4; int cz = chunk.getZ() << 4; diff --git a/common/api/src/main/java/com/dfsek/terra/api/TerraPlugin.java b/common/api/src/main/java/com/dfsek/terra/api/TerraPlugin.java index 3af2b603e..86486e30a 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/TerraPlugin.java +++ b/common/api/src/main/java/com/dfsek/terra/api/TerraPlugin.java @@ -22,8 +22,6 @@ import java.io.File; public interface TerraPlugin extends LoaderRegistrar { WorldHandle getWorldHandle(); - TerraWorld getWorld(World world); - Logger logger(); PluginConfig getTerraConfig(); diff --git a/common/implementation/src/main/java/com/dfsek/terra/commands/GetBlockCommand.java b/common/implementation/src/main/java/com/dfsek/terra/commands/GetBlockCommand.java index 0e2c78f0a..05f437751 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/commands/GetBlockCommand.java +++ b/common/implementation/src/main/java/com/dfsek/terra/commands/GetBlockCommand.java @@ -23,6 +23,6 @@ public class GetBlockCommand implements CommandTemplate { @Override public void execute(CommandSender sender) { Player player = (Player) sender; - sender.sendMessage("Block: " + main.getWorld(player.world()).getUngeneratedBlock(player.position()).getAsString()); + sender.sendMessage("Block: " + player.world().getTerraGenerator().getBlock(player.world(), player.position()).getAsString()); } } 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 f74ad670d..a92a5e77e 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 @@ -23,7 +23,6 @@ import com.dfsek.terra.api.registry.Registry; import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.Biome; -import com.dfsek.terra.api.world.generator.TerraChunkGenerator; import com.dfsek.terra.bukkit.command.BukkitCommandAdapter; import com.dfsek.terra.bukkit.command.FixChunkCommand; import com.dfsek.terra.bukkit.command.SaveDataCommand; @@ -35,7 +34,6 @@ import com.dfsek.terra.bukkit.listeners.PaperListener; import com.dfsek.terra.bukkit.listeners.SpigotListener; import com.dfsek.terra.bukkit.util.PaperUtil; import com.dfsek.terra.bukkit.world.BukkitBiome; -import com.dfsek.terra.bukkit.world.BukkitWorld; import com.dfsek.terra.commands.CommandUtil; import com.dfsek.terra.commands.TerraCommandManager; import com.dfsek.terra.config.GenericLoaders; @@ -253,17 +251,6 @@ public class TerraBukkitPlugin extends JavaPlugin implements TerraPlugin { return checkedRegistry; } - public TerraWorld getWorld(World world) { - BukkitWorld w = (BukkitWorld) world; - if(!w.isTerraWorld()) - throw new IllegalArgumentException("Not a Terra world! " + w.getGenerator()); - if(!worlds.containsKey(w.getName())) { - getLogger().warning("Unexpected world load detected: \"" + w.getName() + "\""); - return new TerraWorldImpl(w, ((TerraChunkGenerator) w.getGenerator().getHandle()).getConfigPack(), this); - } - return worldMap.computeIfAbsent(w, w2 -> new TerraWorldImpl(w, worlds.get(w.getName()), this)); - } - @Override public Logger logger() { return new JavaLogger(getLogger()); 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 553bb7ee5..34c660f89 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 @@ -25,9 +25,7 @@ import com.dfsek.terra.api.profiler.Profiler; import com.dfsek.terra.api.registry.CheckedRegistry; import com.dfsek.terra.api.registry.exception.DuplicateEntryException; import com.dfsek.terra.api.util.generic.pair.Pair; -import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.Tree; -import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.commands.CommandUtil; import com.dfsek.terra.commands.TerraCommandManager; @@ -52,17 +50,13 @@ import com.dfsek.terra.registry.LockedRegistryImpl; import com.dfsek.terra.registry.master.AddonRegistry; import com.dfsek.terra.registry.master.ConfigRegistry; import com.dfsek.terra.util.logging.DebugLogger; -import com.dfsek.terra.world.TerraWorldImpl; import net.fabricmc.api.ModInitializer; import net.fabricmc.loader.api.FabricLoader; -import net.minecraft.server.world.ServerWorld; import net.minecraft.util.Identifier; import net.minecraft.util.registry.BuiltinRegistries; import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.RegistryKey; -import net.minecraft.world.WorldAccess; import net.minecraft.world.biome.Biome; -import net.minecraft.world.dimension.DimensionType; import net.minecraft.world.gen.decorator.Decorator; import net.minecraft.world.gen.decorator.NopeDecoratorConfig; import net.minecraft.world.gen.feature.ConfiguredFeature; @@ -83,7 +77,6 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer { public static final ConfiguredFeature POPULATOR_CONFIGURED_FEATURE = POPULATOR_FEATURE.configure(FeatureConfig.DEFAULT).decorate(Decorator.NOPE.configure(NopeDecoratorConfig.INSTANCE)); private static TerraFabricPlugin instance; private final org.apache.logging.log4j.Logger log4jLogger = LogManager.getLogger(); - private final Map worldMap = new HashMap<>(); private final EventManager eventManager = new EventManagerImpl(this); private final GenericLoaders genericLoaders = new GenericLoaders(this); private final Profiler profiler = new ProfilerImpl(); @@ -119,10 +112,6 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer { return instance; } - public Map getWorldMap() { - return worldMap; - } - private ProtoBiome parseBiome(String id) throws LoadException { Identifier identifier = Identifier.tryParse(id); if(BuiltinRegistries.BIOME.get(identifier) == null) throw new LoadException("Invalid Biome ID: " + identifier); // failure. @@ -138,15 +127,6 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer { return worldHandle; } - @Override - public TerraWorld getWorld(World world) { - return getWorld(((WorldAccess) world).getDimension()); - } - - public TerraWorld getWorld(DimensionType type) { - throw new IllegalArgumentException("No world exists with dimension type " + type); - } - @Override public Logger logger() { return logger; @@ -186,10 +166,6 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer { config.load(this); LangUtil.load(config.getLanguage(), this); // Load language. boolean succeed = configRegistry.loadAll(this); - worldMap.forEach((seed, world) -> { - if(!(world instanceof World)) return; - ((World) world).getConfig().getSamplerCache().clear(); - }); return succeed; } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java index ae25b2471..6be39fc8b 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java @@ -65,7 +65,7 @@ public class FabricChunkGeneratorWrapper extends ChunkGenerator implements Gener private final TerraBiomeSource biomeSource; private final ConfigPack pack; - private DimensionType dimensionType; + private ServerWorld world; public FabricChunkGeneratorWrapper(TerraBiomeSource biomeSource, long seed, ConfigPack configPack) { super(biomeSource, new StructuresConfig(false)); @@ -98,8 +98,8 @@ public class FabricChunkGeneratorWrapper extends ChunkGenerator implements Gener // No-op } - public void setDimensionType(DimensionType dimensionType) { - this.dimensionType = dimensionType; + public void setWorld(ServerWorld world) { + this.world = world; } @Nullable @@ -170,9 +170,8 @@ public class FabricChunkGeneratorWrapper extends ChunkGenerator implements Gener @Override public int getHeight(int x, int z, Heightmap.Type heightmap, HeightLimitView heightmapType) { - TerraWorld world = TerraFabricPlugin.getInstance().getWorld(dimensionType); - int height = world.getWorld().getMaxHeight(); - while(height >= world.getWorld().getMinHeight() && !heightmap.getBlockPredicate().test(((FabricBlockState) world.getUngeneratedBlock(x, height - 1, z)).getHandle())) { + int height = ((World) world).getMaxHeight(); + while(height >= ((World) world).getMinHeight() && !heightmap.getBlockPredicate().test(((FabricBlockState) ((World) world).getTerraGenerator().getBlock((World) world, x, height - 1, z)).getHandle())) { height--; } return height; @@ -180,10 +179,9 @@ public class FabricChunkGeneratorWrapper extends ChunkGenerator implements Gener @Override public VerticalBlockSample getColumnSample(int x, int z, HeightLimitView view) { - TerraWorld world = TerraFabricPlugin.getInstance().getWorld(dimensionType); BlockState[] array = new BlockState[view.getHeight()]; for(int y = view.getBottomY() + view.getHeight() - 1; y >= view.getBottomY(); y--) { - array[y] = ((FabricBlockState) world.getUngeneratedBlock(x, y, z)).getHandle(); + array[y] = ((FabricBlockState) ((World) world).getTerraGenerator().getBlock((World) world, x, y, z)).getHandle(); } return new VerticalBlockSample(view.getBottomY(), array); } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/ServerWorldMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/ServerWorldMixin.java index 36388dedb..33e41839a 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/ServerWorldMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/ServerWorldMixin.java @@ -1,9 +1,7 @@ package com.dfsek.terra.fabric.mixin; -import com.dfsek.terra.api.util.generic.pair.Pair; import com.dfsek.terra.fabric.TerraFabricPlugin; import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper; -import com.dfsek.terra.world.TerraWorldImpl; import net.minecraft.server.MinecraftServer; import net.minecraft.server.WorldGenerationProgressListener; import net.minecraft.server.world.ServerWorld; @@ -27,9 +25,8 @@ public abstract class ServerWorldMixin { @Inject(method = "", at = @At(value = "RETURN")) public void injectConstructor(MinecraftServer server, Executor workerExecutor, LevelStorage.Session session, ServerWorldProperties properties, RegistryKey registryKey, DimensionType dimensionType, WorldGenerationProgressListener worldGenerationProgressListener, ChunkGenerator chunkGenerator, boolean debugWorld, long l, List list, boolean bl, CallbackInfo ci) { if(chunkGenerator instanceof FabricChunkGeneratorWrapper) { - TerraFabricPlugin.getInstance().getWorldMap().put(dimensionType, Pair.of((ServerWorld) (Object) this, new TerraWorldImpl((com.dfsek.terra.api.world.World) this, ((FabricChunkGeneratorWrapper) chunkGenerator).getPack(), TerraFabricPlugin.getInstance()))); - ((FabricChunkGeneratorWrapper) chunkGenerator).setDimensionType(dimensionType); - TerraFabricPlugin.getInstance().logger().info("Registered world " + this + " to dimension type " + dimensionType); + ((FabricChunkGeneratorWrapper) chunkGenerator).setWorld((ServerWorld) (Object) this); + TerraFabricPlugin.getInstance().logger().info("Registered world " + this); } } } 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 1fe018928..276639515 100644 --- a/platforms/region/src/main/java/com/dfsek/terra/StandalonePlugin.java +++ b/platforms/region/src/main/java/com/dfsek/terra/StandalonePlugin.java @@ -1,8 +1,6 @@ package com.dfsek.terra; -import com.dfsek.tectonic.loading.TypeLoader; import com.dfsek.tectonic.loading.TypeRegistry; -import com.dfsek.tectonic.loading.object.ObjectTemplate; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.addon.TerraAddon; import com.dfsek.terra.api.block.state.BlockState; @@ -15,9 +13,6 @@ import com.dfsek.terra.api.lang.Language; import com.dfsek.terra.api.profiler.Profiler; import com.dfsek.terra.api.registry.CheckedRegistry; import com.dfsek.terra.api.registry.Registry; -import com.dfsek.terra.api.tectonic.LoaderHolder; -import com.dfsek.terra.api.world.TerraWorld; -import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.Biome; import com.dfsek.terra.config.GenericLoaders; import com.dfsek.terra.config.PluginConfigImpl; @@ -33,12 +28,9 @@ import com.dfsek.terra.registry.master.AddonRegistry; import com.dfsek.terra.registry.master.ConfigRegistry; import com.dfsek.terra.util.logging.DebugLogger; import com.dfsek.terra.util.logging.JavaLogger; -import com.dfsek.terra.world.TerraWorldImpl; import java.io.File; import java.io.IOException; -import java.lang.reflect.Type; -import java.util.function.Supplier; import java.util.logging.Logger; public class StandalonePlugin implements TerraPlugin { @@ -58,11 +50,6 @@ public class StandalonePlugin implements TerraPlugin { return worldHandle; } - @Override - public TerraWorld getWorld(World world) { - return new TerraWorldImpl(world, registry.get("DEFAULT"), this); - } - @Override public com.dfsek.terra.api.Logger logger() { return new JavaLogger(Logger.getLogger("Terra")); diff --git a/platforms/sponge/src/main/java/com/dfsek/terra/sponge/TerraSpongePlugin.java b/platforms/sponge/src/main/java/com/dfsek/terra/sponge/TerraSpongePlugin.java index d9ff86d23..be0eb9be7 100644 --- a/platforms/sponge/src/main/java/com/dfsek/terra/sponge/TerraSpongePlugin.java +++ b/platforms/sponge/src/main/java/com/dfsek/terra/sponge/TerraSpongePlugin.java @@ -12,8 +12,6 @@ import com.dfsek.terra.api.lang.Language; import com.dfsek.terra.api.profiler.Profiler; import com.dfsek.terra.api.registry.CheckedRegistry; import com.dfsek.terra.api.registry.LockedRegistry; -import com.dfsek.terra.api.world.TerraWorld; -import com.dfsek.terra.api.world.World; import com.dfsek.terra.config.PluginConfigImpl; import com.dfsek.terra.config.lang.LanguageImpl; import com.dfsek.terra.event.EventManagerImpl; @@ -68,11 +66,6 @@ public class TerraSpongePlugin implements TerraPlugin { return spongeWorldHandle; } - @Override - public TerraWorld getWorld(World world) { - return null; - } - @Override public com.dfsek.terra.api.Logger logger() { return new SpongeLogger(logger); From 1039bf60010881809d1207c9520e7df0f1ff2b91 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 14:15:06 -0700 Subject: [PATCH 09/33] delete TerraWorld --- .../generators/NoiseChunkGenerator3D.java | 1 - .../terra/addons/carver/CavePopulator.java | 2 -- .../dfsek/terra/addons/ore/OrePopulator.java | 1 - .../addons/structure/StructurePopulator.java | 1 - .../feature/FeatureGenerationStage.java | 1 - .../flora/FloraGenerationStage.java | 1 - .../script/functions/CheckFunction.java | 1 - .../java/com/dfsek/terra/api/TerraPlugin.java | 2 -- .../dfsek/terra/api/config/ConfigPack.java | 1 - .../dfsek/terra/api/config/WorldConfig.java | 3 -- .../com/dfsek/terra/api/world/TerraWorld.java | 22 ------------ .../terra/config/pack/ConfigPackImpl.java | 1 - .../terra/config/pack/WorldConfigImpl.java | 1 - .../dfsek/terra/world/SamplerCacheImpl.java | 1 - .../com/dfsek/terra/world/TerraWorldImpl.java | 35 ------------------- .../dfsek/terra/bukkit/TerraBukkitPlugin.java | 13 +------ .../bukkit/listeners/CommonListener.java | 1 - .../terra/bukkit/listeners/PaperListener.java | 1 - .../bukkit/listeners/SpigotListener.java | 1 - .../FabricChunkGeneratorWrapper.java | 2 -- 20 files changed, 1 insertion(+), 91 deletions(-) delete mode 100644 common/api/src/main/java/com/dfsek/terra/api/world/TerraWorld.java delete mode 100644 common/implementation/src/main/java/com/dfsek/terra/world/TerraWorldImpl.java diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java index 742965bf5..f99f50537 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java @@ -11,7 +11,6 @@ import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.profiler.ProfileFrame; import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.BiomeGrid; -import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.Generator; import com.dfsek.terra.api.world.biome.TerraBiome; diff --git a/common/addons/config-carver/src/main/java/com/dfsek/terra/addons/carver/CavePopulator.java b/common/addons/config-carver/src/main/java/com/dfsek/terra/addons/carver/CavePopulator.java index e70c36b2b..7f2263b0b 100644 --- a/common/addons/config-carver/src/main/java/com/dfsek/terra/addons/carver/CavePopulator.java +++ b/common/addons/config-carver/src/main/java/com/dfsek/terra/addons/carver/CavePopulator.java @@ -4,12 +4,10 @@ import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.block.BlockType; import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.config.WorldConfig; -import com.dfsek.terra.api.handle.WorldHandle; import com.dfsek.terra.api.profiler.ProfileFrame; import com.dfsek.terra.api.util.PopulationUtil; import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.Chunk; -import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.generator.Chunkified; import com.dfsek.terra.api.world.generator.TerraGenerationStage; diff --git a/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OrePopulator.java b/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OrePopulator.java index 434ad6684..ac5cf1ca8 100644 --- a/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OrePopulator.java +++ b/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OrePopulator.java @@ -4,7 +4,6 @@ import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.profiler.ProfileFrame; import com.dfsek.terra.api.util.PopulationUtil; import com.dfsek.terra.api.world.Chunk; -import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.generator.TerraGenerationStage; diff --git a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/StructurePopulator.java b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/StructurePopulator.java index 1c69b024a..355161c4c 100644 --- a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/StructurePopulator.java +++ b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/StructurePopulator.java @@ -8,7 +8,6 @@ import com.dfsek.terra.api.structure.rotation.Rotation; import com.dfsek.terra.api.util.PopulationUtil; import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.Chunk; -import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.Chunkified; diff --git a/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java b/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java index 2ad9e18a5..7c8cf1c57 100644 --- a/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java +++ b/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java @@ -7,7 +7,6 @@ import com.dfsek.terra.api.structure.rotation.Rotation; import com.dfsek.terra.api.util.PopulationUtil; import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.Chunk; -import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.generator.TerraGenerationStage; diff --git a/common/addons/generation-stage-flora/src/main/java/com/dfsek/terra/addons/generation/flora/FloraGenerationStage.java b/common/addons/generation-stage-flora/src/main/java/com/dfsek/terra/addons/generation/flora/FloraGenerationStage.java index b722e40d7..50bb228ce 100644 --- a/common/addons/generation-stage-flora/src/main/java/com/dfsek/terra/addons/generation/flora/FloraGenerationStage.java +++ b/common/addons/generation-stage-flora/src/main/java/com/dfsek/terra/addons/generation/flora/FloraGenerationStage.java @@ -5,7 +5,6 @@ import com.dfsek.terra.api.profiler.ProfileFrame; import com.dfsek.terra.api.util.PopulationUtil; import com.dfsek.terra.api.vector.Vector2; import com.dfsek.terra.api.world.Chunk; -import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.TerraGenerationStage; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/CheckFunction.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/CheckFunction.java index 5856133ca..ea0fe9af5 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/CheckFunction.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/CheckFunction.java @@ -10,7 +10,6 @@ import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.util.RotationUtil; import com.dfsek.terra.api.vector.Vector2; import com.dfsek.terra.api.vector.Vector3; -import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.generator.SamplerCache; import net.jafama.FastMath; diff --git a/common/api/src/main/java/com/dfsek/terra/api/TerraPlugin.java b/common/api/src/main/java/com/dfsek/terra/api/TerraPlugin.java index 86486e30a..698556227 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/TerraPlugin.java +++ b/common/api/src/main/java/com/dfsek/terra/api/TerraPlugin.java @@ -11,8 +11,6 @@ import com.dfsek.terra.api.profiler.Profiler; import com.dfsek.terra.api.registry.CheckedRegistry; import com.dfsek.terra.api.registry.Registry; import com.dfsek.terra.api.tectonic.LoaderRegistrar; -import com.dfsek.terra.api.world.TerraWorld; -import com.dfsek.terra.api.world.World; import java.io.File; diff --git a/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java b/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java index a46bb4942..8deb84c06 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java +++ b/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java @@ -7,7 +7,6 @@ import com.dfsek.terra.api.registry.meta.RegistryHolder; import com.dfsek.terra.api.tectonic.LoaderHolder; import com.dfsek.terra.api.tectonic.LoaderRegistrar; import com.dfsek.terra.api.util.reflection.TypeKey; -import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider; diff --git a/common/api/src/main/java/com/dfsek/terra/api/config/WorldConfig.java b/common/api/src/main/java/com/dfsek/terra/api/config/WorldConfig.java index 6d249df70..a377412f4 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/config/WorldConfig.java +++ b/common/api/src/main/java/com/dfsek/terra/api/config/WorldConfig.java @@ -1,13 +1,10 @@ package com.dfsek.terra.api.config; import com.dfsek.terra.api.registry.Registry; -import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.SamplerCache; -import com.dfsek.terra.api.world.generator.TerraGenerationStage; -import java.util.List; import java.util.Map; public interface WorldConfig { diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/TerraWorld.java b/common/api/src/main/java/com/dfsek/terra/api/world/TerraWorld.java deleted file mode 100644 index 485273c49..000000000 --- a/common/api/src/main/java/com/dfsek/terra/api/world/TerraWorld.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.dfsek.terra.api.world; - -import com.dfsek.terra.api.block.state.BlockState; -import com.dfsek.terra.api.config.WorldConfig; -import com.dfsek.terra.api.vector.Vector3; -import com.dfsek.terra.api.world.biome.generation.BiomeProvider; - -public interface TerraWorld { - World getWorld(); - - /** - * Get a block at an ungenerated location - * - * @param x X coordinate - * @param y Y coordinate - * @param z Z coordinate - * @return BlockData - */ - BlockState getUngeneratedBlock(int x, int y, int z); - - BlockState getUngeneratedBlock(Vector3 v); -} diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java b/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java index f090f2375..49ca4fd23 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java @@ -49,7 +49,6 @@ import com.dfsek.terra.registry.CheckedRegistryImpl; import com.dfsek.terra.registry.OpenRegistryImpl; import com.dfsek.terra.registry.RegistryFactoryImpl; import com.dfsek.terra.registry.config.ConfigTypeRegistry; -import com.dfsek.terra.world.TerraWorldImpl; import java.awt.image.BufferedImage; import java.io.File; diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/pack/WorldConfigImpl.java b/common/implementation/src/main/java/com/dfsek/terra/config/pack/WorldConfigImpl.java index a934b8830..67bd76148 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/pack/WorldConfigImpl.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/pack/WorldConfigImpl.java @@ -3,7 +3,6 @@ package com.dfsek.terra.config.pack; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.config.WorldConfig; import com.dfsek.terra.api.registry.Registry; -import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.SamplerCache; diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/SamplerCacheImpl.java b/common/implementation/src/main/java/com/dfsek/terra/world/SamplerCacheImpl.java index 45789d1f1..ff799f67c 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/world/SamplerCacheImpl.java +++ b/common/implementation/src/main/java/com/dfsek/terra/world/SamplerCacheImpl.java @@ -2,7 +2,6 @@ package com.dfsek.terra.world; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.util.MathUtil; -import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.generator.Sampler; import com.google.common.cache.CacheBuilder; diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/TerraWorldImpl.java b/common/implementation/src/main/java/com/dfsek/terra/world/TerraWorldImpl.java deleted file mode 100644 index 9e84ac296..000000000 --- a/common/implementation/src/main/java/com/dfsek/terra/world/TerraWorldImpl.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.dfsek.terra.world; - -import com.dfsek.terra.api.TerraPlugin; -import com.dfsek.terra.api.block.state.BlockState; -import com.dfsek.terra.api.config.ConfigPack; -import com.dfsek.terra.api.vector.Vector3; -import com.dfsek.terra.api.world.TerraWorld; -import com.dfsek.terra.api.world.World; -import com.dfsek.terra.config.pack.WorldConfigImpl; - -public class TerraWorldImpl implements TerraWorld { - private final World world; - - public TerraWorldImpl(World w, ConfigPack c, TerraPlugin main) { - if(!w.isTerraWorld()) throw new IllegalArgumentException("World " + w + " is not a Terra World!"); - this.world = w; - } - - - @Override - public World getWorld() { - return world; - } - - - @Override - public BlockState getUngeneratedBlock(int x, int y, int z) { - return world.getTerraGenerator().getBlock(world, x, y, z); - } - - @Override - public BlockState getUngeneratedBlock(Vector3 v) { - return getUngeneratedBlock(v.getBlockX(), v.getBlockY(), v.getBlockZ()); - } -} 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 a92a5e77e..7a3b0ffc4 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 @@ -20,8 +20,6 @@ import com.dfsek.terra.api.lang.Language; import com.dfsek.terra.api.profiler.Profiler; import com.dfsek.terra.api.registry.CheckedRegistry; import com.dfsek.terra.api.registry.Registry; -import com.dfsek.terra.api.world.TerraWorld; -import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.Biome; import com.dfsek.terra.bukkit.command.BukkitCommandAdapter; import com.dfsek.terra.bukkit.command.FixChunkCommand; @@ -47,7 +45,6 @@ import com.dfsek.terra.registry.master.AddonRegistry; import com.dfsek.terra.registry.master.ConfigRegistry; import com.dfsek.terra.util.logging.DebugLogger; import com.dfsek.terra.util.logging.JavaLogger; -import com.dfsek.terra.world.TerraWorldImpl; import io.papermc.lib.PaperLib; import org.bstats.bukkit.Metrics; import org.bukkit.Bukkit; @@ -78,7 +75,6 @@ public class TerraBukkitPlugin extends JavaPlugin implements TerraPlugin { } private final Map generatorMap = new HashMap<>(); - private final Map worldMap = new HashMap<>(); private final Map worlds = new HashMap<>(); private final Profiler profiler = new ProfilerImpl(); private final ConfigRegistry registry = new ConfigRegistry(); @@ -96,14 +92,7 @@ public class TerraBukkitPlugin extends JavaPlugin implements TerraPlugin { config.load(this); LangUtil.load(config.getLanguage(), this); // Load language. boolean succeed = registry.loadAll(this); - Map newMap = new HashMap<>(); - worldMap.forEach((world, tw) -> { - world.getConfig().getSamplerCache().clear(); - String packID = world.getConfig().getID(); - newMap.put(world, new TerraWorldImpl(world, registry.get(packID), this)); - }); - worldMap.clear(); - worldMap.putAll(newMap); + return succeed; } diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/CommonListener.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/CommonListener.java index 4786690f1..d075ecdee 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/CommonListener.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/CommonListener.java @@ -2,7 +2,6 @@ package com.dfsek.terra.bukkit.listeners; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.config.WorldConfig; -import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.Tree; import com.dfsek.terra.api.world.World; import com.dfsek.terra.bukkit.world.BukkitAdapter; diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/PaperListener.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/PaperListener.java index c656c76be..a7316daef 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/PaperListener.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/PaperListener.java @@ -2,7 +2,6 @@ package com.dfsek.terra.bukkit.listeners; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.structure.configured.ConfiguredStructure; -import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.locate.AsyncStructureFinder; import com.dfsek.terra.bukkit.world.BukkitAdapter; diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/SpigotListener.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/SpigotListener.java index 02d3fc906..fb6e4f0d5 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/SpigotListener.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/SpigotListener.java @@ -2,7 +2,6 @@ package com.dfsek.terra.bukkit.listeners; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.structure.configured.ConfiguredStructure; -import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.locate.AsyncStructureFinder; import com.dfsek.terra.bukkit.world.BukkitAdapter; diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java index 6be39fc8b..0a8bfdaee 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java @@ -1,7 +1,6 @@ package com.dfsek.terra.fabric.generation; import com.dfsek.terra.api.config.ConfigPack; -import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.generator.ChunkData; import com.dfsek.terra.api.world.generator.Chunkified; @@ -29,7 +28,6 @@ import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.SpawnSettings; import net.minecraft.world.biome.source.BiomeAccess; import net.minecraft.world.chunk.Chunk; -import net.minecraft.world.dimension.DimensionType; import net.minecraft.world.gen.ChunkRandom; import net.minecraft.world.gen.GenerationStep; import net.minecraft.world.gen.StructureAccessor; From 1f9a51fc40a892d9d80f93835e731c53d0b1aa5a Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 14:16:42 -0700 Subject: [PATCH 10/33] delete GenerationStage --- .../terra/api/world/generator/GenerationStage.java | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 common/api/src/main/java/com/dfsek/terra/api/world/generator/GenerationStage.java diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/generator/GenerationStage.java b/common/api/src/main/java/com/dfsek/terra/api/world/generator/GenerationStage.java deleted file mode 100644 index a5fc63668..000000000 --- a/common/api/src/main/java/com/dfsek/terra/api/world/generator/GenerationStage.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.dfsek.terra.api.world.generator; - -import com.dfsek.terra.api.Handle; -import com.dfsek.terra.api.world.Chunk; -import com.dfsek.terra.api.world.World; - -import java.util.Random; - -public interface GenerationStage extends Handle { - void populate(World world, Random random, Chunk chunk); -} From 76b6c0a984c101fd980678d6520d9c8d21995066 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 14:17:12 -0700 Subject: [PATCH 11/33] TerraGenerationStage -> GenerationStage --- .../generation/generators/NoiseChunkGenerator3D.java | 6 +++--- .../java/com/dfsek/terra/addons/carver/CavePopulator.java | 4 ++-- .../main/java/com/dfsek/terra/addons/ore/OrePopulator.java | 4 ++-- .../dfsek/terra/addons/structure/StructurePopulator.java | 4 ++-- .../addons/generation/feature/FeatureGenerationStage.java | 4 ++-- .../terra/addons/generation/flora/FloraGenerationStage.java | 4 ++-- .../{TerraGenerationStage.java => GenerationStage.java} | 2 +- .../terra/api/world/generator/GenerationStageProvider.java | 2 +- .../terra/api/world/generator/TerraChunkGenerator.java | 2 +- 9 files changed, 16 insertions(+), 16 deletions(-) rename common/api/src/main/java/com/dfsek/terra/api/world/generator/{TerraGenerationStage.java => GenerationStage.java} (81%) diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java index f99f50537..07c2eda3a 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java @@ -19,7 +19,7 @@ import com.dfsek.terra.api.world.generator.ChunkData; import com.dfsek.terra.api.world.generator.Palette; import com.dfsek.terra.api.world.generator.Sampler; import com.dfsek.terra.api.world.generator.TerraChunkGenerator; -import com.dfsek.terra.api.world.generator.TerraGenerationStage; +import com.dfsek.terra.api.world.generator.GenerationStage; import net.jafama.FastMath; import org.jetbrains.annotations.NotNull; @@ -30,7 +30,7 @@ import java.util.Random; public class NoiseChunkGenerator3D implements TerraChunkGenerator { private final ConfigPack configPack; private final TerraPlugin main; - private final List generationStages = new ArrayList<>(); + private final List generationStages = new ArrayList<>(); private final BlockState air; @@ -160,7 +160,7 @@ public class NoiseChunkGenerator3D implements TerraChunkGenerator { } @Override - public List getGenerationStages() { + public List getGenerationStages() { return generationStages; } diff --git a/common/addons/config-carver/src/main/java/com/dfsek/terra/addons/carver/CavePopulator.java b/common/addons/config-carver/src/main/java/com/dfsek/terra/addons/carver/CavePopulator.java index 7f2263b0b..bf9398586 100644 --- a/common/addons/config-carver/src/main/java/com/dfsek/terra/addons/carver/CavePopulator.java +++ b/common/addons/config-carver/src/main/java/com/dfsek/terra/addons/carver/CavePopulator.java @@ -10,14 +10,14 @@ import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.generator.Chunkified; -import com.dfsek.terra.api.world.generator.TerraGenerationStage; +import com.dfsek.terra.api.world.generator.GenerationStage; import org.jetbrains.annotations.NotNull; import java.util.HashMap; import java.util.Map; import java.util.Random; -public class CavePopulator implements TerraGenerationStage, Chunkified { +public class CavePopulator implements GenerationStage, Chunkified { private static final Map shiftStorage = new HashMap<>(); // Persist BlockData created for shifts, to avoid re-calculating each time. private final TerraPlugin main; diff --git a/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OrePopulator.java b/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OrePopulator.java index ac5cf1ca8..f6146fdd0 100644 --- a/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OrePopulator.java +++ b/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OrePopulator.java @@ -6,12 +6,12 @@ import com.dfsek.terra.api.util.PopulationUtil; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.TerraBiome; -import com.dfsek.terra.api.world.generator.TerraGenerationStage; +import com.dfsek.terra.api.world.generator.GenerationStage; import org.jetbrains.annotations.NotNull; import java.util.Random; -public class OrePopulator implements TerraGenerationStage { +public class OrePopulator implements GenerationStage { private final TerraPlugin main; public OrePopulator(TerraPlugin main) { diff --git a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/StructurePopulator.java b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/StructurePopulator.java index 355161c4c..e3067f95a 100644 --- a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/StructurePopulator.java +++ b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/StructurePopulator.java @@ -11,13 +11,13 @@ import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.Chunkified; -import com.dfsek.terra.api.world.generator.TerraGenerationStage; +import com.dfsek.terra.api.world.generator.GenerationStage; import net.jafama.FastMath; import org.jetbrains.annotations.NotNull; import java.util.Random; -public class StructurePopulator implements TerraGenerationStage, Chunkified { +public class StructurePopulator implements GenerationStage, Chunkified { private final TerraPlugin main; public StructurePopulator(TerraPlugin main) { diff --git a/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java b/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java index 7c8cf1c57..180bbb63c 100644 --- a/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java +++ b/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java @@ -8,9 +8,9 @@ import com.dfsek.terra.api.util.PopulationUtil; import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.World; -import com.dfsek.terra.api.world.generator.TerraGenerationStage; +import com.dfsek.terra.api.world.generator.GenerationStage; -public class FeatureGenerationStage implements TerraGenerationStage { +public class FeatureGenerationStage implements GenerationStage { private final TerraPlugin main; public FeatureGenerationStage(TerraPlugin main) { diff --git a/common/addons/generation-stage-flora/src/main/java/com/dfsek/terra/addons/generation/flora/FloraGenerationStage.java b/common/addons/generation-stage-flora/src/main/java/com/dfsek/terra/addons/generation/flora/FloraGenerationStage.java index 50bb228ce..8957fad87 100644 --- a/common/addons/generation-stage-flora/src/main/java/com/dfsek/terra/addons/generation/flora/FloraGenerationStage.java +++ b/common/addons/generation-stage-flora/src/main/java/com/dfsek/terra/addons/generation/flora/FloraGenerationStage.java @@ -7,7 +7,7 @@ import com.dfsek.terra.api.vector.Vector2; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import com.dfsek.terra.api.world.generator.TerraGenerationStage; +import com.dfsek.terra.api.world.generator.GenerationStage; import org.jetbrains.annotations.NotNull; import java.util.HashMap; @@ -18,7 +18,7 @@ import java.util.Random; /** * Populates Flora */ -public class FloraGenerationStage implements TerraGenerationStage { +public class FloraGenerationStage implements GenerationStage { private final TerraPlugin main; public FloraGenerationStage(TerraPlugin main) { diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/generator/TerraGenerationStage.java b/common/api/src/main/java/com/dfsek/terra/api/world/generator/GenerationStage.java similarity index 81% rename from common/api/src/main/java/com/dfsek/terra/api/world/generator/TerraGenerationStage.java rename to common/api/src/main/java/com/dfsek/terra/api/world/generator/GenerationStage.java index 8f4cf9f0a..9b14e61de 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/generator/TerraGenerationStage.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/generator/GenerationStage.java @@ -3,6 +3,6 @@ package com.dfsek.terra.api.world.generator; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.World; -public interface TerraGenerationStage { +public interface GenerationStage { void populate(World world, Chunk chunk); } diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/generator/GenerationStageProvider.java b/common/api/src/main/java/com/dfsek/terra/api/world/generator/GenerationStageProvider.java index 209001f56..db12f7b15 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/generator/GenerationStageProvider.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/generator/GenerationStageProvider.java @@ -3,5 +3,5 @@ package com.dfsek.terra.api.world.generator; import com.dfsek.terra.api.config.ConfigPack; public interface GenerationStageProvider { - TerraGenerationStage newInstance(ConfigPack pack); + GenerationStage newInstance(ConfigPack pack); } diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/generator/TerraChunkGenerator.java b/common/api/src/main/java/com/dfsek/terra/api/world/generator/TerraChunkGenerator.java index e2ef1241a..390a00a72 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/generator/TerraChunkGenerator.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/generator/TerraChunkGenerator.java @@ -23,7 +23,7 @@ public interface TerraChunkGenerator { Sampler createSampler(int chunkX, int chunkZ, BiomeProvider provider, World world, int elevationSmooth); - List getGenerationStages(); + List getGenerationStages(); BlockState getBlock(World world, int x, int y, int z); From 2e2f9d854d497a053a131f05e8d84b546a7e7068 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 14:18:07 -0700 Subject: [PATCH 12/33] delete ChunkGeneratorMixin --- .../implementations/ChunkGeneratorMixin.java | 16 ---------------- .../fabric/src/main/resources/terra.mixins.json | 1 - 2 files changed, 17 deletions(-) delete mode 100644 platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/ChunkGeneratorMixin.java diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/ChunkGeneratorMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/ChunkGeneratorMixin.java deleted file mode 100644 index cb290eb3f..000000000 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/ChunkGeneratorMixin.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.dfsek.terra.fabric.mixin.implementations; - -import net.minecraft.world.gen.chunk.ChunkGenerator; -import org.spongepowered.asm.mixin.Implements; -import org.spongepowered.asm.mixin.Interface; -import org.spongepowered.asm.mixin.Intrinsic; -import org.spongepowered.asm.mixin.Mixin; - -@Mixin(ChunkGenerator.class) -@Implements(@Interface(iface = com.dfsek.terra.api.world.generator.ChunkGenerator.class, prefix = "terra$", remap = Interface.Remap.NONE)) -public abstract class ChunkGeneratorMixin { - @Intrinsic - public Object terra$getHandle() { - return this; - } -} diff --git a/platforms/fabric/src/main/resources/terra.mixins.json b/platforms/fabric/src/main/resources/terra.mixins.json index a6371aee8..cf04a0954 100644 --- a/platforms/fabric/src/main/resources/terra.mixins.json +++ b/platforms/fabric/src/main/resources/terra.mixins.json @@ -11,7 +11,6 @@ "access.MobSpawnerLogicAccessor", "access.StateAccessor", "implementations.BiomeMixin", - "implementations.ChunkGeneratorMixin", "implementations.ConfiguredFeatureMixin", "implementations.block.BlockEntityMixin", "implementations.block.BlockMixin", From a753351137c8fcec585eac16fe2b67438bf01fc1 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 14:19:04 -0700 Subject: [PATCH 13/33] Move BukkitChunkData out of BukkitChunkGenerator --- .../bukkit/generator/BukkitChunkData.java | 38 +++++++++++++++++++ .../generator/BukkitChunkGenerator.java | 30 --------------- .../BukkitChunkGeneratorWrapper.java | 2 +- 3 files changed, 39 insertions(+), 31 deletions(-) create mode 100644 platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkData.java diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkData.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkData.java new file mode 100644 index 000000000..8dbfceb87 --- /dev/null +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkData.java @@ -0,0 +1,38 @@ +package com.dfsek.terra.bukkit.generator; + +import com.dfsek.terra.api.block.state.BlockState; +import com.dfsek.terra.api.world.generator.ChunkData; +import com.dfsek.terra.bukkit.world.block.data.BukkitBlockState; +import org.bukkit.generator.ChunkGenerator; +import org.jetbrains.annotations.NotNull; + +public class BukkitChunkData implements ChunkData { + + private final ChunkGenerator.ChunkData delegate; + + public BukkitChunkData(ChunkGenerator.ChunkData delegate) { + this.delegate = delegate; + } + + @Override + public ChunkGenerator.ChunkData getHandle() { + return delegate; + } + + @Override + public int getMaxHeight() { + return delegate.getMaxHeight(); + } + + + @Override + public void setBlock(int x, int y, int z, @NotNull BlockState blockState) { + delegate.setBlock(x, y, z, ((BukkitBlockState) blockState).getHandle()); + } + + + @Override + public @NotNull BlockState getBlock(int x, int y, int z) { + return BukkitBlockState.newInstance(delegate.getBlockData(x, y, z)); + } +} 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 c0e5ed4ef..a040efad8 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 @@ -18,34 +18,4 @@ public class BukkitChunkGenerator implements com.dfsek.terra.api.world.generator return delegate; } - public static class BukkitChunkData implements ChunkData { - - private final ChunkGenerator.ChunkData delegate; - - public BukkitChunkData(ChunkGenerator.ChunkData delegate) { - this.delegate = delegate; - } - - @Override - public ChunkGenerator.ChunkData getHandle() { - return delegate; - } - - @Override - public int getMaxHeight() { - return delegate.getMaxHeight(); - } - - - @Override - public void setBlock(int x, int y, int z, @NotNull BlockState blockState) { - delegate.setBlock(x, y, z, ((BukkitBlockState) blockState).getHandle()); - } - - - @Override - public @NotNull BlockState getBlock(int x, int y, int z) { - return BukkitBlockState.newInstance(delegate.getBlockData(x, y, z)); - } - } } 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 5276a47a9..1b56b2cae 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 @@ -72,7 +72,7 @@ public class BukkitChunkGeneratorWrapper extends ChunkGenerator implements Gener com.dfsek.terra.api.world.World bukkitWorld = BukkitAdapter.adapt(world); if(needsLoad) load(bukkitWorld); // Load population data for world. delegate.generateBiomes(bukkitWorld, random, x, z, new BukkitBiomeGrid(biome)); - return (ChunkData) delegate.generateChunkData(bukkitWorld, random, x, z, new BukkitChunkGenerator.BukkitChunkData(createChunkData(world))).getHandle(); + return (ChunkData) delegate.generateChunkData(bukkitWorld, random, x, z, new BukkitChunkData(createChunkData(world))).getHandle(); } @Override From fe68aa6279ec007d5deac5beb7f2159edeca65df Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 14:21:14 -0700 Subject: [PATCH 14/33] remove World#isTerraWorld --- common/api/src/main/java/com/dfsek/terra/api/world/World.java | 4 ---- .../java/com/dfsek/terra/commands/TerraCommandManager.java | 2 +- .../terra/bukkit/generator/BukkitChunkGeneratorWrapper.java | 1 - .../java/com/dfsek/terra/bukkit/listeners/CommonListener.java | 1 - .../java/com/dfsek/terra/bukkit/listeners/PaperListener.java | 1 - .../java/com/dfsek/terra/bukkit/listeners/SpigotListener.java | 3 --- 6 files changed, 1 insertion(+), 11 deletions(-) diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/World.java b/common/api/src/main/java/com/dfsek/terra/api/world/World.java index 962b91f92..440ddf6bd 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/World.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/World.java @@ -55,10 +55,6 @@ public interface World extends Handle { int getMinHeight(); - default boolean isTerraWorld() { - return getGenerator().getHandle() instanceof GeneratorWrapper; - } - default TerraChunkGenerator getTerraGenerator() { return ((GeneratorWrapper) getGenerator().getHandle()).getHandle(); } diff --git a/common/implementation/src/main/java/com/dfsek/terra/commands/TerraCommandManager.java b/common/implementation/src/main/java/com/dfsek/terra/commands/TerraCommandManager.java index 34e3f29c5..09e1108b8 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/commands/TerraCommandManager.java +++ b/common/implementation/src/main/java/com/dfsek/terra/commands/TerraCommandManager.java @@ -66,7 +66,7 @@ public class TerraCommandManager implements CommandManager { return; } - if(commandClass.isAnnotationPresent(WorldCommand.class) && (!(sender instanceof Player) || !(((Player) sender).world()).isTerraWorld())) { + if(commandClass.isAnnotationPresent(WorldCommand.class) && (!(sender instanceof Player))) { sender.sendMessage("Command must be executed in a Terra world."); return; } 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 1b56b2cae..33a22b1f9 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 @@ -51,7 +51,6 @@ public class BukkitChunkGeneratorWrapper extends ChunkGenerator implements Gener } public static synchronized void fixChunk(Chunk c) { - if(!c.getWorld().isTerraWorld()) throw new IllegalArgumentException(); popMap.get(c.getWorld()).checkNeighbors(c.getX(), c.getZ(), c.getWorld()); } diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/CommonListener.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/CommonListener.java index d075ecdee..4726f0836 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/CommonListener.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/CommonListener.java @@ -41,7 +41,6 @@ public class CommonListener implements Listener { public void onSaplingGrow(StructureGrowEvent e) { if(e.isCancelled()) return; World bukkit = BukkitAdapter.adapt(e.getWorld()); - if(!bukkit.isTerraWorld()) return; WorldConfig c = bukkit.getConfig(); if(c.isDisableSaplings()) return; e.setCancelled(true); diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/PaperListener.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/PaperListener.java index a7316daef..82a410479 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/PaperListener.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/PaperListener.java @@ -19,7 +19,6 @@ public class PaperListener implements Listener { @EventHandler public void onStructureLocate(StructureLocateEvent e) { - if(!BukkitAdapter.adapt(e.getWorld()).isTerraWorld()) return; String name = "minecraft:" + e.getType().getName(); main.getDebugLogger().info("Overriding structure location for \"" + name + "\""); World w = BukkitAdapter.adapt(e.getWorld()); diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/SpigotListener.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/SpigotListener.java index fb6e4f0d5..c82051162 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/SpigotListener.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/SpigotListener.java @@ -35,7 +35,6 @@ public class SpigotListener implements Listener { Entity entity = e.getEntity(); if(e.getEntityType().equals(EntityType.ENDER_SIGNAL)) { main.getDebugLogger().info("Detected Ender Signal..."); - if(!BukkitAdapter.adapt(e.getEntity().getWorld()).isTerraWorld()) return; World w = BukkitAdapter.adapt(e.getEntity().getWorld()); EnderSignal signal = (EnderSignal) entity; ConfiguredStructure config = tw.getConfig().getRegistry(TerraStructure.class).get(w.getConfig().getLocatable().get("STRONGHOLD")); @@ -54,7 +53,6 @@ public class SpigotListener implements Listener { @EventHandler public void onCartographerChange(VillagerAcquireTradeEvent e) { - if(!BukkitAdapter.adapt(e.getEntity().getWorld()).isTerraWorld()) return; if(!(e.getEntity() instanceof Villager)) return; if(((Villager) e.getEntity()).getProfession().equals(Villager.Profession.CARTOGRAPHER)) { main.logger().severe("Prevented server crash by stopping Cartographer villager from spawning."); @@ -66,7 +64,6 @@ public class SpigotListener implements Listener { @EventHandler public void onCartographerLevel(VillagerCareerChangeEvent e) { - if(!BukkitAdapter.adapt(e.getEntity().getWorld()).isTerraWorld()) return; if(e.getProfession().equals(Villager.Profession.CARTOGRAPHER)) { main.logger().severe("Prevented server crash by stopping Cartographer villager from spawning."); main.logger().severe("Please upgrade to Paper, which has a StructureLocateEvent that fixes this issue"); From 2517b7495157e76a0c57b9f29b65671466a412d7 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 14:25:06 -0700 Subject: [PATCH 15/33] remove isTerraWorld from Fabric mixins --- .../fabric/mixin/implementations/world/ChunkRegionMixin.java | 4 ---- .../fabric/mixin/implementations/world/ServerWorldMixin.java | 4 ---- 2 files changed, 8 deletions(-) diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java index 380c408e3..e796d8009 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java @@ -115,10 +115,6 @@ public abstract class ChunkRegionMixin { return this; } - public boolean terraWorld$isTerraWorld() { - return terraWorld$getGenerator() instanceof GeneratorWrapper; - } - public TerraChunkGenerator terraWorld$getTerraGenerator() { return ((FabricChunkGeneratorWrapper) terraWorld$getGenerator()).getHandle(); } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java index 1dab4e632..818db1322 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java @@ -100,10 +100,6 @@ public abstract class ServerWorldMixin { return this; } - public boolean terra$isTerraWorld() { - return terra$getGenerator() instanceof GeneratorWrapper; - } - public TerraChunkGenerator terra$getTerraGenerator() { return ((FabricChunkGeneratorWrapper) terra$getGenerator()).getHandle(); } From ec14666c6d223b387ef4e7c858598e8622ed1067 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 14:28:11 -0700 Subject: [PATCH 16/33] remove World#getGenerator --- .../api/src/main/java/com/dfsek/terra/api/world/World.java | 6 +----- .../main/java/com/dfsek/terra/config/dummy/DummyWorld.java | 7 ------- .../java/com/dfsek/terra/bukkit/world/BukkitWorld.java | 7 ------- .../mixin/implementations/ConfiguredFeatureMixin.java | 4 +++- .../mixin/implementations/world/ChunkRegionMixin.java | 6 +++++- .../main/java/com/dfsek/terra/platform/DirectWorld.java | 6 ------ 6 files changed, 9 insertions(+), 27 deletions(-) diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/World.java b/common/api/src/main/java/com/dfsek/terra/api/world/World.java index 440ddf6bd..d5d828595 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/World.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/World.java @@ -17,8 +17,6 @@ public interface World extends Handle { int getMaxHeight(); - ChunkGenerator getGenerator(); - Chunk getChunkAt(int x, int z); default Chunk getChunkAt(Vector3 location) { @@ -55,9 +53,7 @@ public interface World extends Handle { int getMinHeight(); - default TerraChunkGenerator getTerraGenerator() { - return ((GeneratorWrapper) getGenerator().getHandle()).getHandle(); - } + TerraChunkGenerator getTerraGenerator(); BiomeProvider getBiomeProvider(); diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java b/common/implementation/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java index 38d7aad51..594d475ad 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java @@ -9,8 +9,6 @@ import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import com.dfsek.terra.api.world.generator.ChunkGenerator; -import com.dfsek.terra.api.world.generator.GeneratorWrapper; public class DummyWorld implements World { @Override @@ -28,11 +26,6 @@ public class DummyWorld implements World { return 255; } - @Override - public ChunkGenerator getGenerator() { - return () -> (GeneratorWrapper) () -> null; - } - @Override public Chunk getChunkAt(int x, int z) { throw new UnsupportedOperationException("Cannot get chunk in DummyWorld"); diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitWorld.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitWorld.java index 28fc701f5..77aa58976 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitWorld.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitWorld.java @@ -7,9 +7,7 @@ import com.dfsek.terra.api.entity.EntityType; import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.World; -import com.dfsek.terra.api.world.generator.ChunkGenerator; import com.dfsek.terra.bukkit.BukkitEntity; -import com.dfsek.terra.bukkit.generator.BukkitChunkGenerator; import com.dfsek.terra.bukkit.world.block.state.BukkitBlockEntity; import com.dfsek.terra.bukkit.world.entity.BukkitEntityType; @@ -33,11 +31,6 @@ public class BukkitWorld implements World { return delegate.getMaxHeight(); } - @Override - public ChunkGenerator getGenerator() { - return new BukkitChunkGenerator(delegate.getGenerator()); - } - public String getName() { return delegate.getName(); } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/ConfiguredFeatureMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/ConfiguredFeatureMixin.java index a8ef5d8b3..38090e1cb 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/ConfiguredFeatureMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/ConfiguredFeatureMixin.java @@ -9,7 +9,9 @@ import com.dfsek.terra.api.world.World; import com.dfsek.terra.fabric.TerraFabricPlugin; import net.minecraft.util.math.BlockPos; import net.minecraft.util.registry.BuiltinRegistries; +import net.minecraft.world.ServerWorldAccess; import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.WorldAccess; import net.minecraft.world.gen.chunk.ChunkGenerator; import net.minecraft.world.gen.feature.ConfiguredFeature; import org.spongepowered.asm.mixin.Implements; @@ -32,7 +34,7 @@ public abstract class ConfiguredFeatureMixin { String id = BuiltinRegistries.CONFIGURED_FEATURE.getId((ConfiguredFeature) (Object) this).toString(); try(ProfileFrame ignore = TerraFabricPlugin.getInstance().getProfiler().profile("fabric_tree:" + id.toLowerCase(Locale.ROOT))) { StructureWorldAccess fabricWorldAccess = ((StructureWorldAccess) world); - ChunkGenerator generatorWrapper = (ChunkGenerator) world.getGenerator(); + ChunkGenerator generatorWrapper = ((ServerWorldAccess) world).toServerWorld().getChunkManager().getChunkGenerator(); return generate(fabricWorldAccess, generatorWrapper, r, new BlockPos(l.getBlockX(), l.getBlockY(), l.getBlockZ())); } } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java index e796d8009..694eb6b42 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java @@ -24,6 +24,7 @@ import net.minecraft.world.ChunkRegion; import net.minecraft.world.ServerWorldAccess; import net.minecraft.world.TickScheduler; import net.minecraft.world.WorldAccess; +import net.minecraft.world.chunk.ChunkManager; import net.minecraft.world.chunk.ChunkStatus; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Implements; @@ -56,6 +57,9 @@ public abstract class ChunkRegionMixin { @Shadow public abstract TickScheduler getFluidTickScheduler(); + @Shadow + public abstract ChunkManager getChunkManager(); + public int terraWorld$getMaxHeight() { return (((ChunkRegion) (Object) this).getBottomY()) + ((ChunkRegion) (Object) this).getHeight(); } @@ -116,7 +120,7 @@ public abstract class ChunkRegionMixin { } public TerraChunkGenerator terraWorld$getTerraGenerator() { - return ((FabricChunkGeneratorWrapper) terraWorld$getGenerator()).getHandle(); + return ((FabricChunkGeneratorWrapper) world.getChunkManager().getChunkGenerator()).getHandle(); } @SuppressWarnings("deprecation") diff --git a/platforms/region/src/main/java/com/dfsek/terra/platform/DirectWorld.java b/platforms/region/src/main/java/com/dfsek/terra/platform/DirectWorld.java index fc99eaebe..620aa5a54 100644 --- a/platforms/region/src/main/java/com/dfsek/terra/platform/DirectWorld.java +++ b/platforms/region/src/main/java/com/dfsek/terra/platform/DirectWorld.java @@ -8,7 +8,6 @@ import com.dfsek.terra.api.entity.EntityType; import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.World; -import com.dfsek.terra.api.world.generator.ChunkGenerator; import net.jafama.FastMath; import net.querz.mca.MCAFile; import net.querz.mca.MCAUtil; @@ -40,11 +39,6 @@ public class DirectWorld implements World { return 255; } - @Override - public ChunkGenerator getGenerator() { - return generator; - } - @Override public Chunk getChunkAt(int x, int z) { MCAFile file = compute(x, z); From ad9cc1afcb19a6eb02f053662c8773d24eef9b62 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 14:28:37 -0700 Subject: [PATCH 17/33] World#getTerraGenerator -> World#getGenerator --- .../terra/addons/terrascript/buffer/items/BufferedEntity.java | 2 +- .../terrascript/buffer/items/BufferedLootApplication.java | 2 +- common/api/src/main/java/com/dfsek/terra/api/world/World.java | 2 +- .../main/java/com/dfsek/terra/commands/GetBlockCommand.java | 2 +- .../src/main/java/com/dfsek/terra/world/SamplerCacheImpl.java | 2 +- .../terra/fabric/generation/FabricChunkGeneratorWrapper.java | 4 ++-- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedEntity.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedEntity.java index 5cf0bc1cf..d32b73997 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedEntity.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedEntity.java @@ -21,6 +21,6 @@ public class BufferedEntity implements BufferedItem { @Override public void paste(Vector3 origin, World world) { Entity entity = world.spawnEntity(origin.clone().add(0.5, 0, 0.5), type); - main.getEventManager().callEvent(new EntitySpawnEvent(entity.world().getTerraGenerator().getConfigPack(), entity)); + main.getEventManager().callEvent(new EntitySpawnEvent(entity.world().getGenerator().getConfigPack(), entity)); } } diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedLootApplication.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedLootApplication.java index 77e357dd2..41b3e16cb 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedLootApplication.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedLootApplication.java @@ -33,7 +33,7 @@ public class BufferedLootApplication implements BufferedItem { } Container container = (Container) data; - LootPopulateEvent event = new LootPopulateEvent(container, table, world.getTerraGenerator().getConfigPack(), structure); + LootPopulateEvent event = new LootPopulateEvent(container, table, world.getGenerator().getConfigPack(), structure); main.getEventManager().callEvent(event); if(event.isCancelled()) return; diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/World.java b/common/api/src/main/java/com/dfsek/terra/api/world/World.java index d5d828595..6dd19db6f 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/World.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/World.java @@ -53,7 +53,7 @@ public interface World extends Handle { int getMinHeight(); - TerraChunkGenerator getTerraGenerator(); + TerraChunkGenerator getGenerator(); BiomeProvider getBiomeProvider(); diff --git a/common/implementation/src/main/java/com/dfsek/terra/commands/GetBlockCommand.java b/common/implementation/src/main/java/com/dfsek/terra/commands/GetBlockCommand.java index 05f437751..f0d34d3ea 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/commands/GetBlockCommand.java +++ b/common/implementation/src/main/java/com/dfsek/terra/commands/GetBlockCommand.java @@ -23,6 +23,6 @@ public class GetBlockCommand implements CommandTemplate { @Override public void execute(CommandSender sender) { Player player = (Player) sender; - sender.sendMessage("Block: " + player.world().getTerraGenerator().getBlock(player.world(), player.position()).getAsString()); + sender.sendMessage("Block: " + player.world().getGenerator().getBlock(player.world(), player.position()).getAsString()); } } diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/SamplerCacheImpl.java b/common/implementation/src/main/java/com/dfsek/terra/world/SamplerCacheImpl.java index ff799f67c..d4670f3cd 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/world/SamplerCacheImpl.java +++ b/common/implementation/src/main/java/com/dfsek/terra/world/SamplerCacheImpl.java @@ -20,7 +20,7 @@ public class SamplerCacheImpl implements com.dfsek.terra.api.world.generator.Sam public Sampler load(@NotNull Long key) { int cx = (int) (key >> 32); int cz = (int) key.longValue(); - return world.getTerraGenerator().createSampler(cx, cz, world.getBiomeProvider(), world, world.getConfig().elevationBlend()); + return world.getGenerator().createSampler(cx, cz, world.getBiomeProvider(), world, world.getConfig().elevationBlend()); } }); } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java index 0a8bfdaee..102c50f61 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java @@ -169,7 +169,7 @@ public class FabricChunkGeneratorWrapper extends ChunkGenerator implements Gener @Override public int getHeight(int x, int z, Heightmap.Type heightmap, HeightLimitView heightmapType) { int height = ((World) world).getMaxHeight(); - while(height >= ((World) world).getMinHeight() && !heightmap.getBlockPredicate().test(((FabricBlockState) ((World) world).getTerraGenerator().getBlock((World) world, x, height - 1, z)).getHandle())) { + while(height >= ((World) world).getMinHeight() && !heightmap.getBlockPredicate().test(((FabricBlockState) ((World) world).getGenerator().getBlock((World) world, x, height - 1, z)).getHandle())) { height--; } return height; @@ -179,7 +179,7 @@ public class FabricChunkGeneratorWrapper extends ChunkGenerator implements Gener public VerticalBlockSample getColumnSample(int x, int z, HeightLimitView view) { BlockState[] array = new BlockState[view.getHeight()]; for(int y = view.getBottomY() + view.getHeight() - 1; y >= view.getBottomY(); y--) { - array[y] = ((FabricBlockState) ((World) world).getTerraGenerator().getBlock((World) world, x, y, z)).getHandle(); + array[y] = ((FabricBlockState) ((World) world).getGenerator().getBlock((World) world, x, y, z)).getHandle(); } return new VerticalBlockSample(view.getBottomY(), array); } From 6ea11de2fdcaa4e91e7e708dcd5af747f197026b Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 18:25:53 -0700 Subject: [PATCH 18/33] cleanup --- .../terrascript/buffer/items/BufferedEntity.java | 2 +- .../buffer/items/BufferedLootApplication.java | 2 +- .../com/dfsek/terra/api/config/WorldConfig.java | 2 ++ .../com/dfsek/terra/config/dummy/DummyWorld.java | 6 ++++++ .../dfsek/terra/config/pack/WorldConfigImpl.java | 6 ++++++ .../implementations/world/ChunkRegionMixin.java | 13 +------------ .../implementations/world/ServerWorldMixin.java | 14 ++++++++------ 7 files changed, 25 insertions(+), 20 deletions(-) diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedEntity.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedEntity.java index d32b73997..300b9c989 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedEntity.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedEntity.java @@ -21,6 +21,6 @@ public class BufferedEntity implements BufferedItem { @Override public void paste(Vector3 origin, World world) { Entity entity = world.spawnEntity(origin.clone().add(0.5, 0, 0.5), type); - main.getEventManager().callEvent(new EntitySpawnEvent(entity.world().getGenerator().getConfigPack(), entity)); + main.getEventManager().callEvent(new EntitySpawnEvent(entity.world().getConfig().getPack(), entity)); } } diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedLootApplication.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedLootApplication.java index 41b3e16cb..176184216 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedLootApplication.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedLootApplication.java @@ -33,7 +33,7 @@ public class BufferedLootApplication implements BufferedItem { } Container container = (Container) data; - LootPopulateEvent event = new LootPopulateEvent(container, table, world.getGenerator().getConfigPack(), structure); + LootPopulateEvent event = new LootPopulateEvent(container, table, world.getConfig().getPack(), structure); main.getEventManager().callEvent(event); if(event.isCancelled()) return; diff --git a/common/api/src/main/java/com/dfsek/terra/api/config/WorldConfig.java b/common/api/src/main/java/com/dfsek/terra/api/config/WorldConfig.java index a377412f4..cbcf9152b 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/config/WorldConfig.java +++ b/common/api/src/main/java/com/dfsek/terra/api/config/WorldConfig.java @@ -16,6 +16,8 @@ public interface WorldConfig { BiomeProvider getProvider(); + ConfigPack getPack(); + int elevationBlend(); boolean disableTrees(); diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java b/common/implementation/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java index 594d475ad..563450cb5 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java @@ -9,6 +9,7 @@ import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; +import com.dfsek.terra.api.world.generator.TerraChunkGenerator; public class DummyWorld implements World { @Override @@ -56,6 +57,11 @@ public class DummyWorld implements World { return 0; } + @Override + public TerraChunkGenerator getGenerator() { + throw new UnsupportedOperationException("Cannot get generator of DummyWorld"); + } + @Override public BiomeProvider getBiomeProvider() { throw new UnsupportedOperationException("Cannot get biome provider of DummyWorld"); diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/pack/WorldConfigImpl.java b/common/implementation/src/main/java/com/dfsek/terra/config/pack/WorldConfigImpl.java index 67bd76148..1f9b0e1e2 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/pack/WorldConfigImpl.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/pack/WorldConfigImpl.java @@ -1,6 +1,7 @@ package com.dfsek.terra.config.pack; import com.dfsek.terra.api.TerraPlugin; +import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.config.WorldConfig; import com.dfsek.terra.api.registry.Registry; import com.dfsek.terra.api.world.World; @@ -54,6 +55,11 @@ public class WorldConfigImpl implements WorldConfig { return provider; } + @Override + public ConfigPack getPack() { + return pack; + } + @Override public int elevationBlend() { return pack.getTemplate().getElevationBlend(); diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java index 694eb6b42..092ee9977 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java @@ -51,15 +51,9 @@ public abstract class ChunkRegionMixin { @Final private long seed; - @Shadow - public abstract boolean setBlockState(BlockPos pos, net.minecraft.block.BlockState state, int flags, int maxUpdateDepth); - @Shadow public abstract TickScheduler getFluidTickScheduler(); - @Shadow - public abstract ChunkManager getChunkManager(); - public int terraWorld$getMaxHeight() { return (((ChunkRegion) (Object) this).getBottomY()) + ((ChunkRegion) (Object) this).getHeight(); } @@ -69,11 +63,6 @@ public abstract class ChunkRegionMixin { this.config = ((World) world).getConfig(); } - @SuppressWarnings("deprecation") - public ChunkGenerator terraWorld$getGenerator() { - return (ChunkGenerator) ((ChunkRegion) (Object) this).toServerWorld().getChunkManager().getChunkGenerator(); - } - public Chunk terraWorld$getChunkAt(int x, int z) { return (Chunk) ((ChunkRegion) (Object) this).getChunk(x, z); } @@ -119,7 +108,7 @@ public abstract class ChunkRegionMixin { return this; } - public TerraChunkGenerator terraWorld$getTerraGenerator() { + public TerraChunkGenerator terraWorld$getGenerator() { return ((FabricChunkGeneratorWrapper) world.getChunkManager().getChunkGenerator()).getHandle(); } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java index 818db1322..b4234284b 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java @@ -18,6 +18,7 @@ import com.dfsek.terra.fabric.generation.TerraBiomeSource; import com.dfsek.terra.fabric.util.FabricUtil; import net.minecraft.server.MinecraftServer; import net.minecraft.server.WorldGenerationProgressListener; +import net.minecraft.server.world.ServerChunkManager; import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.BlockPos; import net.minecraft.util.registry.RegistryKey; @@ -28,6 +29,7 @@ import net.minecraft.world.dimension.DimensionType; import net.minecraft.world.gen.Spawner; import net.minecraft.world.level.ServerWorldProperties; import net.minecraft.world.level.storage.LevelStorage; +import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Implements; import org.spongepowered.asm.mixin.Interface; import org.spongepowered.asm.mixin.Intrinsic; @@ -47,6 +49,10 @@ public abstract class ServerWorldMixin { @Shadow public abstract long getSeed(); + @Shadow + @Final + private ServerChunkManager chunkManager; + @Inject(at = @At("RETURN"), method = "(Lnet/minecraft/server/MinecraftServer;Ljava/util/concurrent/Executor;Lnet/minecraft/world/level/storage/LevelStorage$Session;Lnet/minecraft/world/level/ServerWorldProperties;Lnet/minecraft/util/registry/RegistryKey;Lnet/minecraft/world/dimension/DimensionType;Lnet/minecraft/server/WorldGenerationProgressListener;Lnet/minecraft/world/gen/chunk/ChunkGenerator;ZJLjava/util/List;Z)V") public void injectConstructor(MinecraftServer server, Executor workerExecutor, LevelStorage.Session session, ServerWorldProperties properties, RegistryKey worldKey, DimensionType dimensionType, WorldGenerationProgressListener worldGenerationProgressListener, net.minecraft.world.gen.chunk.ChunkGenerator chunkGenerator, boolean debugWorld, long seed, List spawners, boolean shouldTickTime, CallbackInfo ci) { if(chunkGenerator instanceof FabricChunkGeneratorWrapper) { @@ -58,10 +64,6 @@ public abstract class ServerWorldMixin { return (((ServerWorld) (Object) this).getBottomY()) + ((ServerWorld) (Object) this).getHeight(); } - public ChunkGenerator terra$getGenerator() { - return (ChunkGenerator) ((ServerWorld) (Object) this).getChunkManager().getChunkGenerator(); - } - public Chunk terra$getChunkAt(int x, int z) { return (Chunk) ((ServerWorld) (Object) this).getChunk(x, z); } @@ -100,8 +102,8 @@ public abstract class ServerWorldMixin { return this; } - public TerraChunkGenerator terra$getTerraGenerator() { - return ((FabricChunkGeneratorWrapper) terra$getGenerator()).getHandle(); + public TerraChunkGenerator terra$getGenerator() { + return ((FabricChunkGeneratorWrapper) chunkManager.getChunkGenerator()).getHandle(); } public BiomeProvider terra$getBiomeProvider() { From b3f92410e07753c9dccb7f9c33e7bf2a3586a865 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 18:26:29 -0700 Subject: [PATCH 19/33] delete BukkitChunkGenerator --- .../generator/BukkitChunkGenerator.java | 21 ------------------- 1 file changed, 21 deletions(-) delete mode 100644 platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGenerator.java 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 deleted file mode 100644 index a040efad8..000000000 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGenerator.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.dfsek.terra.bukkit.generator; - -import com.dfsek.terra.api.block.state.BlockState; -import com.dfsek.terra.api.world.generator.ChunkData; -import com.dfsek.terra.bukkit.world.block.data.BukkitBlockState; -import org.bukkit.generator.ChunkGenerator; -import org.jetbrains.annotations.NotNull; - -public class BukkitChunkGenerator implements com.dfsek.terra.api.world.generator.ChunkGenerator { - private final ChunkGenerator delegate; - - public BukkitChunkGenerator(ChunkGenerator delegate) { - this.delegate = delegate; - } - - @Override - public ChunkGenerator getHandle() { - return delegate; - } - -} From 9bf7b373b103b1317caf55d9b82cab454ec9475f Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 18:27:30 -0700 Subject: [PATCH 20/33] delete GenWrapper --- .../com/dfsek/terra/platform/DirectWorld.java | 2 +- .../com/dfsek/terra/platform/GenWrapper.java | 18 ------------------ .../java/com/dfsek/terra/region/Generator.java | 4 +--- 3 files changed, 2 insertions(+), 22 deletions(-) delete mode 100644 platforms/region/src/main/java/com/dfsek/terra/platform/GenWrapper.java diff --git a/platforms/region/src/main/java/com/dfsek/terra/platform/DirectWorld.java b/platforms/region/src/main/java/com/dfsek/terra/platform/DirectWorld.java index 620aa5a54..de8b0a58f 100644 --- a/platforms/region/src/main/java/com/dfsek/terra/platform/DirectWorld.java +++ b/platforms/region/src/main/java/com/dfsek/terra/platform/DirectWorld.java @@ -24,7 +24,7 @@ public class DirectWorld implements World { private final GenWrapper generator; private final Map files = Collections.synchronizedMap(new HashMap<>()); - public DirectWorld(long seed, GenWrapper generator) { + public DirectWorld(long seed) { this.seed = seed; this.generator = generator; } 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 deleted file mode 100644 index a093ebe95..000000000 --- a/platforms/region/src/main/java/com/dfsek/terra/platform/GenWrapper.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.dfsek.terra.platform; - -import com.dfsek.terra.api.world.generator.ChunkGenerator; -import com.dfsek.terra.api.world.generator.TerraChunkGenerator; - -public class GenWrapper implements ChunkGenerator { - private final TerraChunkGenerator generator; - - public GenWrapper(TerraChunkGenerator generator) { - this.generator = generator; - } - - @Override - public Object getHandle() { - return generator; - } - -} diff --git a/platforms/region/src/main/java/com/dfsek/terra/region/Generator.java b/platforms/region/src/main/java/com/dfsek/terra/region/Generator.java index 6a674000e..1c88db64c 100644 --- a/platforms/region/src/main/java/com/dfsek/terra/region/Generator.java +++ b/platforms/region/src/main/java/com/dfsek/terra/region/Generator.java @@ -4,7 +4,6 @@ import com.dfsek.terra.StandalonePlugin; import com.dfsek.terra.api.world.generator.TerraChunkGenerator; import com.dfsek.terra.platform.DirectChunkData; import com.dfsek.terra.platform.DirectWorld; -import com.dfsek.terra.platform.GenWrapper; import net.querz.mca.MCAFile; import net.querz.mca.MCAUtil; @@ -28,8 +27,7 @@ public class Generator { System.out.println("Total mem: " + Runtime.getRuntime().maxMemory() / 1024 / 1024 / 1024 + "GB"); - GenWrapper wrapper = new GenWrapper(generator); - DirectWorld world = new DirectWorld(seed, wrapper); + DirectWorld world = new DirectWorld(seed, null); long l = System.nanoTime(); int count = 0; From 8ae457b251d8ab8d293f935bbdaf4ac03f673a7c Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 18:28:50 -0700 Subject: [PATCH 21/33] remove region buildscript --- platforms/region/{build.gradle.kts => build.gradle.kts.old} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename platforms/region/{build.gradle.kts => build.gradle.kts.old} (100%) diff --git a/platforms/region/build.gradle.kts b/platforms/region/build.gradle.kts.old similarity index 100% rename from platforms/region/build.gradle.kts rename to platforms/region/build.gradle.kts.old From cdcbd28aa0a0a44fe7326dd98f65737f8bdfd147 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 18:29:16 -0700 Subject: [PATCH 22/33] remove sponge buildscript --- platforms/sponge/{build.gradle.kts => build.gradle.kts.old} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename platforms/sponge/{build.gradle.kts => build.gradle.kts.old} (100%) diff --git a/platforms/sponge/build.gradle.kts b/platforms/sponge/build.gradle.kts.old similarity index 100% rename from platforms/sponge/build.gradle.kts rename to platforms/sponge/build.gradle.kts.old From f659c32749cf0261a78606c11e1c966c7d9c88a6 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 18:30:09 -0700 Subject: [PATCH 23/33] delete ChunkGenerator --- .../api/src/main/java/com/dfsek/terra/api/world/World.java | 2 -- .../dfsek/terra/api/world/generator/ChunkGenerator.java | 7 ------- .../mixin/implementations/world/ChunkRegionMixin.java | 3 --- .../mixin/implementations/world/ServerWorldMixin.java | 3 --- 4 files changed, 15 deletions(-) delete mode 100644 common/api/src/main/java/com/dfsek/terra/api/world/generator/ChunkGenerator.java diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/World.java b/common/api/src/main/java/com/dfsek/terra/api/world/World.java index 6dd19db6f..c67721a72 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/World.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/World.java @@ -8,8 +8,6 @@ import com.dfsek.terra.api.entity.Entity; import com.dfsek.terra.api.entity.EntityType; import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import com.dfsek.terra.api.world.generator.ChunkGenerator; -import com.dfsek.terra.api.world.generator.GeneratorWrapper; import com.dfsek.terra.api.world.generator.TerraChunkGenerator; public interface World extends Handle { diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/generator/ChunkGenerator.java b/common/api/src/main/java/com/dfsek/terra/api/world/generator/ChunkGenerator.java deleted file mode 100644 index 59c8a1678..000000000 --- a/common/api/src/main/java/com/dfsek/terra/api/world/generator/ChunkGenerator.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.dfsek.terra.api.world.generator; - -import com.dfsek.terra.api.Handle; - -public interface ChunkGenerator extends Handle { - -} diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java index 092ee9977..67cb8d21f 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java @@ -9,8 +9,6 @@ import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import com.dfsek.terra.api.world.generator.ChunkGenerator; -import com.dfsek.terra.api.world.generator.GeneratorWrapper; import com.dfsek.terra.api.world.generator.TerraChunkGenerator; import com.dfsek.terra.fabric.block.FabricBlockState; import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper; @@ -24,7 +22,6 @@ import net.minecraft.world.ChunkRegion; import net.minecraft.world.ServerWorldAccess; import net.minecraft.world.TickScheduler; import net.minecraft.world.WorldAccess; -import net.minecraft.world.chunk.ChunkManager; import net.minecraft.world.chunk.ChunkStatus; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Implements; diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java index b4234284b..49feb92e6 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java @@ -9,8 +9,6 @@ import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import com.dfsek.terra.api.world.generator.ChunkGenerator; -import com.dfsek.terra.api.world.generator.GeneratorWrapper; import com.dfsek.terra.api.world.generator.TerraChunkGenerator; import com.dfsek.terra.fabric.block.FabricBlockState; import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper; @@ -22,7 +20,6 @@ import net.minecraft.server.world.ServerChunkManager; import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.BlockPos; import net.minecraft.util.registry.RegistryKey; -import net.minecraft.world.ChunkRegion; import net.minecraft.world.ServerWorldAccess; import net.minecraft.world.WorldAccess; import net.minecraft.world.dimension.DimensionType; From 4da5ce748dec592d1995ee4046461ce116ac148c Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 18:30:44 -0700 Subject: [PATCH 24/33] TerraChunkGenerator -> ChunkGenerator --- .../generators/NoiseChunkGenerator3D.java | 4 ++-- .../main/java/com/dfsek/terra/api/world/World.java | 4 ++-- ...TerraChunkGenerator.java => ChunkGenerator.java} | 2 +- .../api/world/generator/ChunkGeneratorProvider.java | 2 +- .../terra/api/world/generator/GeneratorWrapper.java | 2 +- .../com/dfsek/terra/config/dummy/DummyWorld.java | 4 ++-- .../com/dfsek/terra/bukkit/TerraBukkitPlugin.java | 2 +- .../generator/BukkitChunkGeneratorWrapper.java | 11 +++++------ .../bukkit/generator/BukkitPopulatorWrapper.java | 6 +++--- .../terra/bukkit/population/PopulationManager.java | 6 +++--- .../generation/FabricChunkGeneratorWrapper.java | 13 ++++++------- .../implementations/world/ChunkRegionMixin.java | 4 ++-- .../implementations/world/ServerWorldMixin.java | 4 ++-- 13 files changed, 31 insertions(+), 33 deletions(-) rename common/api/src/main/java/com/dfsek/terra/api/world/generator/{TerraChunkGenerator.java => ChunkGenerator.java} (96%) diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java index 07c2eda3a..3f9e33032 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java @@ -18,7 +18,7 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.ChunkData; import com.dfsek.terra.api.world.generator.Palette; import com.dfsek.terra.api.world.generator.Sampler; -import com.dfsek.terra.api.world.generator.TerraChunkGenerator; +import com.dfsek.terra.api.world.generator.ChunkGenerator; import com.dfsek.terra.api.world.generator.GenerationStage; import net.jafama.FastMath; import org.jetbrains.annotations.NotNull; @@ -27,7 +27,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Random; -public class NoiseChunkGenerator3D implements TerraChunkGenerator { +public class NoiseChunkGenerator3D implements ChunkGenerator { private final ConfigPack configPack; private final TerraPlugin main; private final List generationStages = new ArrayList<>(); diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/World.java b/common/api/src/main/java/com/dfsek/terra/api/world/World.java index c67721a72..63621f94a 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/World.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/World.java @@ -8,7 +8,7 @@ import com.dfsek.terra.api.entity.Entity; import com.dfsek.terra.api.entity.EntityType; import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import com.dfsek.terra.api.world.generator.TerraChunkGenerator; +import com.dfsek.terra.api.world.generator.ChunkGenerator; public interface World extends Handle { long getSeed(); @@ -51,7 +51,7 @@ public interface World extends Handle { int getMinHeight(); - TerraChunkGenerator getGenerator(); + ChunkGenerator getGenerator(); BiomeProvider getBiomeProvider(); diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/generator/TerraChunkGenerator.java b/common/api/src/main/java/com/dfsek/terra/api/world/generator/ChunkGenerator.java similarity index 96% rename from common/api/src/main/java/com/dfsek/terra/api/world/generator/TerraChunkGenerator.java rename to common/api/src/main/java/com/dfsek/terra/api/world/generator/ChunkGenerator.java index 390a00a72..5b68a50e1 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/generator/TerraChunkGenerator.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/generator/ChunkGenerator.java @@ -12,7 +12,7 @@ import org.jetbrains.annotations.NotNull; import java.util.List; import java.util.Random; -public interface TerraChunkGenerator { +public interface ChunkGenerator { 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/api/src/main/java/com/dfsek/terra/api/world/generator/ChunkGeneratorProvider.java b/common/api/src/main/java/com/dfsek/terra/api/world/generator/ChunkGeneratorProvider.java index 7f3e71443..e68f79444 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/generator/ChunkGeneratorProvider.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/generator/ChunkGeneratorProvider.java @@ -3,5 +3,5 @@ package com.dfsek.terra.api.world.generator; import com.dfsek.terra.api.config.ConfigPack; public interface ChunkGeneratorProvider { - TerraChunkGenerator newInstance(ConfigPack pack); + ChunkGenerator newInstance(ConfigPack pack); } diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/generator/GeneratorWrapper.java b/common/api/src/main/java/com/dfsek/terra/api/world/generator/GeneratorWrapper.java index 0b6cac8e4..e48dda224 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/generator/GeneratorWrapper.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/generator/GeneratorWrapper.java @@ -4,5 +4,5 @@ import com.dfsek.terra.api.Handle; public interface GeneratorWrapper extends Handle { @Override - TerraChunkGenerator getHandle(); + ChunkGenerator getHandle(); } diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java b/common/implementation/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java index 563450cb5..eef632f69 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java @@ -9,7 +9,7 @@ import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import com.dfsek.terra.api.world.generator.TerraChunkGenerator; +import com.dfsek.terra.api.world.generator.ChunkGenerator; public class DummyWorld implements World { @Override @@ -58,7 +58,7 @@ public class DummyWorld implements World { } @Override - public TerraChunkGenerator getGenerator() { + public ChunkGenerator getGenerator() { throw new UnsupportedOperationException("Cannot get generator of DummyWorld"); } 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 7a3b0ffc4..f1e51d032 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 @@ -74,7 +74,7 @@ public class TerraBukkitPlugin extends JavaPlugin implements TerraPlugin { else BUKKIT_VERSION = BukkitVersion.UNKNOWN; } - private final Map generatorMap = new HashMap<>(); + private final Map generatorMap = new HashMap<>(); private final Map worlds = new HashMap<>(); private final Profiler profiler = new ProfilerImpl(); private final ConfigRegistry registry = new ConfigRegistry(); 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 33a22b1f9..ec5dcb422 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 @@ -3,13 +3,12 @@ package com.dfsek.terra.bukkit.generator; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.generator.GeneratorWrapper; -import com.dfsek.terra.api.world.generator.TerraChunkGenerator; +import com.dfsek.terra.api.world.generator.ChunkGenerator; import com.dfsek.terra.bukkit.population.PopulationManager; import com.dfsek.terra.bukkit.world.BukkitAdapter; import com.dfsek.terra.bukkit.world.BukkitBiomeGrid; import org.bukkit.World; import org.bukkit.generator.BlockPopulator; -import org.bukkit.generator.ChunkGenerator; import org.jetbrains.annotations.NotNull; import java.io.FileNotFoundException; @@ -20,19 +19,19 @@ import java.util.List; import java.util.Map; import java.util.Random; -public class BukkitChunkGeneratorWrapper extends ChunkGenerator implements GeneratorWrapper { +public class BukkitChunkGeneratorWrapper extends org.bukkit.generator.ChunkGenerator implements GeneratorWrapper { private static final Map popMap = new HashMap<>(); private final PopulationManager popMan; - private final TerraChunkGenerator delegate; + private final ChunkGenerator delegate; private final TerraPlugin main; private boolean needsLoad = true; - public BukkitChunkGeneratorWrapper(TerraChunkGenerator delegate) { + public BukkitChunkGeneratorWrapper(ChunkGenerator delegate) { this.delegate = delegate; this.main = delegate.getMain(); this.popMan = new PopulationManager(delegate, main); @@ -105,7 +104,7 @@ public class BukkitChunkGeneratorWrapper extends ChunkGenerator implements Gener } @Override - public TerraChunkGenerator getHandle() { + public ChunkGenerator getHandle() { return delegate; } } diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitPopulatorWrapper.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitPopulatorWrapper.java index 731e03bc6..6ab0626c1 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitPopulatorWrapper.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitPopulatorWrapper.java @@ -1,7 +1,7 @@ package com.dfsek.terra.bukkit.generator; import com.dfsek.terra.api.world.generator.Chunkified; -import com.dfsek.terra.api.world.generator.TerraChunkGenerator; +import com.dfsek.terra.api.world.generator.ChunkGenerator; import com.dfsek.terra.bukkit.world.BukkitAdapter; import org.bukkit.Chunk; import org.bukkit.World; @@ -11,9 +11,9 @@ import org.jetbrains.annotations.NotNull; import java.util.Random; public class BukkitPopulatorWrapper extends BlockPopulator { - private final TerraChunkGenerator delegate; + private final ChunkGenerator delegate; - public BukkitPopulatorWrapper(TerraChunkGenerator delegate) { + public BukkitPopulatorWrapper(ChunkGenerator delegate) { this.delegate = delegate; } diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/population/PopulationManager.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/population/PopulationManager.java index 7c8bb5712..4aef275da 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/population/PopulationManager.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/population/PopulationManager.java @@ -5,7 +5,7 @@ import com.dfsek.terra.api.profiler.ProfileFrame; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.generator.Chunkified; -import com.dfsek.terra.api.world.generator.TerraChunkGenerator; +import com.dfsek.terra.api.world.generator.ChunkGenerator; import com.dfsek.terra.bukkit.TerraBukkitPlugin; import com.dfsek.terra.bukkit.world.BukkitAdapter; import com.dfsek.terra.bukkit.world.BukkitWorld; @@ -22,11 +22,11 @@ import java.util.Random; * Cursed management class for the horrors of Bukkit population */ public class PopulationManager extends BlockPopulator { - private final TerraChunkGenerator generator; + private final ChunkGenerator generator; private final HashSet needsPop = new HashSet<>(); private final TerraPlugin main; - public PopulationManager(TerraChunkGenerator generator, TerraPlugin main) { + public PopulationManager(ChunkGenerator generator, TerraPlugin main) { this.generator = generator; this.main = main; } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java index 102c50f61..ff3061c02 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java @@ -5,7 +5,7 @@ import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.generator.ChunkData; import com.dfsek.terra.api.world.generator.Chunkified; import com.dfsek.terra.api.world.generator.GeneratorWrapper; -import com.dfsek.terra.api.world.generator.TerraChunkGenerator; +import com.dfsek.terra.api.world.generator.ChunkGenerator; import com.dfsek.terra.fabric.TerraFabricPlugin; import com.dfsek.terra.fabric.block.FabricBlockState; import com.dfsek.terra.fabric.mixin.StructureAccessorAccessor; @@ -31,7 +31,6 @@ import net.minecraft.world.chunk.Chunk; import net.minecraft.world.gen.ChunkRandom; import net.minecraft.world.gen.GenerationStep; import net.minecraft.world.gen.StructureAccessor; -import net.minecraft.world.gen.chunk.ChunkGenerator; import net.minecraft.world.gen.chunk.StructuresConfig; import net.minecraft.world.gen.chunk.VerticalBlockSample; import net.minecraft.world.gen.feature.StructureFeature; @@ -40,7 +39,7 @@ import org.jetbrains.annotations.Nullable; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executor; -public class FabricChunkGeneratorWrapper extends ChunkGenerator implements GeneratorWrapper { +public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.ChunkGenerator implements GeneratorWrapper { public static final Codec PACK_CODEC = RecordCodecBuilder.create( config -> config.group( Codec.STRING.fieldOf("pack") @@ -59,7 +58,7 @@ public class FabricChunkGeneratorWrapper extends ChunkGenerator implements Gener ); private final long seed; - private final TerraChunkGenerator delegate; + private final ChunkGenerator delegate; private final TerraBiomeSource biomeSource; private final ConfigPack pack; @@ -78,12 +77,12 @@ public class FabricChunkGeneratorWrapper extends ChunkGenerator implements Gener @Override - protected Codec getCodec() { + protected Codec getCodec() { return CODEC; } @Override - public ChunkGenerator withSeed(long seed) { + public net.minecraft.world.gen.chunk.ChunkGenerator withSeed(long seed) { return new FabricChunkGeneratorWrapper((TerraBiomeSource) this.biomeSource.withSeed(seed), seed, pack); } @@ -225,7 +224,7 @@ public class FabricChunkGeneratorWrapper extends ChunkGenerator implements Gener } @Override - public TerraChunkGenerator getHandle() { + public ChunkGenerator getHandle() { return delegate; } } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java index 67cb8d21f..0cfedc3d5 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ChunkRegionMixin.java @@ -9,7 +9,7 @@ import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import com.dfsek.terra.api.world.generator.TerraChunkGenerator; +import com.dfsek.terra.api.world.generator.ChunkGenerator; import com.dfsek.terra.fabric.block.FabricBlockState; import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper; import com.dfsek.terra.fabric.generation.TerraBiomeSource; @@ -105,7 +105,7 @@ public abstract class ChunkRegionMixin { return this; } - public TerraChunkGenerator terraWorld$getGenerator() { + public ChunkGenerator terraWorld$getGenerator() { return ((FabricChunkGeneratorWrapper) world.getChunkManager().getChunkGenerator()).getHandle(); } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java index 49feb92e6..b66f64603 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/world/ServerWorldMixin.java @@ -9,7 +9,7 @@ import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import com.dfsek.terra.api.world.generator.TerraChunkGenerator; +import com.dfsek.terra.api.world.generator.ChunkGenerator; import com.dfsek.terra.fabric.block.FabricBlockState; import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper; import com.dfsek.terra.fabric.generation.TerraBiomeSource; @@ -99,7 +99,7 @@ public abstract class ServerWorldMixin { return this; } - public TerraChunkGenerator terra$getGenerator() { + public ChunkGenerator terra$getGenerator() { return ((FabricChunkGeneratorWrapper) chunkManager.getChunkGenerator()).getHandle(); } From 2f9387fbf0cdb792b418dc2008807177de8641a8 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 18:33:50 -0700 Subject: [PATCH 25/33] refactor BiomeSource to pipeline addon --- .../dfsek/terra/addons/biome/pipeline/BiomeHolderImpl.java | 2 +- .../com/dfsek/terra/addons/biome/pipeline/BiomePipeline.java | 2 +- .../terra/addons/biome/pipeline/BiomePipelineAddon.java | 5 +++-- .../dfsek/terra/addons/biome/pipeline/api/BiomeHolder.java | 2 +- .../addons/biome/pipeline/config/BiomePipelineTemplate.java | 2 +- .../addons/biome/pipeline/config/NoiseSourceTemplate.java | 2 +- .../terra/addons/biome/pipeline/config/SourceLoader.java | 2 +- .../terra/addons/biome/pipeline/config/SourceTemplate.java | 2 +- .../terra/addons/biome/pipeline/source}/BiomeSource.java | 2 +- .../terra/addons/biome/pipeline/source/NoiseSource.java | 1 - .../src/main/java/com/dfsek/terra/config/GenericLoaders.java | 4 +--- 11 files changed, 12 insertions(+), 14 deletions(-) rename common/{api/src/main/java/com/dfsek/terra/api/world/biome/generation/pipeline => addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/source}/BiomeSource.java (74%) diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomeHolderImpl.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomeHolderImpl.java index aff69c8b1..3044cd1b9 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomeHolderImpl.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomeHolderImpl.java @@ -5,7 +5,7 @@ import com.dfsek.terra.addons.biome.pipeline.api.BiomeHolder; import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator; import com.dfsek.terra.api.vector.Vector2; import com.dfsek.terra.api.world.biome.TerraBiome; -import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource; +import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource; public class BiomeHolderImpl implements BiomeHolder { private final Vector2 origin; diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipeline.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipeline.java index e16920325..d5266bb15 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipeline.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipeline.java @@ -3,7 +3,7 @@ package com.dfsek.terra.addons.biome.pipeline; import com.dfsek.terra.addons.biome.pipeline.api.BiomeHolder; import com.dfsek.terra.addons.biome.pipeline.api.Stage; import com.dfsek.terra.api.vector.Vector2; -import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource; +import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource; import java.util.ArrayList; import java.util.List; diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineAddon.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineAddon.java index 07d86de35..e1bec650b 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineAddon.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineAddon.java @@ -30,7 +30,7 @@ import com.dfsek.terra.api.event.functional.FunctionalEventHandler; import com.dfsek.terra.api.injection.annotations.Inject; import com.dfsek.terra.api.util.reflection.TypeKey; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource; +import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource; @Addon("biome-provider-pipeline") @Author("Terra") @@ -59,7 +59,8 @@ public class BiomePipelineAddon extends TerraAddon { .applyLoader(SmoothMutator.class, SmoothMutatorTemplate::new) .applyLoader(ExpanderStage.class, ExpanderStageTemplate::new) .applyLoader(BiomePipelineProvider.class, () -> new BiomePipelineTemplate(main)) - .applyLoader(BIOME_PROVIDER_BUILDER_TOKEN.getType(), new BiomeProviderLoader())) + .applyLoader(BIOME_PROVIDER_BUILDER_TOKEN.getType(), new BiomeProviderLoader()) + .applyLoader(BiomeSource.Type.class, (t, object, cf) -> BiomeSource.Type.valueOf((String) object))) .failThrough(); } } diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/BiomeHolder.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/BiomeHolder.java index 1757176a1..1d57ba616 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/BiomeHolder.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/BiomeHolder.java @@ -1,7 +1,7 @@ package com.dfsek.terra.addons.biome.pipeline.api; import com.dfsek.terra.api.world.biome.TerraBiome; -import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource; +import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource; public interface BiomeHolder { BiomeHolder expand(BiomeExpander expander, long seed); diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/BiomePipelineTemplate.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/BiomePipelineTemplate.java index 3c3183325..bc35d9a01 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/BiomePipelineTemplate.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/BiomePipelineTemplate.java @@ -8,7 +8,7 @@ import com.dfsek.terra.addons.biome.pipeline.api.Stage; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource; +import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource; import java.util.List; diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/NoiseSourceTemplate.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/NoiseSourceTemplate.java index 84a2c573b..042253fe6 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/NoiseSourceTemplate.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/NoiseSourceTemplate.java @@ -6,7 +6,7 @@ import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.world.biome.TerraBiome; -import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource; +import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource; public class NoiseSourceTemplate extends SourceTemplate { @Value("noise") diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/SourceLoader.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/SourceLoader.java index 792f5455b..4a3aa65fd 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/SourceLoader.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/SourceLoader.java @@ -4,7 +4,7 @@ import com.dfsek.tectonic.exception.LoadException; import com.dfsek.tectonic.loading.ConfigLoader; import com.dfsek.tectonic.loading.TypeLoader; import com.dfsek.terra.addons.biome.pipeline.source.NoiseSource; -import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource; +import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource; import java.lang.reflect.AnnotatedType; import java.util.Map; diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/SourceTemplate.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/SourceTemplate.java index c85785ec1..c9a41e949 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/SourceTemplate.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/SourceTemplate.java @@ -1,7 +1,7 @@ package com.dfsek.terra.addons.biome.pipeline.config; import com.dfsek.tectonic.loading.object.ObjectTemplate; -import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource; +import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource; public abstract class SourceTemplate implements ObjectTemplate{ diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/pipeline/BiomeSource.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/source/BiomeSource.java similarity index 74% rename from common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/pipeline/BiomeSource.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/source/BiomeSource.java index 6c6cc3629..fc8df18b0 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/pipeline/BiomeSource.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/source/BiomeSource.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.api.world.biome.generation.pipeline; +package com.dfsek.terra.addons.biome.pipeline.source; import com.dfsek.terra.api.world.biome.TerraBiome; diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/source/NoiseSource.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/source/NoiseSource.java index 9edc2859f..1ae08b7b8 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/source/NoiseSource.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/source/NoiseSource.java @@ -3,7 +3,6 @@ package com.dfsek.terra.addons.biome.pipeline.source; import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.world.biome.TerraBiome; -import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource; public class NoiseSource implements BiomeSource { private final ProbabilityCollection biomes; diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/GenericLoaders.java b/common/implementation/src/main/java/com/dfsek/terra/config/GenericLoaders.java index 4c6b447d5..169986768 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/GenericLoaders.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/GenericLoaders.java @@ -9,7 +9,6 @@ import com.dfsek.terra.api.tectonic.LoaderRegistrar; import com.dfsek.terra.api.util.Range; import com.dfsek.terra.api.util.collection.MaterialSet; import com.dfsek.terra.api.util.collection.ProbabilityCollection; -import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource; import com.dfsek.terra.config.loaders.LinkedHashMapLoader; import com.dfsek.terra.config.loaders.MaterialSetLoader; import com.dfsek.terra.config.loaders.ProbabilityCollectionLoader; @@ -29,8 +28,7 @@ public class GenericLoaders implements LoaderRegistrar { registry.registerLoader(ProbabilityCollection.class, new ProbabilityCollectionLoader()) .registerLoader(Range.class, new RangeLoader()) .registerLoader(MaterialSet.class, new MaterialSetLoader()) - .registerLoader(LinkedHashMap.class, new LinkedHashMapLoader()) - .registerLoader(BiomeSource.Type.class, (t, object, cf) -> BiomeSource.Type.valueOf((String) object)); + .registerLoader(LinkedHashMap.class, new LinkedHashMapLoader()); if(main != null) { registry.registerLoader(TerraAddon.class, main.getAddons()) From be9e817c889179cf015d6e15fd5916a316897901 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 18:35:10 -0700 Subject: [PATCH 26/33] Generator -> GenerationSettings --- .../addons/chunkgenerator/PaletteUtil.java | 4 ++-- .../generators/NoiseChunkGenerator3D.java | 6 +++--- .../interpolation/ChunkInterpolator2D.java | 18 +++++++++--------- .../interpolation/ChunkInterpolator3D.java | 18 +++++++++--------- .../interpolation/ElevationInterpolator.java | 6 +++--- .../dfsek/terra/addons/biome/BiomeFactory.java | 2 +- .../terra/addons/biome/UserDefinedBiome.java | 8 ++++---- ...java => UserDefinedGenerationSettings.java} | 8 +++----- ...{Generator.java => GenerationSettings.java} | 2 +- .../terra/api/world/biome/TerraBiome.java | 2 +- .../api/world/generator/ChunkInterpolator.java | 10 +++++----- 11 files changed, 41 insertions(+), 43 deletions(-) rename common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/{UserDefinedGenerator.java => UserDefinedGenerationSettings.java} (76%) rename common/api/src/main/java/com/dfsek/terra/api/world/biome/{Generator.java => GenerationSettings.java} (94%) diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/PaletteUtil.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/PaletteUtil.java index 99090f03e..1b370cfeb 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/PaletteUtil.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/PaletteUtil.java @@ -3,12 +3,12 @@ package com.dfsek.terra.addons.chunkgenerator; import com.dfsek.terra.addons.chunkgenerator.palette.PaletteInfo; import com.dfsek.terra.addons.chunkgenerator.palette.SlantHolder; import com.dfsek.terra.api.util.MathUtil; -import com.dfsek.terra.api.world.biome.Generator; +import com.dfsek.terra.api.world.biome.GenerationSettings; import com.dfsek.terra.api.world.generator.Palette; import com.dfsek.terra.api.world.generator.Sampler; public final class PaletteUtil { - public static Palette getPalette(int x, int y, int z, Generator c, Sampler sampler, PaletteInfo paletteInfo) { + public static Palette getPalette(int x, int y, int z, GenerationSettings c, Sampler sampler, PaletteInfo paletteInfo) { SlantHolder slant = paletteInfo.getSlantHolder(); if(slant != null) { double slope = MathUtil.derivative(sampler, x, y, z); diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java index 3f9e33032..55b33fc96 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java @@ -12,7 +12,7 @@ import com.dfsek.terra.api.profiler.ProfileFrame; import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.BiomeGrid; import com.dfsek.terra.api.world.World; -import com.dfsek.terra.api.world.biome.Generator; +import com.dfsek.terra.api.world.biome.GenerationSettings; import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.ChunkData; @@ -98,7 +98,7 @@ public class NoiseChunkGenerator3D implements ChunkGenerator { main.logger().info("null palette: " + biome.getID()); } - Generator generator = biome.getGenerator(world); + GenerationSettings generationSettings = biome.getGenerator(world); int sea = paletteInfo.getSeaLevel(); Palette seaPalette = paletteInfo.getOcean(); @@ -109,7 +109,7 @@ public class NoiseChunkGenerator3D implements ChunkGenerator { if(sampler.sample(x, y, z) > 0) { justSet = true; - data = PaletteUtil.getPalette(x, y, z, generator, sampler, paletteInfo).get(paletteLevel, cx, y, cz, seed); + data = PaletteUtil.getPalette(x, y, z, generationSettings, sampler, paletteInfo).get(paletteLevel, cx, y, cz, seed); chunk.setBlock(x, y, z, data); paletteLevel++; diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator2D.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator2D.java index 72c83a804..ee4c96414 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator2D.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator2D.java @@ -3,7 +3,7 @@ package com.dfsek.terra.addons.chunkgenerator.generation.math.interpolation; import com.dfsek.terra.api.util.mutable.MutableInteger; import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.World; -import com.dfsek.terra.api.world.biome.Generator; +import com.dfsek.terra.api.world.biome.GenerationSettings; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.ChunkInterpolator; import net.jafama.FastMath; @@ -18,7 +18,7 @@ import java.util.function.BiFunction; */ public class ChunkInterpolator2D implements ChunkInterpolator { private final Interpolator[][] interpGrid = new Interpolator[4][4]; - private final BiFunction noiseGetter; + private final BiFunction noiseGetter; /** * Instantiates a 3D ChunkInterpolator3D at a pair of chunk coordinates. @@ -27,7 +27,7 @@ public class ChunkInterpolator2D implements ChunkInterpolator { * @param chunkZ Z coordinate of the chunk. * @param provider Biome Provider to use for biome fetching. */ - public ChunkInterpolator2D(World w, int chunkX, int chunkZ, BiomeProvider provider, BiFunction noiseGetter) { + public ChunkInterpolator2D(World w, int chunkX, int chunkZ, BiomeProvider provider, BiFunction noiseGetter) { this.noiseGetter = noiseGetter; int xOrigin = chunkX << 4; int zOrigin = chunkZ << 4; @@ -38,11 +38,11 @@ public class ChunkInterpolator2D implements ChunkInterpolator { for(int x = 0; x < 5; x++) { for(int z = 0; z < 5; z++) { - Generator generator = provider.getBiome(xOrigin + (x << 2), zOrigin + (z << 2), seed).getGenerator(w); - Map genMap = new HashMap<>(); + GenerationSettings generationSettings = provider.getBiome(xOrigin + (x << 2), zOrigin + (z << 2), seed).getGenerator(w); + Map genMap = new HashMap<>(); - int step = generator.getBlendStep(); - int blend = generator.getBlendDistance(); + int step = generationSettings.getBlendStep(); + int blend = generationSettings.getBlendDistance(); for(int xi = -blend; xi <= blend; xi++) { for(int zi = -blend; zi <= blend; zi++) { @@ -69,8 +69,8 @@ public class ChunkInterpolator2D implements ChunkInterpolator { return FastMath.max(FastMath.min(value, high), 0); } - public double computeNoise(Generator generator, double x, double y, double z) { - return noiseGetter.apply(generator, new Vector3(x, y, z)); + public double computeNoise(GenerationSettings generationSettings, double x, double y, double z) { + return noiseGetter.apply(generationSettings, new Vector3(x, y, z)); } /** diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator3D.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator3D.java index 4841398c8..2ee695885 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator3D.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator3D.java @@ -3,7 +3,7 @@ package com.dfsek.terra.addons.chunkgenerator.generation.math.interpolation; import com.dfsek.terra.api.util.mutable.MutableInteger; import com.dfsek.terra.api.vector.Vector3; import com.dfsek.terra.api.world.World; -import com.dfsek.terra.api.world.biome.Generator; +import com.dfsek.terra.api.world.biome.GenerationSettings; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.ChunkInterpolator; import net.jafama.FastMath; @@ -18,7 +18,7 @@ import java.util.function.BiFunction; */ public class ChunkInterpolator3D implements ChunkInterpolator { private final Interpolator3[][][] interpGrid; - private final BiFunction noiseGetter; + private final BiFunction noiseGetter; private final int min; private final int max; @@ -30,7 +30,7 @@ public class ChunkInterpolator3D implements ChunkInterpolator { * @param chunkZ Z coordinate of the chunk. * @param provider Biome Provider to use for biome fetching. */ - public ChunkInterpolator3D(World w, int chunkX, int chunkZ, BiomeProvider provider, BiFunction noiseGetter) { + public ChunkInterpolator3D(World w, int chunkX, int chunkZ, BiomeProvider provider, BiFunction noiseGetter) { this.noiseGetter = noiseGetter; int xOrigin = chunkX << 4; int zOrigin = chunkZ << 4; @@ -49,11 +49,11 @@ public class ChunkInterpolator3D implements ChunkInterpolator { for(int x = 0; x < 5; x++) { for(int z = 0; z < 5; z++) { - Generator generator = provider.getBiome(xOrigin + (x << 2), zOrigin + (z << 2), seed).getGenerator(w); - Map genMap = new HashMap<>(); + GenerationSettings generationSettings = provider.getBiome(xOrigin + (x << 2), zOrigin + (z << 2), seed).getGenerator(w); + Map genMap = new HashMap<>(); - int step = generator.getBlendStep(); - int blend = generator.getBlendDistance(); + int step = generationSettings.getBlendStep(); + int blend = generationSettings.getBlendDistance(); for(int xi = -blend; xi <= blend; xi++) { for(int zi = -blend; zi <= blend; zi++) { @@ -88,8 +88,8 @@ public class ChunkInterpolator3D implements ChunkInterpolator { return FastMath.max(FastMath.min(value, high), 0); } - public double computeNoise(Generator generator, double x, double y, double z) { - return noiseGetter.apply(generator, new Vector3(x, y, z)); + public double computeNoise(GenerationSettings generationSettings, double x, double y, double z) { + return noiseGetter.apply(generationSettings, new Vector3(x, y, z)); } /** diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ElevationInterpolator.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ElevationInterpolator.java index 53a10f345..e5ee87b88 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ElevationInterpolator.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ElevationInterpolator.java @@ -1,7 +1,7 @@ package com.dfsek.terra.addons.chunkgenerator.generation.math.interpolation; import com.dfsek.terra.api.world.World; -import com.dfsek.terra.api.world.biome.Generator; +import com.dfsek.terra.api.world.biome.GenerationSettings; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; public class ElevationInterpolator { @@ -13,7 +13,7 @@ public class ElevationInterpolator { long seed = world.getSeed(); - Generator[][] gens = new Generator[18 + 2 * smooth][18 + 2 * smooth]; + GenerationSettings[][] gens = new GenerationSettings[18 + 2 * smooth][18 + 2 * smooth]; // Precompute generators. for(int x = -1 - smooth; x <= 16 + smooth; x++) { @@ -28,7 +28,7 @@ public class ElevationInterpolator { double div = 0; for(int xi = -smooth; xi <= smooth; xi++) { for(int zi = -smooth; zi <= smooth; zi++) { - Generator gen = gens[x + 1 + smooth + xi][z + 1 + smooth + zi]; + GenerationSettings gen = gens[x + 1 + smooth + xi][z + 1 + smooth + zi]; noise += gen.getElevationSampler().getNoiseSeeded(seed, xOrigin + x, zOrigin + z) * gen.getElevationWeight(); div += gen.getElevationWeight(); } diff --git a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/BiomeFactory.java b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/BiomeFactory.java index 1b2526193..0283c1d96 100644 --- a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/BiomeFactory.java +++ b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/BiomeFactory.java @@ -14,7 +14,7 @@ public class BiomeFactory implements ConfigFactory { @Override public TerraBiome build(BiomeTemplate template, TerraPlugin main) { - UserDefinedGenerator generator = new UserDefinedGenerator(template.getNoiseEquation(), template.getElevationEquation(), template.getCarvingEquation(), template.getBiomeNoise(), template.getElevationWeight(), + UserDefinedGenerationSettings generator = new UserDefinedGenerationSettings(template.getNoiseEquation(), template.getElevationEquation(), template.getCarvingEquation(), template.getBiomeNoise(), template.getElevationWeight(), template.getBlendDistance(), template.getBlendStep(), template.getBlendWeight()); return new UserDefinedBiome(template.getVanilla(), generator, template); } diff --git a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/UserDefinedBiome.java b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/UserDefinedBiome.java index 015fdc728..6ce402fc9 100644 --- a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/UserDefinedBiome.java +++ b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/UserDefinedBiome.java @@ -4,7 +4,7 @@ import com.dfsek.terra.api.properties.Context; import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.Biome; -import com.dfsek.terra.api.world.biome.Generator; +import com.dfsek.terra.api.world.biome.GenerationSettings; import com.dfsek.terra.api.world.biome.TerraBiome; import java.util.Set; @@ -13,7 +13,7 @@ import java.util.Set; * Class representing a config-defined biome */ public class UserDefinedBiome implements TerraBiome { - private final UserDefinedGenerator gen; + private final UserDefinedGenerationSettings gen; private final ProbabilityCollection vanilla; private final String id; private final BiomeTemplate config; @@ -22,7 +22,7 @@ public class UserDefinedBiome implements TerraBiome { private final Context context = new Context(); - public UserDefinedBiome(ProbabilityCollection vanilla, UserDefinedGenerator gen, BiomeTemplate config) { + public UserDefinedBiome(ProbabilityCollection vanilla, UserDefinedGenerationSettings gen, BiomeTemplate config) { this.vanilla = vanilla; this.gen = gen; this.id = config.getID(); @@ -52,7 +52,7 @@ public class UserDefinedBiome implements TerraBiome { } @Override - public Generator getGenerator(World w) { + public GenerationSettings getGenerator(World w) { return gen; } diff --git a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/UserDefinedGenerator.java b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/UserDefinedGenerationSettings.java similarity index 76% rename from common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/UserDefinedGenerator.java rename to common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/UserDefinedGenerationSettings.java index 268f18a64..b9ad1dd46 100644 --- a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/UserDefinedGenerator.java +++ b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/UserDefinedGenerationSettings.java @@ -1,11 +1,9 @@ package com.dfsek.terra.addons.biome; -import com.dfsek.terra.addons.biome.holder.PaletteHolder; import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.world.biome.Generator; -import com.dfsek.terra.api.world.biome.PaletteSettings; +import com.dfsek.terra.api.world.biome.GenerationSettings; -public class UserDefinedGenerator implements Generator { +public class UserDefinedGenerationSettings implements GenerationSettings { private final NoiseSampler noise; private final NoiseSampler elevation; @@ -17,7 +15,7 @@ public class UserDefinedGenerator implements Generator { private final int blendStep; private final double blendWeight; - public UserDefinedGenerator(NoiseSampler noise, NoiseSampler elevation, NoiseSampler carving, NoiseSampler biomeNoise, double elevationWeight, int blendDistance, int blendStep, double blendWeight) { + public UserDefinedGenerationSettings(NoiseSampler noise, NoiseSampler elevation, NoiseSampler carving, NoiseSampler biomeNoise, double elevationWeight, int blendDistance, int blendStep, double blendWeight) { this.noise = noise; this.elevation = elevation; this.carving = carving; diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/biome/Generator.java b/common/api/src/main/java/com/dfsek/terra/api/world/biome/GenerationSettings.java similarity index 94% rename from common/api/src/main/java/com/dfsek/terra/api/world/biome/Generator.java rename to common/api/src/main/java/com/dfsek/terra/api/world/biome/GenerationSettings.java index f8d6b14a3..23b29de31 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/biome/Generator.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/biome/GenerationSettings.java @@ -2,7 +2,7 @@ package com.dfsek.terra.api.world.biome; import com.dfsek.terra.api.noise.NoiseSampler; -public interface Generator { +public interface GenerationSettings { /** * Gets the noise sampler instance to use for base terrain. * diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/biome/TerraBiome.java b/common/api/src/main/java/com/dfsek/terra/api/world/biome/TerraBiome.java index 92464823b..63f69cea4 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/biome/TerraBiome.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/biome/TerraBiome.java @@ -24,7 +24,7 @@ public interface TerraBiome extends PropertyHolder { * * @return BiomeTerrain - The terrain generation instance. */ - Generator getGenerator(World w); + GenerationSettings getGenerator(World w); int getColor(); diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/generator/ChunkInterpolator.java b/common/api/src/main/java/com/dfsek/terra/api/world/generator/ChunkInterpolator.java index 444dc5b6e..58e8b8b57 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/generator/ChunkInterpolator.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/generator/ChunkInterpolator.java @@ -1,7 +1,7 @@ package com.dfsek.terra.api.world.generator; import com.dfsek.terra.api.util.mutable.MutableInteger; -import com.dfsek.terra.api.world.biome.Generator; +import com.dfsek.terra.api.world.biome.GenerationSettings; import java.util.Map; @@ -20,11 +20,11 @@ public interface ChunkInterpolator { } - default double computeNoise(Map gens, double x, double y, double z) { + default double computeNoise(Map gens, double x, double y, double z) { double n = 0; double div = 0; - for(Map.Entry entry : gens.entrySet()) { - Generator gen = entry.getKey(); + for(Map.Entry entry : gens.entrySet()) { + GenerationSettings gen = entry.getKey(); int weight = entry.getValue().get(); double noise = computeNoise(gen, x, y, z); @@ -34,5 +34,5 @@ public interface ChunkInterpolator { return n / div; } - double computeNoise(Generator generator, double x, double y, double z); + double computeNoise(GenerationSettings generationSettings, double x, double y, double z); } From 55030450b5c55b0919b8d8a889b19f7142c9cb0c Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 18:36:30 -0700 Subject: [PATCH 27/33] remove world parameter from TerraBiome#getGenerator --- .../generation/generators/NoiseChunkGenerator3D.java | 6 +++--- .../generation/math/interpolation/ChunkInterpolator2D.java | 4 ++-- .../generation/math/interpolation/ChunkInterpolator3D.java | 4 ++-- .../math/interpolation/ElevationInterpolator.java | 2 +- .../java/com/dfsek/terra/addons/biome/UserDefinedBiome.java | 3 +-- .../java/com/dfsek/terra/api/world/biome/TerraBiome.java | 3 +-- 6 files changed, 10 insertions(+), 12 deletions(-) diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java index 55b33fc96..fe9ea7d8e 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java @@ -54,7 +54,7 @@ public class NoiseChunkGenerator3D implements ChunkGenerator { int cz = zOrig + (z << 2); TerraBiome b = grid.getBiome(cx, cz, seed); - biome.setBiome(cx, cz, b.getVanillaBiomes().get(b.getGenerator(world).getBiomeNoise(), cx, 0, cz, world.getSeed())); + biome.setBiome(cx, cz, b.getVanillaBiomes().get(b.getGenerator().getBiomeNoise(), cx, 0, cz, world.getSeed())); } } } @@ -98,7 +98,7 @@ public class NoiseChunkGenerator3D implements ChunkGenerator { main.logger().info("null palette: " + biome.getID()); } - GenerationSettings generationSettings = biome.getGenerator(world); + GenerationSettings generationSettings = biome.getGenerator(); int sea = paletteInfo.getSeaLevel(); Palette seaPalette = paletteInfo.getOcean(); @@ -171,7 +171,7 @@ public class NoiseChunkGenerator3D implements ChunkGenerator { Sampler sampler = world.getConfig().getSamplerCache().get(x, z); PaletteInfo paletteInfo = biome.getContext().get(PaletteInfo.class); - Palette palette = PaletteUtil.getPalette(x, y, z, biome.getGenerator(world), sampler, paletteInfo); + Palette palette = PaletteUtil.getPalette(x, y, z, biome.getGenerator(), sampler, paletteInfo); int fdX = FastMath.floorMod(x, 16); int fdZ = FastMath.floorMod(z, 16); double noise = sampler.sample(fdX, y, fdZ); diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator2D.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator2D.java index ee4c96414..a610f6f15 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator2D.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator2D.java @@ -38,7 +38,7 @@ public class ChunkInterpolator2D implements ChunkInterpolator { for(int x = 0; x < 5; x++) { for(int z = 0; z < 5; z++) { - GenerationSettings generationSettings = provider.getBiome(xOrigin + (x << 2), zOrigin + (z << 2), seed).getGenerator(w); + GenerationSettings generationSettings = provider.getBiome(xOrigin + (x << 2), zOrigin + (z << 2), seed).getGenerator(); Map genMap = new HashMap<>(); int step = generationSettings.getBlendStep(); @@ -46,7 +46,7 @@ public class ChunkInterpolator2D implements ChunkInterpolator { for(int xi = -blend; xi <= blend; xi++) { for(int zi = -blend; zi <= blend; zi++) { - genMap.computeIfAbsent(provider.getBiome(xOrigin + (x << 2) + (xi * step), zOrigin + (z << 2) + (zi * step), seed).getGenerator(w), g -> new MutableInteger(0)).increment(); // Increment by 1 + genMap.computeIfAbsent(provider.getBiome(xOrigin + (x << 2) + (xi * step), zOrigin + (z << 2) + (zi * step), seed).getGenerator(), g -> new MutableInteger(0)).increment(); // Increment by 1 } } diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator3D.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator3D.java index 2ee695885..982a76d7f 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator3D.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator3D.java @@ -49,7 +49,7 @@ public class ChunkInterpolator3D implements ChunkInterpolator { for(int x = 0; x < 5; x++) { for(int z = 0; z < 5; z++) { - GenerationSettings generationSettings = provider.getBiome(xOrigin + (x << 2), zOrigin + (z << 2), seed).getGenerator(w); + GenerationSettings generationSettings = provider.getBiome(xOrigin + (x << 2), zOrigin + (z << 2), seed).getGenerator(); Map genMap = new HashMap<>(); int step = generationSettings.getBlendStep(); @@ -57,7 +57,7 @@ public class ChunkInterpolator3D implements ChunkInterpolator { for(int xi = -blend; xi <= blend; xi++) { for(int zi = -blend; zi <= blend; zi++) { - genMap.computeIfAbsent(provider.getBiome(xOrigin + (x << 2) + (xi * step), zOrigin + (z << 2) + (zi * step), seed).getGenerator(w), g -> new MutableInteger(0)).increment(); // Increment by 1 + genMap.computeIfAbsent(provider.getBiome(xOrigin + (x << 2) + (xi * step), zOrigin + (z << 2) + (zi * step), seed).getGenerator(), g -> new MutableInteger(0)).increment(); // Increment by 1 } } diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ElevationInterpolator.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ElevationInterpolator.java index e5ee87b88..80ae9899d 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ElevationInterpolator.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ElevationInterpolator.java @@ -18,7 +18,7 @@ public class ElevationInterpolator { // Precompute generators. for(int x = -1 - smooth; x <= 16 + smooth; x++) { for(int z = -1 - smooth; z <= 16 + smooth; z++) { - gens[x + 1 + smooth][z + 1 + smooth] = provider.getBiome(xOrigin + x, zOrigin + z, seed).getGenerator(world); + gens[x + 1 + smooth][z + 1 + smooth] = provider.getBiome(xOrigin + x, zOrigin + z, seed).getGenerator(); } } diff --git a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/UserDefinedBiome.java b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/UserDefinedBiome.java index 6ce402fc9..a26bf5601 100644 --- a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/UserDefinedBiome.java +++ b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/UserDefinedBiome.java @@ -2,7 +2,6 @@ package com.dfsek.terra.addons.biome; import com.dfsek.terra.api.properties.Context; import com.dfsek.terra.api.util.collection.ProbabilityCollection; -import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.Biome; import com.dfsek.terra.api.world.biome.GenerationSettings; import com.dfsek.terra.api.world.biome.TerraBiome; @@ -52,7 +51,7 @@ public class UserDefinedBiome implements TerraBiome { } @Override - public GenerationSettings getGenerator(World w) { + public GenerationSettings getGenerator() { return gen; } diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/biome/TerraBiome.java b/common/api/src/main/java/com/dfsek/terra/api/world/biome/TerraBiome.java index 63f69cea4..7f94ff487 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/biome/TerraBiome.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/biome/TerraBiome.java @@ -3,7 +3,6 @@ package com.dfsek.terra.api.world.biome; import com.dfsek.terra.api.properties.PropertyHolder; import com.dfsek.terra.api.util.collection.ProbabilityCollection; -import com.dfsek.terra.api.world.World; import java.util.Set; @@ -24,7 +23,7 @@ public interface TerraBiome extends PropertyHolder { * * @return BiomeTerrain - The terrain generation instance. */ - GenerationSettings getGenerator(World w); + GenerationSettings getGenerator(); int getColor(); From 696ee07c33556c7db79e1737dfe36edaa1219e30 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 18:37:59 -0700 Subject: [PATCH 28/33] create StringIdentifiable --- .../main/java/com/dfsek/terra/api/StringIdentifiable.java | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 common/api/src/main/java/com/dfsek/terra/api/StringIdentifiable.java diff --git a/common/api/src/main/java/com/dfsek/terra/api/StringIdentifiable.java b/common/api/src/main/java/com/dfsek/terra/api/StringIdentifiable.java new file mode 100644 index 000000000..ff1209b0f --- /dev/null +++ b/common/api/src/main/java/com/dfsek/terra/api/StringIdentifiable.java @@ -0,0 +1,5 @@ +package com.dfsek.terra.api; + +public interface StringIdentifiable { + String getID(); +} From 89b03aa3fb5205c2ec93340f578fcec0909b6adf Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 18:40:48 -0700 Subject: [PATCH 29/33] implement StringIdentifiable --- .../command/structure/completer/ScriptCompleter.java | 2 +- .../com/dfsek/terra/addons/terrascript/TerraScriptAddon.java | 2 +- .../terra/addons/terrascript/script/StructureScript.java | 2 +- .../com/dfsek/terra/api/config/AbstractableTemplate.java | 4 ++-- .../src/main/java/com/dfsek/terra/api/config/ConfigPack.java | 5 ++--- .../main/java/com/dfsek/terra/api/config/WorldConfig.java | 5 ++--- .../main/java/com/dfsek/terra/api/structure/Structure.java | 5 ++--- .../terra/api/structure/configured/ConfiguredStructure.java | 5 ++--- 8 files changed, 13 insertions(+), 17 deletions(-) diff --git a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/completer/ScriptCompleter.java b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/completer/ScriptCompleter.java index 3ac37965a..d516312e7 100644 --- a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/completer/ScriptCompleter.java +++ b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/completer/ScriptCompleter.java @@ -16,6 +16,6 @@ public class ScriptCompleter implements TabCompleter { @Override public List complete(CommandSender sender) { - return ((Player) sender).world().getConfig().getRegistry(Structure.class).entries().stream().map(Structure::getId).collect(Collectors.toList()); + return ((Player) sender).world().getConfig().getRegistry(Structure.class).entries().stream().map(Structure::getID).collect(Collectors.toList()); } } diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/TerraScriptAddon.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/TerraScriptAddon.java index 143ff156b..b60ebb2aa 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/TerraScriptAddon.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/TerraScriptAddon.java @@ -37,7 +37,7 @@ public class TerraScriptAddon extends TerraAddon { for(Map.Entry entry : entries) { try { StructureScript structureScript = new StructureScript(entry.getValue(), main, structureRegistry, lootRegistry, event.getPack().getRegistryFactory().create()); - structureRegistry.register(structureScript.getId(), structureScript); + structureRegistry.register(structureScript.getID(), structureScript); } catch(ParseException e) { throw new LoadException("Failed to load script: ", e); } diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java index e4fdfe575..d7f1ff155 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java @@ -172,7 +172,7 @@ public class StructureScript implements Structure { } @Override - public String getId() { + public String getID() { return id; } diff --git a/common/api/src/main/java/com/dfsek/terra/api/config/AbstractableTemplate.java b/common/api/src/main/java/com/dfsek/terra/api/config/AbstractableTemplate.java index ae0986ab8..0abb43e3b 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/config/AbstractableTemplate.java +++ b/common/api/src/main/java/com/dfsek/terra/api/config/AbstractableTemplate.java @@ -1,7 +1,7 @@ package com.dfsek.terra.api.config; import com.dfsek.tectonic.config.ConfigTemplate; +import com.dfsek.terra.api.StringIdentifiable; -public interface AbstractableTemplate extends ConfigTemplate { - String getID(); +public interface AbstractableTemplate extends ConfigTemplate, StringIdentifiable { } diff --git a/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java b/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java index 8deb84c06..5d48db654 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java +++ b/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java @@ -1,5 +1,6 @@ package com.dfsek.terra.api.config; +import com.dfsek.terra.api.StringIdentifiable; import com.dfsek.terra.api.addon.TerraAddon; import com.dfsek.terra.api.registry.CheckedRegistry; import com.dfsek.terra.api.registry.meta.RegistryFactory; @@ -17,7 +18,7 @@ import java.util.List; import java.util.Map; import java.util.Set; -public interface ConfigPack extends LoaderRegistrar, LoaderHolder, RegistryHolder { +public interface ConfigPack extends LoaderRegistrar, LoaderHolder, RegistryHolder, StringIdentifiable { BiomeProvider getBiomeProviderBuilder(); CheckedRegistry getOrCreateRegistry(Type clazz); @@ -39,8 +40,6 @@ public interface ConfigPack extends LoaderRegistrar, LoaderHolder, RegistryHolde Set addons(); - String getID(); - String getAuthor(); String getVersion(); diff --git a/common/api/src/main/java/com/dfsek/terra/api/config/WorldConfig.java b/common/api/src/main/java/com/dfsek/terra/api/config/WorldConfig.java index cbcf9152b..5333db06b 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/config/WorldConfig.java +++ b/common/api/src/main/java/com/dfsek/terra/api/config/WorldConfig.java @@ -1,5 +1,6 @@ package com.dfsek.terra.api.config; +import com.dfsek.terra.api.StringIdentifiable; import com.dfsek.terra.api.registry.Registry; import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; @@ -7,7 +8,7 @@ import com.dfsek.terra.api.world.generator.SamplerCache; import java.util.Map; -public interface WorldConfig { +public interface WorldConfig extends StringIdentifiable { Registry getRegistry(Class clazz); World getWorld(); @@ -30,8 +31,6 @@ public interface WorldConfig { boolean disableStructures(); - String getID(); - String getAuthor(); String getVersion(); diff --git a/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java b/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java index 488e83dd1..2a33bb11b 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java +++ b/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java @@ -1,5 +1,6 @@ package com.dfsek.terra.api.structure; +import com.dfsek.terra.api.StringIdentifiable; import com.dfsek.terra.api.structure.buffer.Buffer; import com.dfsek.terra.api.structure.rotation.Rotation; import com.dfsek.terra.api.vector.Vector3; @@ -8,7 +9,7 @@ import com.dfsek.terra.api.world.World; import java.util.Random; -public interface Structure { +public interface Structure extends StringIdentifiable { /** * Paste the structure at a location * @@ -31,6 +32,4 @@ public interface Structure { @SuppressWarnings("try") boolean generateDirect(Vector3 location, World world, Random random, Rotation rotation); - - String getId(); } diff --git a/common/api/src/main/java/com/dfsek/terra/api/structure/configured/ConfiguredStructure.java b/common/api/src/main/java/com/dfsek/terra/api/structure/configured/ConfiguredStructure.java index 1e04d096a..0ace9714b 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/structure/configured/ConfiguredStructure.java +++ b/common/api/src/main/java/com/dfsek/terra/api/structure/configured/ConfiguredStructure.java @@ -1,16 +1,15 @@ package com.dfsek.terra.api.structure.configured; +import com.dfsek.terra.api.StringIdentifiable; import com.dfsek.terra.api.structure.Structure; import com.dfsek.terra.api.structure.StructureSpawn; import com.dfsek.terra.api.util.Range; import com.dfsek.terra.api.util.collection.ProbabilityCollection; -public interface ConfiguredStructure { +public interface ConfiguredStructure extends StringIdentifiable { ProbabilityCollection getStructure(); Range getSpawnStart(); StructureSpawn getSpawn(); - - String getID(); } From 7d70b8fcdf14f3f9dc221ac13bc6f1f8ffbca4a9 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 18:42:37 -0700 Subject: [PATCH 30/33] remove test method from Structure --- .../dfsek/terra/addons/terrascript/script/StructureScript.java | 1 - .../src/main/java/com/dfsek/terra/api/structure/Structure.java | 3 --- 2 files changed, 4 deletions(-) diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java index d7f1ff155..82a8fb8c2 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java @@ -133,7 +133,6 @@ public class StructureScript implements Structure { } } - @Override @SuppressWarnings("try") public boolean test(Vector3 location, World world, Random random, Rotation rotation) { try(ProfileFrame ignore = main.getProfiler().profile("terrascript_test:" + id)) { diff --git a/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java b/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java index 2a33bb11b..97b92eec8 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java +++ b/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java @@ -24,9 +24,6 @@ public interface Structure extends StringIdentifiable { @SuppressWarnings("try") boolean generate(Vector3 location, World world, Chunk chunk, Random random, Rotation rotation); - @SuppressWarnings("try") - boolean test(Vector3 location, World world, Random random, Rotation rotation); - @SuppressWarnings("try") boolean generate(Buffer buffer, World world, Random random, Rotation rotation, int recursions); From 6d0a32f25101fd4c8a4ddd0048d760080052c889 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 18:43:01 -0700 Subject: [PATCH 31/33] remove redundant suppression in Structure --- .../main/java/com/dfsek/terra/api/structure/Structure.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java b/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java index 97b92eec8..28f2d32f7 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java +++ b/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java @@ -18,15 +18,11 @@ public interface Structure extends StringIdentifiable { * @param rotation Rotation of structure * @return Whether generation was successful */ - @SuppressWarnings("try") boolean generate(Vector3 location, World world, Random random, Rotation rotation); - @SuppressWarnings("try") boolean generate(Vector3 location, World world, Chunk chunk, Random random, Rotation rotation); - @SuppressWarnings("try") boolean generate(Buffer buffer, World world, Random random, Rotation rotation, int recursions); - @SuppressWarnings("try") boolean generateDirect(Vector3 location, World world, Random random, Rotation rotation); } From 9d687208c9feb305cf5283d27adbdd582a0a57b7 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 18:44:23 -0700 Subject: [PATCH 32/33] remove useless Structure#generate implementation --- .../command/structure/StructureLoadCommand.java | 2 +- .../addons/terrascript/script/StructureScript.java | 11 ----------- .../java/com/dfsek/terra/api/structure/Structure.java | 10 ---------- 3 files changed, 1 insertion(+), 22 deletions(-) diff --git a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/StructureLoadCommand.java b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/StructureLoadCommand.java index 7d10eac31..64f7e6d61 100644 --- a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/StructureLoadCommand.java +++ b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/StructureLoadCommand.java @@ -81,7 +81,7 @@ public class StructureLoadCommand implements CommandTemplate { if(this.chunk) { script.generate(player.position(), player.world(), player.world().getChunkAt(player.position()), random, r); } else { - script.generate(player.position(), player.world(), random, r); + script.generateDirect(player.position(), player.world(), random, r); } long l = System.nanoTime() - t; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java index 82a8fb8c2..96b4906c3 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java @@ -112,17 +112,6 @@ public class StructureScript implements Structure { this.cache = CacheBuilder.newBuilder().maximumSize(main.getTerraConfig().getStructureCache()).build(); } - @Override - @SuppressWarnings("try") - public boolean generate(Vector3 location, World world, Random random, Rotation rotation) { - try(ProfileFrame ignore = main.getProfiler().profile("terrascript:" + id)) { - StructureBuffer buffer = new StructureBuffer(location); - boolean level = applyBlock(new TerraImplementationArguments(buffer, rotation, random, world, 0)); - buffer.paste(location, world); - return level; - } - } - @Override @SuppressWarnings("try") public boolean generate(Vector3 location, World world, Chunk chunk, Random random, Rotation rotation) { diff --git a/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java b/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java index 28f2d32f7..d57f189a0 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java +++ b/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java @@ -10,16 +10,6 @@ import com.dfsek.terra.api.world.World; import java.util.Random; public interface Structure extends StringIdentifiable { - /** - * Paste the structure at a location - * - * @param location Location to paste structure - * @param world - * @param rotation Rotation of structure - * @return Whether generation was successful - */ - boolean generate(Vector3 location, World world, Random random, Rotation rotation); - boolean generate(Vector3 location, World world, Chunk chunk, Random random, Rotation rotation); boolean generate(Buffer buffer, World world, Random random, Rotation rotation, int recursions); From 169ed64568ffefdd4cf4e51328f3d86bc24c5fe8 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 18:44:51 -0700 Subject: [PATCH 33/33] Structure#generateDirect -> #generate --- .../structure/command/structure/StructureLoadCommand.java | 2 +- .../terra/addons/generation/feature/FeatureGenerationStage.java | 2 +- .../dfsek/terra/addons/terrascript/script/StructureScript.java | 2 +- .../src/main/java/com/dfsek/terra/api/structure/Structure.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/StructureLoadCommand.java b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/StructureLoadCommand.java index 64f7e6d61..7d10eac31 100644 --- a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/StructureLoadCommand.java +++ b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/StructureLoadCommand.java @@ -81,7 +81,7 @@ public class StructureLoadCommand implements CommandTemplate { if(this.chunk) { script.generate(player.position(), player.world(), player.world().getChunkAt(player.position()), random, r); } else { - script.generateDirect(player.position(), player.world(), random, r); + script.generate(player.position(), player.world(), random, r); } long l = System.nanoTime() - t; diff --git a/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java b/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java index 180bbb63c..1d228df30 100644 --- a/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java +++ b/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java @@ -35,7 +35,7 @@ public class FeatureGenerationStage implements GenerationStage { .getSuitableCoordinates(column) .forEach(y -> feature.getStructure(world, tx, y, tz) - .generateDirect(new Vector3(tx, y, tz), world, PopulationUtil.getRandom(chunk), Rotation.NONE) + .generate(new Vector3(tx, y, tz), world, PopulationUtil.getRandom(chunk), Rotation.NONE) ); } }); diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java index 96b4906c3..4688b74f4 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java @@ -152,7 +152,7 @@ public class StructureScript implements Structure { @Override @SuppressWarnings("try") - public boolean generateDirect(Vector3 location, World world, Random random, Rotation rotation) { + public boolean generate(Vector3 location, World world, Random random, Rotation rotation) { try(ProfileFrame ignore = main.getProfiler().profile("terrascript_direct:" + id)) { DirectBuffer buffer = new DirectBuffer(location, world); return applyBlock(new TerraImplementationArguments(buffer, rotation, random, world, 0)); diff --git a/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java b/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java index d57f189a0..1d8caacdb 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java +++ b/common/api/src/main/java/com/dfsek/terra/api/structure/Structure.java @@ -14,5 +14,5 @@ public interface Structure extends StringIdentifiable { boolean generate(Buffer buffer, World world, Random random, Rotation rotation, int recursions); - boolean generateDirect(Vector3 location, World world, Random random, Rotation rotation); + boolean generate(Vector3 location, World world, Random random, Rotation rotation); }