diff --git a/common/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/DomainWarpTemplate.java b/common/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/DomainWarpTemplate.java index 3607c17e9..e109e7dd9 100644 --- a/common/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/DomainWarpTemplate.java +++ b/common/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/DomainWarpTemplate.java @@ -2,6 +2,7 @@ package com.dfsek.terra.config.loaders.config.sampler.templates; import com.dfsek.tectonic.annotations.Default; import com.dfsek.tectonic.annotations.Value; +import com.dfsek.terra.api.config.meta.MetaValue; import com.dfsek.terra.api.math.noise.NoiseSampler; import com.dfsek.terra.api.math.noise.samplers.DomainWarpedSampler; import com.dfsek.terra.api.util.seeded.NoiseSeeded; @@ -9,21 +10,21 @@ import com.dfsek.terra.api.util.seeded.NoiseSeeded; @SuppressWarnings({"unused", "FieldMayBeFinal"}) public class DomainWarpTemplate extends SamplerTemplate { @Value("warp") - private NoiseSeeded warp; + private MetaValue warp; @Value("function") - private NoiseSeeded function; + private MetaValue function; @Value("salt") @Default - private int salt = 0; + private MetaValue salt = MetaValue.of(0); @Value("amplitude") @Default - private double amplitude = 1; + private MetaValue amplitude = MetaValue.of(1d); @Override public NoiseSampler apply(Long seed) { - return new DomainWarpedSampler(function.apply(seed), warp.apply(seed), (int) (seed + salt), amplitude); + return new DomainWarpedSampler(function.get().apply(seed), warp.get().apply(seed), (int) (seed + salt.get()), amplitude.get()); } } diff --git a/common/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/ImageSamplerTemplate.java b/common/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/ImageSamplerTemplate.java index db2ced46e..3b30c83ac 100644 --- a/common/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/ImageSamplerTemplate.java +++ b/common/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/ImageSamplerTemplate.java @@ -1,6 +1,7 @@ package com.dfsek.terra.config.loaders.config.sampler.templates; import com.dfsek.tectonic.annotations.Value; +import com.dfsek.terra.api.config.meta.MetaValue; import com.dfsek.terra.api.math.noise.NoiseSampler; import com.dfsek.terra.api.math.noise.samplers.ImageSampler; @@ -10,16 +11,16 @@ import java.awt.image.BufferedImage; public class ImageSamplerTemplate extends SamplerTemplate { @Value("image") - private BufferedImage image; + private MetaValue image; @Value("frequency") - private double frequency; + private MetaValue frequency; @Value("channel") - private ImageSampler.Channel channel; + private MetaValue channel; @Override public NoiseSampler apply(Long seed) { - return new ImageSampler(image, channel, frequency); + return new ImageSampler(image.get(), channel.get(), frequency.get()); } } diff --git a/common/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/KernelTemplate.java b/common/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/KernelTemplate.java index 0fc8db115..e25deeb3e 100644 --- a/common/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/KernelTemplate.java +++ b/common/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/KernelTemplate.java @@ -4,6 +4,7 @@ import com.dfsek.tectonic.annotations.Default; import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.config.ValidatedConfigTemplate; import com.dfsek.tectonic.exception.ValidationException; +import com.dfsek.terra.api.config.meta.MetaValue; import com.dfsek.terra.api.math.noise.NoiseSampler; import com.dfsek.terra.api.math.noise.samplers.KernelSampler; import com.dfsek.terra.api.util.seeded.NoiseSeeded; @@ -14,18 +15,18 @@ import java.util.List; public class KernelTemplate extends SamplerTemplate implements ValidatedConfigTemplate { @Value("kernel") - private List> kernel; + private List>> kernel; @Value("factor") @Default - private double factor = 1; + private MetaValue factor = MetaValue.of(1d); @Value("function") - private NoiseSeeded function; + private MetaValue function; @Value("frequency") @Default - private double frequency = 1; + private MetaValue frequency = MetaValue.of(1d); @Override public NoiseSampler apply(Long seed) { @@ -33,12 +34,12 @@ public class KernelTemplate extends SamplerTemplate implements Va for(int x = 0; x < kernel.size(); x++) { for(int y = 0; y < kernel.get(x).size(); y++) { - k[x][y] = kernel.get(x).get(y) * factor; + k[x][y] = kernel.get(x).get(y).get() * factor.get(); } } - KernelSampler sampler = new KernelSampler(k, function.apply(seed)); - sampler.setFrequency(frequency); + KernelSampler sampler = new KernelSampler(k, function.get().apply(seed)); + sampler.setFrequency(frequency.get()); return sampler; } diff --git a/common/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/SamplerTemplate.java b/common/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/SamplerTemplate.java index 7914ec957..db573da6f 100644 --- a/common/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/SamplerTemplate.java +++ b/common/src/main/java/com/dfsek/terra/config/loaders/config/sampler/templates/SamplerTemplate.java @@ -5,6 +5,7 @@ import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.config.ValidatedConfigTemplate; import com.dfsek.tectonic.exception.ValidationException; import com.dfsek.tectonic.loading.object.ObjectTemplate; +import com.dfsek.terra.api.config.meta.MetaValue; import com.dfsek.terra.api.math.noise.NoiseSampler; import com.dfsek.terra.api.util.seeded.NoiseSeeded; @@ -12,15 +13,15 @@ import com.dfsek.terra.api.util.seeded.NoiseSeeded; public abstract class SamplerTemplate implements ValidatedConfigTemplate, ObjectTemplate, NoiseSeeded { @Value("dimensions") @Default - private int dimensions = 2; + private MetaValue dimensions = MetaValue.of(2); public int getDimensions() { - return dimensions; + return dimensions.get(); } @Override public boolean validate() throws ValidationException { - if(dimensions != 2 && dimensions != 3) throw new ValidationException("Illegal amount of dimensions: " + dimensions); + if(dimensions.get() != 2 && dimensions.get() != 3) throw new ValidationException("Illegal amount of dimensions: " + dimensions); return true; }