mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-19 15:20:55 +00:00
Change layer class method signatures
This commit is contained in:
+3
-2
@@ -1,8 +1,9 @@
|
|||||||
package com.dfsek.terra.addons.chunkgenerator.api;
|
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 {
|
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);
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-2
@@ -1,7 +1,9 @@
|
|||||||
package com.dfsek.terra.addons.chunkgenerator.api;
|
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 {
|
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);
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-5
@@ -1,11 +1,9 @@
|
|||||||
package com.dfsek.terra.addons.chunkgenerator.api;
|
package com.dfsek.terra.addons.chunkgenerator.api;
|
||||||
|
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
import com.dfsek.terra.api.world.biome.Biome;
|
import com.dfsek.terra.api.world.info.WorldProperties;
|
||||||
|
|
||||||
|
|
||||||
public interface LayerSampler {
|
public interface LayerSampler {
|
||||||
double sample(long seed, Biome biome, int x, int y, int z);
|
double sample(int x, int y, int z, WorldProperties world, BiomeProvider biomeProvider);
|
||||||
|
|
||||||
NoiseSampler getSampler();
|
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-7
@@ -48,7 +48,7 @@ public class LayeredChunkGenerator implements ChunkGenerator {
|
|||||||
|
|
||||||
Biome biome = biomeColumn.get(y);
|
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) {
|
if (previousLayerPalette == layerPalette) {
|
||||||
paletteLevel++;
|
paletteLevel++;
|
||||||
@@ -60,11 +60,9 @@ public class LayeredChunkGenerator implements ChunkGenerator {
|
|||||||
paletteLevel = 0;
|
paletteLevel = 0;
|
||||||
}
|
}
|
||||||
previousLayerPalette = layerPalette;
|
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();
|
long seed = world.getSeed();
|
||||||
Biome biome = biomeProvider.getBiome(x, y, z, seed);
|
Biome biome = biomeProvider.getBiome(x, y, z, seed);
|
||||||
int layer = 0; // Default to layer 0 for now
|
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(seed, biome, x, y, z)
|
||||||
.get(layer, x, y, z, seed);
|
.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) {
|
public Palette getPalette(int x, int y, int z, WorldProperties world, BiomeProvider biomeProvider) {
|
||||||
long seed = world.getSeed();
|
long seed = world.getSeed();
|
||||||
Biome biome = biomeProvider.getBiome(x, y, z, seed);
|
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);
|
.get(seed, biome, x, y, z);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-2
@@ -1,7 +1,8 @@
|
|||||||
package com.dfsek.terra.addons.chunkgenerator.layer.predicate;
|
package com.dfsek.terra.addons.chunkgenerator.layer.predicate;
|
||||||
|
|
||||||
import com.dfsek.terra.addons.chunkgenerator.api.LayerPredicate;
|
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 {
|
public class BelowLayerPredicate implements LayerPredicate {
|
||||||
@@ -13,7 +14,7 @@ public class BelowLayerPredicate implements LayerPredicate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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;
|
return y < this.y;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-2
@@ -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.LayerPredicate;
|
||||||
import com.dfsek.terra.api.util.Range;
|
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 {
|
public class RangeLayerPredicate implements LayerPredicate {
|
||||||
@@ -13,7 +14,7 @@ public class RangeLayerPredicate implements LayerPredicate {
|
|||||||
this.range = range;
|
this.range = range;
|
||||||
}
|
}
|
||||||
@Override
|
@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);
|
return range.isInRange(y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-3
@@ -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.LayerPredicate;
|
||||||
import com.dfsek.terra.addons.chunkgenerator.api.LayerSampler;
|
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 {
|
public class SamplerLayerPredicate implements LayerPredicate {
|
||||||
@@ -20,8 +21,8 @@ public class SamplerLayerPredicate implements LayerPredicate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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) {
|
||||||
return operator.evaluate(sampler.sample(seed, biome, x, y, z), threshold);
|
return operator.evaluate(sampler.sample(x, y, z, world, biomeProvider), threshold);
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum Operator {
|
public enum Operator {
|
||||||
|
|||||||
+4
-3
@@ -9,7 +9,8 @@ import java.util.List;
|
|||||||
import com.dfsek.terra.addons.chunkgenerator.api.LayerPredicate;
|
import com.dfsek.terra.addons.chunkgenerator.api.LayerPredicate;
|
||||||
import com.dfsek.terra.addons.chunkgenerator.api.LayerSampler;
|
import com.dfsek.terra.addons.chunkgenerator.api.LayerSampler;
|
||||||
import com.dfsek.terra.addons.chunkgenerator.layer.predicate.SamplerLayerPredicate.Operator;
|
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 {
|
public class SamplerListLayerPredicate implements LayerPredicate {
|
||||||
@@ -25,9 +26,9 @@ public class SamplerListLayerPredicate implements LayerPredicate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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) {
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-2
@@ -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.LayerPalette;
|
||||||
import com.dfsek.terra.addons.chunkgenerator.api.LayerResolver;
|
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 {
|
public class PaletteLayerResolver implements LayerResolver {
|
||||||
|
|
||||||
@@ -13,7 +15,7 @@ public class PaletteLayerResolver implements LayerResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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;
|
return palette;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-3
@@ -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.LayerPalette;
|
||||||
import com.dfsek.terra.addons.chunkgenerator.api.LayerPredicate;
|
import com.dfsek.terra.addons.chunkgenerator.api.LayerPredicate;
|
||||||
import com.dfsek.terra.addons.chunkgenerator.api.LayerResolver;
|
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 {
|
public class PredicateLayerResolver implements LayerResolver {
|
||||||
@@ -21,7 +22,7 @@ public class PredicateLayerResolver implements LayerResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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 predicate.test(seed, biome, x, y, z) ? trueResolver.resolve(seed, biome, x, y, z) : falseResolver.resolve(seed, biome, x, y, z);
|
return predicate.test(x, y, z, world, biomeProvider) ? trueResolver.resolve(x, y, z, world, biomeProvider) : falseResolver.resolve(x, y, z, world, biomeProvider);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-8
@@ -2,7 +2,8 @@ package com.dfsek.terra.addons.chunkgenerator.layer.sampler;
|
|||||||
|
|
||||||
import com.dfsek.terra.addons.chunkgenerator.api.LayerSampler;
|
import com.dfsek.terra.addons.chunkgenerator.api.LayerSampler;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
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 {
|
public class SimpleLayerSampler implements LayerSampler {
|
||||||
@@ -14,12 +15,7 @@ public class SimpleLayerSampler implements LayerSampler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double sample(long seed, Biome biome, int x, int y, int z) {
|
public double sample(int x, int y, int z, WorldProperties world, BiomeProvider biomeProvider) {
|
||||||
return sampler.noise(seed, x, y, z);
|
return sampler.noise(world.getSeed(), x, y, z);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public NoiseSampler getSampler() {
|
|
||||||
return sampler;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user