diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/BinaryArithmeticSampler.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/BinaryArithmeticSampler.java new file mode 100644 index 000000000..3f6b02bd0 --- /dev/null +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/arithmetic/BinaryArithmeticSampler.java @@ -0,0 +1,26 @@ +package com.dfsek.terra.addons.noise.samplers.arithmetic; + +import com.dfsek.terra.api.noise.NoiseSampler; + + +public abstract class BinaryArithmeticSampler implements NoiseSampler { + private final NoiseSampler left; + private final NoiseSampler right; + + protected BinaryArithmeticSampler(NoiseSampler left, NoiseSampler right) { + this.left = left; + this.right = right; + } + + @Override + public double noise(long seed, double x, double y) { + return operate(left.noise(seed, x, y),right.noise(seed, x, y)); + } + + @Override + public double noise(long seed, double x, double y, double z) { + return operate(left.noise(seed, x, y, z), right.noise(seed, x, y, z)); + } + + public abstract double operate(double left, double right); +}