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 c45478e70..023b111dd 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 @@ -27,6 +27,7 @@ import com.dfsek.terra.api.registry.meta.RegistryFactory; import com.dfsek.terra.api.util.generic.pair.ImmutablePair; import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder; +import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider; import com.dfsek.terra.config.dummy.DummyWorld; import com.dfsek.terra.config.fileloaders.FolderLoader; import com.dfsek.terra.config.fileloaders.ZIPLoader; @@ -362,4 +363,9 @@ public class ConfigPackImpl implements ConfigPack { public RegistryFactory getRegistryFactory() { return registryFactory; } + + @Override + public ChunkGeneratorProvider getGeneratorProvider() { + return template.getGeneratorProvider(); + } } diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackTemplate.java b/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackTemplate.java index de60c0ed8..ef6eda483 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackTemplate.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackTemplate.java @@ -5,6 +5,7 @@ import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.config.ConfigTemplate; import com.dfsek.terra.api.addon.TerraAddon; import com.dfsek.terra.api.util.seeded.NoiseSeeded; +import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider; import java.util.HashMap; import java.util.HashSet; @@ -84,6 +85,13 @@ public class ConfigPackTemplate implements ConfigTemplate { @Default private boolean disableFlora = false; + @Value("generator") + private ChunkGeneratorProvider generatorProvider; + + public ChunkGeneratorProvider getGeneratorProvider() { + return generatorProvider; + } + public boolean disableCarvers() { return disableCarvers; } 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 b5aef6c63..430fa5d46 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 @@ -11,7 +11,7 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.generator.SamplerCache; import com.dfsek.terra.registry.LockedRegistryImpl; import com.dfsek.terra.registry.OpenRegistryImpl; -import com.dfsek.terra.world.generation.math.SamplerCacheImpl; +import com.dfsek.terra.world.SamplerCacheImpl; import java.util.HashMap; import java.util.Map; diff --git a/common/addons/chunk-generator/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/SamplerCacheImpl.java b/common/implementation/src/main/java/com/dfsek/terra/world/SamplerCacheImpl.java similarity index 96% rename from common/addons/chunk-generator/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/SamplerCacheImpl.java rename to common/implementation/src/main/java/com/dfsek/terra/world/SamplerCacheImpl.java index 7ce9cf90f..523d31730 100644 --- a/common/addons/chunk-generator/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/SamplerCacheImpl.java +++ b/common/implementation/src/main/java/com/dfsek/terra/world/SamplerCacheImpl.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.addons.chunkgenerator.generation.math; +package com.dfsek.terra.world; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.util.MathUtil; diff --git a/common/implementation/src/main/java/com/dfsek/terra/world/carving/NoiseCarver.java b/common/implementation/src/main/java/com/dfsek/terra/world/carving/NoiseCarver.java deleted file mode 100644 index aa537e5e6..000000000 --- a/common/implementation/src/main/java/com/dfsek/terra/world/carving/NoiseCarver.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.dfsek.terra.world.carving; - -import com.dfsek.terra.api.TerraPlugin; -import com.dfsek.terra.api.block.state.BlockState; -import com.dfsek.terra.api.util.Range; -import com.dfsek.terra.api.world.ChunkAccess; -import com.dfsek.terra.api.world.World; -import com.dfsek.terra.api.world.Carver; -import com.dfsek.terra.api.world.generator.ChunkInterpolator; -import com.dfsek.terra.world.generation.math.interpolation.ChunkInterpolator3D; - -public class NoiseCarver implements Carver { - private final Range range; - private final BlockState data; - private final TerraPlugin main; - - public NoiseCarver(Range range, BlockState data, TerraPlugin main) { - this.range = range; - this.data = data; - this.main = main; - } - - @Override - public void carve(World world, int chunkX, int chunkZ, ChunkAccess chunk) { - ChunkInterpolator interpolator = new ChunkInterpolator3D(world, chunkX, chunkZ, main.getWorld(world).getBiomeProvider(), (gen, coord) -> gen.getCarver().getNoise(coord.setY(coord.getY()))); - for(int y : range) { - for(int x = 0; x < 16; x++) { - for(int z = 0; z < 16; z++) { - double n = interpolator.getNoise(x, y, z); - if(n > 0) chunk.setBlock(x, y, z, data); - } - } - } - } -}