From 1fc139cc8cc98fb55414303b697482b46929e16e Mon Sep 17 00:00:00 2001 From: dfsek Date: Wed, 15 Dec 2021 21:59:32 -0700 Subject: [PATCH] create and register GaussianRandomLocatorTemplate --- .../addons/feature/locator/LocatorAddon.java | 5 +++ .../config/GaussianRandomLocatorTemplate.java | 34 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/GaussianRandomLocatorTemplate.java diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/LocatorAddon.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/LocatorAddon.java index 605beeb52..77d8e5625 100644 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/LocatorAddon.java +++ b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/LocatorAddon.java @@ -12,6 +12,7 @@ import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; import java.util.function.Supplier; import com.dfsek.terra.addons.feature.locator.config.AndLocatorTemplate; +import com.dfsek.terra.addons.feature.locator.config.GaussianRandomLocatorTemplate; import com.dfsek.terra.addons.feature.locator.config.Noise3DLocatorTemplate; import com.dfsek.terra.addons.feature.locator.config.NoiseLocatorTemplate; import com.dfsek.terra.addons.feature.locator.config.OrLocatorTemplate; @@ -57,8 +58,12 @@ public class LocatorAddon implements AddonInitializer { .then(event -> { CheckedRegistry>> locatorRegistry = event.getPack().getOrCreateRegistry(LOCATOR_TOKEN); locatorRegistry.register("SURFACE", () -> new SurfaceLocatorTemplate(platform)); + locatorRegistry.register("RANDOM", RandomLocatorTemplate::new); + locatorRegistry.register("GAUSSIAN_RANDOM", GaussianRandomLocatorTemplate::new); + locatorRegistry.register("PATTERN", PatternLocatorTemplate::new); + locatorRegistry.register("NOISE", NoiseLocatorTemplate::new); locatorRegistry.register("NOISE_3D", Noise3DLocatorTemplate::new); diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/GaussianRandomLocatorTemplate.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/GaussianRandomLocatorTemplate.java new file mode 100644 index 000000000..d8c2387b6 --- /dev/null +++ b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/GaussianRandomLocatorTemplate.java @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2020-2021 Polyhedral Development + * + * The Terra Core Addons are licensed under the terms of the MIT License. For more details, + * reference the LICENSE file in this module's root directory. + */ + +package com.dfsek.terra.addons.feature.locator.config; + +import com.dfsek.tectonic.api.config.template.annotations.Value; +import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; + +import com.dfsek.terra.addons.feature.locator.locators.GaussianRandomLocator; +import com.dfsek.terra.addons.feature.locator.locators.RandomLocator; +import com.dfsek.terra.api.config.meta.Meta; +import com.dfsek.terra.api.structure.feature.Locator; +import com.dfsek.terra.api.util.Range; + + +public class GaussianRandomLocatorTemplate implements ObjectTemplate { + @Value("height") + private @Meta Range height; + + @Value("amount") + private @Meta Range amount; + + @Value("standard-deviation") + private double standardDeviation; + + @Override + public Locator get() { + return new GaussianRandomLocator(height, amount, standardDeviation); + } +}