From 7baace047b8c0d1e496ecfb683231604c7fa125d Mon Sep 17 00:00:00 2001 From: Astrash Date: Mon, 18 Jul 2022 11:59:25 +1000 Subject: [PATCH] Change layer class method signatures --- .../addons/chunkgenerator/api/LayerPredicate.java | 5 +++-- .../addons/chunkgenerator/api/LayerResolver.java | 6 ++++-- .../addons/chunkgenerator/api/LayerSampler.java | 8 +++----- .../generation/LayeredChunkGenerator.java | 12 +++++------- .../layer/predicate/BelowLayerPredicate.java | 5 +++-- .../layer/predicate/RangeLayerPredicate.java | 5 +++-- .../layer/predicate/SamplerLayerPredicate.java | 7 ++++--- .../layer/predicate/SamplerListLayerPredicate.java | 7 ++++--- .../layer/resolve/PaletteLayerResolver.java | 6 ++++-- .../layer/resolve/PredicateLayerResolver.java | 7 ++++--- .../layer/sampler/SimpleLayerSampler.java | 12 ++++-------- 11 files changed, 41 insertions(+), 39 deletions(-) diff --git a/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/api/LayerPredicate.java b/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/api/LayerPredicate.java index bed38a3b0..ce2170d34 100644 --- a/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/api/LayerPredicate.java +++ b/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/api/LayerPredicate.java @@ -1,8 +1,9 @@ package com.dfsek.terra.addons.chunkgenerator.api; -import com.dfsek.terra.api.world.biome.Biome; +import com.dfsek.terra.api.world.biome.generation.BiomeProvider; +import com.dfsek.terra.api.world.info.WorldProperties; public interface LayerPredicate { - boolean test(long seed, Biome biome, int x, int y, int z); + boolean test(int x, int y, int z, WorldProperties properties, BiomeProvider provider); } diff --git a/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/api/LayerResolver.java b/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/api/LayerResolver.java index def10d8ec..5d0efbd06 100644 --- a/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/api/LayerResolver.java +++ b/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/api/LayerResolver.java @@ -1,7 +1,9 @@ package com.dfsek.terra.addons.chunkgenerator.api; -import com.dfsek.terra.api.world.biome.Biome; +import com.dfsek.terra.api.world.biome.generation.BiomeProvider; +import com.dfsek.terra.api.world.info.WorldProperties; + public interface LayerResolver { - LayerPalette resolve(long seed, Biome biome, int x, int y, int z); + LayerPalette resolve(int x, int y, int z, WorldProperties world, BiomeProvider biomeProvider); } diff --git a/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/api/LayerSampler.java b/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/api/LayerSampler.java index d328b3b5c..5a782494e 100644 --- a/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/api/LayerSampler.java +++ b/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/api/LayerSampler.java @@ -1,11 +1,9 @@ package com.dfsek.terra.addons.chunkgenerator.api; -import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.world.biome.Biome; +import com.dfsek.terra.api.world.biome.generation.BiomeProvider; +import com.dfsek.terra.api.world.info.WorldProperties; public interface LayerSampler { - double sample(long seed, Biome biome, int x, int y, int z); - - NoiseSampler getSampler(); + double sample(int x, int y, int z, WorldProperties world, BiomeProvider biomeProvider); } diff --git a/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/LayeredChunkGenerator.java b/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/LayeredChunkGenerator.java index 2de7cfd90..c89766682 100644 --- a/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/LayeredChunkGenerator.java +++ b/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/LayeredChunkGenerator.java @@ -48,7 +48,7 @@ public class LayeredChunkGenerator implements ChunkGenerator { Biome biome = biomeColumn.get(y); - LayerPalette layerPalette = resolver.resolve(seed, biome, cx, y, cz); + LayerPalette layerPalette = resolver.resolve(cx, y, cz, world, biomeProvider); if (previousLayerPalette == layerPalette) { paletteLevel++; @@ -60,11 +60,9 @@ public class LayeredChunkGenerator implements ChunkGenerator { paletteLevel = 0; } previousLayerPalette = layerPalette; - - Palette palette = layerPalette.get(seed, biome, cx, y, cz); - chunk.setBlock(cx, y, cz, palette.get(paletteLevel, cx, y, cz, seed)); - + chunk.setBlock(cx, y, cz, layerPalette.get(seed, biome, cx, y, cz) + .get(paletteLevel, cx, y, cz, seed)); } } } @@ -77,7 +75,7 @@ public class LayeredChunkGenerator implements ChunkGenerator { long seed = world.getSeed(); Biome biome = biomeProvider.getBiome(x, y, z, seed); int layer = 0; // Default to layer 0 for now - return resolver.resolve(seed, biome, x, y, z) + return resolver.resolve(x, y, z, world, biomeProvider) .get(seed, biome, x, y, z) .get(layer, x, y, z, seed); } @@ -86,7 +84,7 @@ public class LayeredChunkGenerator implements ChunkGenerator { public Palette getPalette(int x, int y, int z, WorldProperties world, BiomeProvider biomeProvider) { long seed = world.getSeed(); Biome biome = biomeProvider.getBiome(x, y, z, seed); - return resolver.resolve(seed, biome, x, y, z) + return resolver.resolve(x, y, z, world, biomeProvider) .get(seed, biome, x, y, z); } } diff --git a/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/predicate/BelowLayerPredicate.java b/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/predicate/BelowLayerPredicate.java index 1ffb51939..5eb85d4f8 100644 --- a/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/predicate/BelowLayerPredicate.java +++ b/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/predicate/BelowLayerPredicate.java @@ -1,7 +1,8 @@ package com.dfsek.terra.addons.chunkgenerator.layer.predicate; import com.dfsek.terra.addons.chunkgenerator.api.LayerPredicate; -import com.dfsek.terra.api.world.biome.Biome; +import com.dfsek.terra.api.world.biome.generation.BiomeProvider; +import com.dfsek.terra.api.world.info.WorldProperties; public class BelowLayerPredicate implements LayerPredicate { @@ -13,7 +14,7 @@ public class BelowLayerPredicate implements LayerPredicate { } @Override - public boolean test(long seed, Biome biome, int x, int y, int z) { + public boolean test(int x, int y, int z, WorldProperties properties, BiomeProvider biomeProvider) { return y < this.y; } } diff --git a/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/predicate/RangeLayerPredicate.java b/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/predicate/RangeLayerPredicate.java index 9e0ab8ba0..d116bb686 100644 --- a/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/predicate/RangeLayerPredicate.java +++ b/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/predicate/RangeLayerPredicate.java @@ -2,7 +2,8 @@ package com.dfsek.terra.addons.chunkgenerator.layer.predicate; import com.dfsek.terra.addons.chunkgenerator.api.LayerPredicate; import com.dfsek.terra.api.util.Range; -import com.dfsek.terra.api.world.biome.Biome; +import com.dfsek.terra.api.world.biome.generation.BiomeProvider; +import com.dfsek.terra.api.world.info.WorldProperties; public class RangeLayerPredicate implements LayerPredicate { @@ -13,7 +14,7 @@ public class RangeLayerPredicate implements LayerPredicate { this.range = range; } @Override - public boolean test(long seed, Biome biome, int x, int y, int z) { + public boolean test(int x, int y, int z, WorldProperties world, BiomeProvider provider) { return range.isInRange(y); } } diff --git a/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/predicate/SamplerLayerPredicate.java b/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/predicate/SamplerLayerPredicate.java index 27fd6d886..e7de52e25 100644 --- a/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/predicate/SamplerLayerPredicate.java +++ b/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/predicate/SamplerLayerPredicate.java @@ -2,7 +2,8 @@ package com.dfsek.terra.addons.chunkgenerator.layer.predicate; import com.dfsek.terra.addons.chunkgenerator.api.LayerPredicate; import com.dfsek.terra.addons.chunkgenerator.api.LayerSampler; -import com.dfsek.terra.api.world.biome.Biome; +import com.dfsek.terra.api.world.biome.generation.BiomeProvider; +import com.dfsek.terra.api.world.info.WorldProperties; public class SamplerLayerPredicate implements LayerPredicate { @@ -20,8 +21,8 @@ public class SamplerLayerPredicate implements LayerPredicate { } @Override - public boolean test(long seed, Biome biome, int x, int y, int z) { - return operator.evaluate(sampler.sample(seed, biome, x, y, z), threshold); + public boolean test(int x, int y, int z, WorldProperties world, BiomeProvider biomeProvider) { + return operator.evaluate(sampler.sample(x, y, z, world, biomeProvider), threshold); } public enum Operator { diff --git a/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/predicate/SamplerListLayerPredicate.java b/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/predicate/SamplerListLayerPredicate.java index 6735c3310..173f79682 100644 --- a/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/predicate/SamplerListLayerPredicate.java +++ b/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/predicate/SamplerListLayerPredicate.java @@ -9,7 +9,8 @@ import java.util.List; import com.dfsek.terra.addons.chunkgenerator.api.LayerPredicate; import com.dfsek.terra.addons.chunkgenerator.api.LayerSampler; import com.dfsek.terra.addons.chunkgenerator.layer.predicate.SamplerLayerPredicate.Operator; -import com.dfsek.terra.api.world.biome.Biome; +import com.dfsek.terra.api.world.biome.generation.BiomeProvider; +import com.dfsek.terra.api.world.info.WorldProperties; public class SamplerListLayerPredicate implements LayerPredicate { @@ -25,9 +26,9 @@ public class SamplerListLayerPredicate implements LayerPredicate { } @Override - public boolean test(long seed, Biome biome, int x, int y, int z) { + public boolean test(int x, int y, int z, WorldProperties world, BiomeProvider biomeProvider) { for (CoordinateTest test : tests) { - if (operator.evaluate(sampler.sample(seed, biome, x + test.x, y + test.y, z + test.z), test.threshold)) return true; + if (operator.evaluate(sampler.sample(x + test.x, y + test.y, z + test.z, world, biomeProvider), test.threshold)) return true; } return false; } diff --git a/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/resolve/PaletteLayerResolver.java b/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/resolve/PaletteLayerResolver.java index e0780c921..8c16970e7 100644 --- a/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/resolve/PaletteLayerResolver.java +++ b/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/resolve/PaletteLayerResolver.java @@ -2,7 +2,9 @@ package com.dfsek.terra.addons.chunkgenerator.layer.resolve; import com.dfsek.terra.addons.chunkgenerator.api.LayerPalette; import com.dfsek.terra.addons.chunkgenerator.api.LayerResolver; -import com.dfsek.terra.api.world.biome.Biome; +import com.dfsek.terra.api.world.biome.generation.BiomeProvider; +import com.dfsek.terra.api.world.info.WorldProperties; + public class PaletteLayerResolver implements LayerResolver { @@ -13,7 +15,7 @@ public class PaletteLayerResolver implements LayerResolver { } @Override - public LayerPalette resolve(long seed, Biome biome, int x, int y, int z) { + public LayerPalette resolve(int x, int y, int z, WorldProperties world, BiomeProvider biomeProvider) { return palette; } } diff --git a/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/resolve/PredicateLayerResolver.java b/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/resolve/PredicateLayerResolver.java index b23e84652..27bc0f363 100644 --- a/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/resolve/PredicateLayerResolver.java +++ b/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/resolve/PredicateLayerResolver.java @@ -3,7 +3,8 @@ package com.dfsek.terra.addons.chunkgenerator.layer.resolve; import com.dfsek.terra.addons.chunkgenerator.api.LayerPalette; import com.dfsek.terra.addons.chunkgenerator.api.LayerPredicate; import com.dfsek.terra.addons.chunkgenerator.api.LayerResolver; -import com.dfsek.terra.api.world.biome.Biome; +import com.dfsek.terra.api.world.biome.generation.BiomeProvider; +import com.dfsek.terra.api.world.info.WorldProperties; public class PredicateLayerResolver implements LayerResolver { @@ -21,7 +22,7 @@ public class PredicateLayerResolver implements LayerResolver { } @Override - public LayerPalette resolve(long seed, Biome biome, int x, int y, int z) { - return predicate.test(seed, biome, x, y, z) ? trueResolver.resolve(seed, biome, x, y, z) : falseResolver.resolve(seed, biome, x, y, z); + public LayerPalette resolve(int x, int y, int z, WorldProperties world, BiomeProvider biomeProvider) { + return predicate.test(x, y, z, world, biomeProvider) ? trueResolver.resolve(x, y, z, world, biomeProvider) : falseResolver.resolve(x, y, z, world, biomeProvider); } } diff --git a/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/sampler/SimpleLayerSampler.java b/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/sampler/SimpleLayerSampler.java index 71dbb96c5..40177b0b2 100644 --- a/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/sampler/SimpleLayerSampler.java +++ b/common/addons/chunk-generator-layered/src/main/java/com/dfsek/terra/addons/chunkgenerator/layer/sampler/SimpleLayerSampler.java @@ -2,7 +2,8 @@ package com.dfsek.terra.addons.chunkgenerator.layer.sampler; import com.dfsek.terra.addons.chunkgenerator.api.LayerSampler; import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.world.biome.Biome; +import com.dfsek.terra.api.world.biome.generation.BiomeProvider; +import com.dfsek.terra.api.world.info.WorldProperties; public class SimpleLayerSampler implements LayerSampler { @@ -14,12 +15,7 @@ public class SimpleLayerSampler implements LayerSampler { } @Override - public double sample(long seed, Biome biome, int x, int y, int z) { - return sampler.noise(seed, x, y, z); - } - - @Override - public NoiseSampler getSampler() { - return sampler; + public double sample(int x, int y, int z, WorldProperties world, BiomeProvider biomeProvider) { + return sampler.noise(world.getSeed(), x, y, z); } }