From be9e817c889179cf015d6e15fd5916a316897901 Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 22 Jul 2021 18:35:10 -0700 Subject: [PATCH] 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); }