mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-04-16 13:23:07 +00:00
WIP Seismic Integration
This commit is contained in:
@@ -6,18 +6,18 @@ import com.dfsek.terra.addons.terrascript.parser.lang.Scope;
|
||||
import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function;
|
||||
import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments;
|
||||
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
import com.dfsek.seismic.type.sampler.Sampler;
|
||||
|
||||
|
||||
public class ConstantSamplerFunction implements Function<Number> {
|
||||
private final Returnable<Number> x, y, z;
|
||||
private final NoiseSampler sampler;
|
||||
private final Sampler sampler;
|
||||
|
||||
|
||||
private final boolean twoD;
|
||||
private final Position position;
|
||||
|
||||
public ConstantSamplerFunction(NoiseSampler sampler,
|
||||
public ConstantSamplerFunction(Sampler sampler,
|
||||
Returnable<Number> x,
|
||||
Returnable<Number> y,
|
||||
Returnable<Number> z,
|
||||
@@ -39,10 +39,10 @@ public class ConstantSamplerFunction implements Function<Number> {
|
||||
double z = this.z.apply(implementationArguments, scope).doubleValue();
|
||||
|
||||
if(twoD) {
|
||||
return sampler.noise(arguments.getWorld().getSeed(), x, z);
|
||||
return sampler.getSample(arguments.getWorld().getSeed(), x, z);
|
||||
} else {
|
||||
double y = this.y.apply(implementationArguments, scope).doubleValue();
|
||||
return sampler.noise(arguments.getWorld().getSeed(), x, y, z);
|
||||
return sampler.getSample(arguments.getWorld().getSeed(), x, y, z);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,14 +8,14 @@ import com.dfsek.terra.addons.terrascript.parser.lang.Scope;
|
||||
import com.dfsek.terra.addons.terrascript.parser.lang.functions.Function;
|
||||
import com.dfsek.terra.addons.terrascript.script.TerraImplementationArguments;
|
||||
import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
import com.dfsek.seismic.type.sampler.Sampler;
|
||||
|
||||
|
||||
public class SamplerFunction implements Function<Number> {
|
||||
private final Returnable<Number> x, y, z;
|
||||
private final Returnable<String> function;
|
||||
|
||||
private final java.util.function.Function<Supplier<String>, NoiseSampler> samplerFunction;
|
||||
private final java.util.function.Function<Supplier<String>, Sampler> samplerFunction;
|
||||
|
||||
private final boolean twoD;
|
||||
private final Position position;
|
||||
@@ -24,7 +24,7 @@ public class SamplerFunction implements Function<Number> {
|
||||
Returnable<Number> x,
|
||||
Returnable<Number> y,
|
||||
Returnable<Number> z,
|
||||
java.util.function.Function<Supplier<String>, NoiseSampler> samplerFunction,
|
||||
java.util.function.Function<Supplier<String>, Sampler> samplerFunction,
|
||||
boolean twoD,
|
||||
Position position) {
|
||||
this.x = x;
|
||||
@@ -43,12 +43,12 @@ public class SamplerFunction implements Function<Number> {
|
||||
|
||||
double z = this.z.apply(implementationArguments, scope).doubleValue();
|
||||
|
||||
NoiseSampler sampler = samplerFunction.apply(() -> function.apply(implementationArguments, scope));
|
||||
Sampler sampler = samplerFunction.apply(() -> function.apply(implementationArguments, scope));
|
||||
if(twoD) {
|
||||
return sampler.noise(arguments.getWorld().getSeed(), x, z);
|
||||
return sampler.getSample(arguments.getWorld().getSeed(), x, z);
|
||||
} else {
|
||||
double y = this.y.apply(implementationArguments, scope).doubleValue();
|
||||
return sampler.noise(arguments.getWorld().getSeed(), x, y, z);
|
||||
return sampler.getSample(arguments.getWorld().getSeed(), x, y, z);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.dfsek.terra.addons.noise.config.DimensionApplicableNoiseSampler;
|
||||
import com.dfsek.terra.addons.noise.config.DimensionApplicableSampler;
|
||||
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable;
|
||||
import com.dfsek.terra.addons.terrascript.parser.lang.Returnable.ReturnType;
|
||||
import com.dfsek.terra.addons.terrascript.parser.lang.constants.NumericConstant;
|
||||
@@ -15,10 +15,10 @@ import com.dfsek.terra.addons.terrascript.tokenizer.Position;
|
||||
|
||||
|
||||
public class SamplerFunctionBuilder implements FunctionBuilder<com.dfsek.terra.addons.terrascript.parser.lang.functions.Function<Number>> {
|
||||
private final Map<String, DimensionApplicableNoiseSampler> samplers2d;
|
||||
private final Map<String, DimensionApplicableNoiseSampler> samplers3d;
|
||||
private final Map<String, DimensionApplicableSampler> samplers2d;
|
||||
private final Map<String, DimensionApplicableSampler> samplers3d;
|
||||
|
||||
public SamplerFunctionBuilder(Map<String, DimensionApplicableNoiseSampler> samplers) {
|
||||
public SamplerFunctionBuilder(Map<String, DimensionApplicableSampler> samplers) {
|
||||
this.samplers2d = new HashMap<>();
|
||||
this.samplers3d = new HashMap<>();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user