mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-17 14:21:08 +00:00
actually register overridden vars
This commit is contained in:
@@ -48,16 +48,12 @@ public class GeneratorBuilder {
|
|||||||
|
|
||||||
private double blendWeight;
|
private double blendWeight;
|
||||||
|
|
||||||
private Map<String, Double> variables = new HashMap<>();
|
|
||||||
|
|
||||||
public WorldGenerator build(long seed) {
|
public WorldGenerator build(long seed) {
|
||||||
synchronized(gens) {
|
synchronized(gens) {
|
||||||
return gens.computeIfAbsent(seed, k -> {
|
return gens.computeIfAbsent(seed, k -> {
|
||||||
NoiseSampler noise;
|
NoiseSampler noise;
|
||||||
NoiseSampler elevation;
|
NoiseSampler elevation;
|
||||||
NoiseSampler carving;
|
NoiseSampler carving;
|
||||||
Scope biomeScope = new Scope().withParent(varScope);
|
|
||||||
variables.forEach((id, val) -> biomeScope.create(id).setValue(val));
|
|
||||||
try {
|
try {
|
||||||
noise = new ExpressionSampler(noiseEquation, varScope, seed, noiseBuilderMap);
|
noise = new ExpressionSampler(noiseEquation, varScope, seed, noiseBuilderMap);
|
||||||
elevation = elevationEquation == null ? new ConstantSampler(0) : new ExpressionSampler(elevationEquation, 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<String, Double> variables) {
|
|
||||||
this.variables = variables;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBlendWeight(double blendWeight) {
|
public void setBlendWeight(double blendWeight) {
|
||||||
this.blendWeight = blendWeight;
|
this.blendWeight = blendWeight;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.dfsek.terra.biome.UserDefinedBiome;
|
|||||||
import com.dfsek.terra.config.builder.GeneratorBuilder;
|
import com.dfsek.terra.config.builder.GeneratorBuilder;
|
||||||
import com.dfsek.terra.config.pack.ConfigPack;
|
import com.dfsek.terra.config.pack.ConfigPack;
|
||||||
import com.dfsek.terra.config.templates.BiomeTemplate;
|
import com.dfsek.terra.config.templates.BiomeTemplate;
|
||||||
|
import parsii.eval.Scope;
|
||||||
|
|
||||||
public class BiomeFactory implements TerraFactory<BiomeTemplate, TerraBiome> {
|
public class BiomeFactory implements TerraFactory<BiomeTemplate, TerraBiome> {
|
||||||
private final ConfigPack pack;
|
private final ConfigPack pack;
|
||||||
@@ -23,7 +24,11 @@ public class BiomeFactory implements TerraFactory<BiomeTemplate, TerraBiome> {
|
|||||||
generatorBuilder.setNoiseBuilderMap(template.getPack().getTemplate().getNoiseBuilderMap());
|
generatorBuilder.setNoiseBuilderMap(template.getPack().getTemplate().getNoiseBuilderMap());
|
||||||
generatorBuilder.setPalettes(template.getPalette());
|
generatorBuilder.setPalettes(template.getPalette());
|
||||||
generatorBuilder.setSlantPalettes(template.getSlantPalette());
|
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.setInterpolateElevation(template.interpolateElevation());
|
||||||
generatorBuilder.setNoise2d(template.isNoise2d());
|
generatorBuilder.setNoise2d(template.isNoise2d());
|
||||||
generatorBuilder.setBase(template.getNoise2dBase());
|
generatorBuilder.setBase(template.getNoise2dBase());
|
||||||
|
|||||||
Reference in New Issue
Block a user