diff --git a/common/src/main/java/com/dfsek/terra/config/builder/GeneratorBuilder.java b/common/src/main/java/com/dfsek/terra/config/builder/GeneratorBuilder.java index 570819a15..3b00f1898 100644 --- a/common/src/main/java/com/dfsek/terra/config/builder/GeneratorBuilder.java +++ b/common/src/main/java/com/dfsek/terra/config/builder/GeneratorBuilder.java @@ -48,16 +48,12 @@ public class GeneratorBuilder { private double blendWeight; - private Map variables = new HashMap<>(); - public WorldGenerator build(long seed) { synchronized(gens) { return gens.computeIfAbsent(seed, k -> { NoiseSampler noise; NoiseSampler elevation; NoiseSampler carving; - Scope biomeScope = new Scope().withParent(varScope); - variables.forEach((id, val) -> biomeScope.create(id).setValue(val)); try { noise = new ExpressionSampler(noiseEquation, varScope, seed, noiseBuilderMap); elevation = elevationEquation == null ? new ConstantSampler(0) : new ExpressionSampler(elevationEquation, varScope, seed, noiseBuilderMap); @@ -70,10 +66,6 @@ public class GeneratorBuilder { } } - public void setVariables(Map variables) { - this.variables = variables; - } - public void setBlendWeight(double blendWeight) { this.blendWeight = blendWeight; } diff --git a/common/src/main/java/com/dfsek/terra/config/factories/BiomeFactory.java b/common/src/main/java/com/dfsek/terra/config/factories/BiomeFactory.java index 81bc9f327..4a460ae03 100644 --- a/common/src/main/java/com/dfsek/terra/config/factories/BiomeFactory.java +++ b/common/src/main/java/com/dfsek/terra/config/factories/BiomeFactory.java @@ -6,6 +6,7 @@ import com.dfsek.terra.biome.UserDefinedBiome; import com.dfsek.terra.config.builder.GeneratorBuilder; import com.dfsek.terra.config.pack.ConfigPack; import com.dfsek.terra.config.templates.BiomeTemplate; +import parsii.eval.Scope; public class BiomeFactory implements TerraFactory { private final ConfigPack pack; @@ -23,7 +24,11 @@ public class BiomeFactory implements TerraFactory { generatorBuilder.setNoiseBuilderMap(template.getPack().getTemplate().getNoiseBuilderMap()); generatorBuilder.setPalettes(template.getPalette()); generatorBuilder.setSlantPalettes(template.getSlantPalette()); - generatorBuilder.setVarScope(pack.getVarScope()); + + Scope vars = new Scope().withParent(pack.getVarScope()); + template.getVariables().forEach((id, val) -> vars.create(id).setValue(val)); + generatorBuilder.setVarScope(vars); + generatorBuilder.setInterpolateElevation(template.interpolateElevation()); generatorBuilder.setNoise2d(template.isNoise2d()); generatorBuilder.setBase(template.getNoise2dBase());