diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/LinearHeightmapSampler.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/LinearHeightmapSampler.java new file mode 100644 index 000000000..1f7726034 --- /dev/null +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/LinearHeightmapSampler.java @@ -0,0 +1,27 @@ +package com.dfsek.terra.addons.noise.samplers; + +import com.dfsek.terra.api.noise.NoiseSampler; + + +public class LinearHeightmapSampler implements NoiseSampler { + private final NoiseSampler sampler; + private final double scale; + private final double base; + + public LinearHeightmapSampler(NoiseSampler sampler, double scale, double base) { + this.sampler = sampler; + this.scale = scale; + this.base = base; + } + + + @Override + public double noise(long seed, double x, double y) { + return noise(seed, x, 0, y); + } + + @Override + public double noise(long seed, double x, double y, double z) { + return -y + base + sampler.noise(seed, x, y, z) * scale; + } +}