From 177cc512faa99f521690740ed5d5ff8f47280941 Mon Sep 17 00:00:00 2001 From: dfsek Date: Wed, 15 Dec 2021 20:41:42 -0700 Subject: [PATCH] create and register LinearHeightmapSamplerTemplate --- .../dfsek/terra/addons/noise/NoiseAddon.java | 3 +++ .../LinearHeightmapSamplerTemplate.java | 27 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/LinearHeightmapSamplerTemplate.java diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/NoiseAddon.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/NoiseAddon.java index 411390f69..02e0b2834 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/NoiseAddon.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/NoiseAddon.java @@ -19,6 +19,7 @@ import com.dfsek.terra.addons.noise.config.templates.DomainWarpTemplate; import com.dfsek.terra.addons.noise.config.templates.FunctionTemplate; import com.dfsek.terra.addons.noise.config.templates.ImageSamplerTemplate; import com.dfsek.terra.addons.noise.config.templates.KernelTemplate; +import com.dfsek.terra.addons.noise.config.templates.LinearHeightmapSamplerTemplate; import com.dfsek.terra.addons.noise.config.templates.noise.CellularNoiseTemplate; import com.dfsek.terra.addons.noise.config.templates.noise.ConstantNoiseTemplate; import com.dfsek.terra.addons.noise.config.templates.noise.ExpressionFunctionTemplate; @@ -107,6 +108,8 @@ public class NoiseAddon implements AddonInitializer { noiseRegistry.register("CONSTANT", ConstantNoiseTemplate::new); noiseRegistry.register("KERNEL", KernelTemplate::new); + + noiseRegistry.register("LINEAR_HEIGHTMAP", LinearHeightmapSamplerTemplate::new); Map packSamplers = new LinkedHashMap<>(); Map packFunctions = new LinkedHashMap<>(); diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/LinearHeightmapSamplerTemplate.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/LinearHeightmapSamplerTemplate.java new file mode 100644 index 000000000..3185ea9c3 --- /dev/null +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/config/templates/LinearHeightmapSamplerTemplate.java @@ -0,0 +1,27 @@ +package com.dfsek.terra.addons.noise.config.templates; + +import com.dfsek.tectonic.api.config.template.annotations.Default; +import com.dfsek.tectonic.api.config.template.annotations.Value; + +import com.dfsek.terra.addons.noise.samplers.LinearHeightmapSampler; +import com.dfsek.terra.api.noise.NoiseSampler; + + +@SuppressWarnings("FieldMayBeFinal") +public class LinearHeightmapSamplerTemplate extends SamplerTemplate { + @Value("sampler") + @Default + private NoiseSampler sampler = NoiseSampler.zero(); + + @Value("base") + private double base; + + @Value("scale") + @Default + private double scale = 1; + + @Override + public NoiseSampler get() { + return new LinearHeightmapSampler(sampler, scale, base); + } +}