From 2368763d7430f194d4b53c54dea6e612e0770dfe Mon Sep 17 00:00:00 2001 From: dfsek Date: Sun, 17 Oct 2021 14:37:50 -0700 Subject: [PATCH 1/8] Initial commit --- .../config-distributors/build.gradle.kts | 2 + .../feature/distributor/DistributorAddon.java | 56 +++++++++++++++++++ .../config/AndDistributorTemplate.java | 33 +++++++++++ .../config/NoDistributorTemplate.java | 13 +++++ .../config/NoiseDistributorTemplate.java | 24 ++++++++ .../config/OrDistributorTemplate.java | 33 +++++++++++ .../config/PointSetDistributorTemplate.java | 22 ++++++++ .../config/YesDistributorTemplate.java | 13 +++++ .../distributors/NoiseDistributor.java | 21 +++++++ .../distributors/PointSetDistributor.java | 20 +++++++ .../feature/distributor/util/Point.java | 34 +++++++++++ .../distributor/util/PointTemplate.java | 20 +++++++ 12 files changed, 291 insertions(+) create mode 100644 common/addons/config-distributors/build.gradle.kts create mode 100644 common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/DistributorAddon.java create mode 100644 common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/AndDistributorTemplate.java create mode 100644 common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/NoDistributorTemplate.java create mode 100644 common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/NoiseDistributorTemplate.java create mode 100644 common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/OrDistributorTemplate.java create mode 100644 common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/PointSetDistributorTemplate.java create mode 100644 common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/YesDistributorTemplate.java create mode 100644 common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/distributors/NoiseDistributor.java create mode 100644 common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/distributors/PointSetDistributor.java create mode 100644 common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/util/Point.java create mode 100644 common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/util/PointTemplate.java diff --git a/common/addons/config-distributors/build.gradle.kts b/common/addons/config-distributors/build.gradle.kts new file mode 100644 index 000000000..7d82dc72f --- /dev/null +++ b/common/addons/config-distributors/build.gradle.kts @@ -0,0 +1,2 @@ +dependencies { +} diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/DistributorAddon.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/DistributorAddon.java new file mode 100644 index 000000000..0a64b1386 --- /dev/null +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/DistributorAddon.java @@ -0,0 +1,56 @@ +package com.dfsek.terra.addons.feature.distributor; + +import com.dfsek.tectonic.loading.object.ObjectTemplate; + +import java.util.function.Supplier; + +import com.dfsek.terra.addons.feature.distributor.config.AndDistributorTemplate; +import com.dfsek.terra.addons.feature.distributor.config.NoiseDistributorTemplate; +import com.dfsek.terra.addons.feature.distributor.config.OrDistributorTemplate; +import com.dfsek.terra.addons.feature.distributor.config.PointSetDistributorTemplate; +import com.dfsek.terra.addons.feature.distributor.config.YesDistributorTemplate; +import com.dfsek.terra.addons.feature.distributor.util.Point; +import com.dfsek.terra.addons.feature.distributor.util.PointTemplate; +import com.dfsek.terra.api.Platform; +import com.dfsek.terra.api.addon.TerraAddon; +import com.dfsek.terra.api.addon.annotations.Addon; +import com.dfsek.terra.api.addon.annotations.Author; +import com.dfsek.terra.api.addon.annotations.Version; +import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent; +import com.dfsek.terra.api.event.functional.FunctionalEventHandler; +import com.dfsek.terra.api.inject.annotations.Inject; +import com.dfsek.terra.api.registry.CheckedRegistry; +import com.dfsek.terra.api.structure.feature.Distributor; +import com.dfsek.terra.api.util.reflection.TypeKey; + + +@Addon("config-distributors") +@Version("1.0.0") +@Author("Terra") +public class DistributorAddon extends TerraAddon { + public static final TypeKey>> DISTRIBUTOR_TOKEN = new TypeKey<>() { + }; + @Inject + private Platform platform; + + @Override + public void initialize() { + platform.getEventManager() + .getHandler(FunctionalEventHandler.class) + .register(this, ConfigPackPreLoadEvent.class) + .then(event -> { + CheckedRegistry>> distributorRegistry = event.getPack().getOrCreateRegistry( + DISTRIBUTOR_TOKEN); + distributorRegistry.register("NOISE", NoiseDistributorTemplate::new); + distributorRegistry.register("POINTS", PointSetDistributorTemplate::new); + distributorRegistry.register("AND", AndDistributorTemplate::new); + distributorRegistry.register("OR", OrDistributorTemplate::new); + distributorRegistry.register("YES", YesDistributorTemplate::new); + distributorRegistry.register("NO", NoiseDistributorTemplate::new); + + event.getPack() + .applyLoader(Point.class, PointTemplate::new); + }) + .failThrough(); + } +} diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/AndDistributorTemplate.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/AndDistributorTemplate.java new file mode 100644 index 000000000..55d973f3f --- /dev/null +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/AndDistributorTemplate.java @@ -0,0 +1,33 @@ +package com.dfsek.terra.addons.feature.distributor.config; + +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 java.util.List; + +import com.dfsek.terra.api.config.meta.Meta; +import com.dfsek.terra.api.structure.feature.Distributor; + + +public class AndDistributorTemplate implements ObjectTemplate, ValidatedConfigTemplate { + @Value("distributors") + private @Meta List<@Meta Distributor> distributors; + + + @Override + public Distributor get() { + Distributor current = distributors.remove(0); + while(!distributors.isEmpty()) { + current = current.and(distributors.remove(0)); + } + return current; + } + + @Override + public boolean validate() throws ValidationException { + if(distributors.isEmpty()) throw new ValidationException("AND Distributor must specify at least 1 distributor."); + return true; + } +} diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/NoDistributorTemplate.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/NoDistributorTemplate.java new file mode 100644 index 000000000..bafa1b50d --- /dev/null +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/NoDistributorTemplate.java @@ -0,0 +1,13 @@ +package com.dfsek.terra.addons.feature.distributor.config; + +import com.dfsek.tectonic.loading.object.ObjectTemplate; + +import com.dfsek.terra.api.structure.feature.Distributor; + + +public class NoDistributorTemplate implements ObjectTemplate { + @Override + public Distributor get() { + return Distributor.no(); + } +} diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/NoiseDistributorTemplate.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/NoiseDistributorTemplate.java new file mode 100644 index 000000000..945928f02 --- /dev/null +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/NoiseDistributorTemplate.java @@ -0,0 +1,24 @@ +package com.dfsek.terra.addons.feature.distributor.config; + +import com.dfsek.tectonic.annotations.Default; +import com.dfsek.tectonic.annotations.Value; +import com.dfsek.tectonic.loading.object.ObjectTemplate; + +import com.dfsek.terra.addons.feature.distributor.distributors.NoiseDistributor; +import com.dfsek.terra.api.config.meta.Meta; +import com.dfsek.terra.api.noise.NoiseSampler; +import com.dfsek.terra.api.structure.feature.Distributor; + + +public class NoiseDistributorTemplate implements ObjectTemplate { + @Value("threshold") + @Default + private @Meta double threshold = 0; + @Value("distribution") + private @Meta NoiseSampler noise; + + @Override + public Distributor get() { + return new NoiseDistributor(noise, threshold); + } +} diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/OrDistributorTemplate.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/OrDistributorTemplate.java new file mode 100644 index 000000000..3a8aa26c3 --- /dev/null +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/OrDistributorTemplate.java @@ -0,0 +1,33 @@ +package com.dfsek.terra.addons.feature.distributor.config; + +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 java.util.List; + +import com.dfsek.terra.api.config.meta.Meta; +import com.dfsek.terra.api.structure.feature.Distributor; + + +public class OrDistributorTemplate implements ObjectTemplate, ValidatedConfigTemplate { + @Value("distributors") + private @Meta List<@Meta Distributor> distributors; + + + @Override + public Distributor get() { + Distributor current = distributors.remove(0); + while(!distributors.isEmpty()) { + current = current.or(distributors.remove(0)); + } + return current; + } + + @Override + public boolean validate() throws ValidationException { + if(distributors.isEmpty()) throw new ValidationException("AND Distributor must specify at least 1 distributor."); + return true; + } +} diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/PointSetDistributorTemplate.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/PointSetDistributorTemplate.java new file mode 100644 index 000000000..da61112a7 --- /dev/null +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/PointSetDistributorTemplate.java @@ -0,0 +1,22 @@ +package com.dfsek.terra.addons.feature.distributor.config; + +import com.dfsek.tectonic.annotations.Value; +import com.dfsek.tectonic.loading.object.ObjectTemplate; + +import java.util.Set; + +import com.dfsek.terra.addons.feature.distributor.distributors.PointSetDistributor; +import com.dfsek.terra.addons.feature.distributor.util.Point; +import com.dfsek.terra.api.config.meta.Meta; +import com.dfsek.terra.api.structure.feature.Distributor; + + +public class PointSetDistributorTemplate implements ObjectTemplate { + @Value("points") + private @Meta Set<@Meta Point> points; + + @Override + public Distributor get() { + return new PointSetDistributor(points); + } +} diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/YesDistributorTemplate.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/YesDistributorTemplate.java new file mode 100644 index 000000000..aacddc06f --- /dev/null +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/YesDistributorTemplate.java @@ -0,0 +1,13 @@ +package com.dfsek.terra.addons.feature.distributor.config; + +import com.dfsek.tectonic.loading.object.ObjectTemplate; + +import com.dfsek.terra.api.structure.feature.Distributor; + + +public class YesDistributorTemplate implements ObjectTemplate { + @Override + public Distributor get() { + return Distributor.yes(); + } +} diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/distributors/NoiseDistributor.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/distributors/NoiseDistributor.java new file mode 100644 index 000000000..8303c2288 --- /dev/null +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/distributors/NoiseDistributor.java @@ -0,0 +1,21 @@ +package com.dfsek.terra.addons.feature.distributor.distributors; + +import com.dfsek.terra.api.noise.NoiseSampler; +import com.dfsek.terra.api.structure.feature.Distributor; + + +public class NoiseDistributor implements Distributor { + private final NoiseSampler sampler; + + private final double threshold; + + public NoiseDistributor(NoiseSampler sampler, double threshold) { + this.sampler = sampler; + this.threshold = threshold; + } + + @Override + public boolean matches(int x, int z, long seed) { + return sampler.getNoiseSeeded(seed, x, z) > threshold; + } +} diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/distributors/PointSetDistributor.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/distributors/PointSetDistributor.java new file mode 100644 index 000000000..5508ebe8f --- /dev/null +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/distributors/PointSetDistributor.java @@ -0,0 +1,20 @@ +package com.dfsek.terra.addons.feature.distributor.distributors; + +import java.util.Set; + +import com.dfsek.terra.addons.feature.distributor.util.Point; +import com.dfsek.terra.api.structure.feature.Distributor; + + +public class PointSetDistributor implements Distributor { + private final Set points; + + public PointSetDistributor(Set points) { + this.points = points; + } + + @Override + public boolean matches(int x, int z, long seed) { + return points.contains(new Point(x, z)); + } +} diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/util/Point.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/util/Point.java new file mode 100644 index 000000000..973f1c8d1 --- /dev/null +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/util/Point.java @@ -0,0 +1,34 @@ +package com.dfsek.terra.addons.feature.distributor.util; + +public class Point { + private final int x; + private final int z; + + private final int hash; + + public Point(int x, int z) { + this.x = x; + this.z = z; + this.hash = 31 * x + z; + } + + public int getX() { + return x; + } + + public int getZ() { + return z; + } + + @Override + public int hashCode() { + return hash; + } + + @Override + public boolean equals(Object obj) { + if(!(obj instanceof Point)) return false; + Point that = (Point) obj; + return this.x == that.x && this.z == that.z; + } +} diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/util/PointTemplate.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/util/PointTemplate.java new file mode 100644 index 000000000..864b5168f --- /dev/null +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/util/PointTemplate.java @@ -0,0 +1,20 @@ +package com.dfsek.terra.addons.feature.distributor.util; + +import com.dfsek.tectonic.annotations.Value; +import com.dfsek.tectonic.loading.object.ObjectTemplate; + +import com.dfsek.terra.api.config.meta.Meta; + + +public class PointTemplate implements ObjectTemplate { + @Value("x") + private @Meta int x; + + @Value("z") + private @Meta int z; + + @Override + public Point get() { + return new Point(x, z); + } +} From 0259b620e49ed1e4f46c700e49d719fcf8c22d63 Mon Sep 17 00:00:00 2001 From: dfsek Date: Wed, 17 Nov 2021 10:20:05 -0700 Subject: [PATCH 2/8] create addon manifests --- .../src/main/resources/terra.addon.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 common/addons/config-distributors/src/main/resources/terra.addon.yml diff --git a/common/addons/config-distributors/src/main/resources/terra.addon.yml b/common/addons/config-distributors/src/main/resources/terra.addon.yml new file mode 100644 index 000000000..bf5ccd2a8 --- /dev/null +++ b/common/addons/config-distributors/src/main/resources/terra.addon.yml @@ -0,0 +1,12 @@ +schema-version: 1 +contributors: + - Terra contributors +id: config-distributors +version: 0.1.0 +entrypoints: + - "com.dfsek.terra.addons.feature.distributor.DistributorAddon" +website: + issues: https://github.com/PolyhedralDev/Terra-config-distributors/issues + source: https://github.com/PolyhedralDev/Terra-config-distributors + docs: https://github.com/PolyhedralDev/Terra/wiki +license: GNU LGPL v3.0 \ No newline at end of file From b06e04e306b77ee01ef25eeeb090b860110cd859 Mon Sep 17 00:00:00 2001 From: dfsek Date: Wed, 17 Nov 2021 12:20:17 -0700 Subject: [PATCH 3/8] depend on manifest addons in core addon modules --- common/addons/config-distributors/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/common/addons/config-distributors/build.gradle.kts b/common/addons/config-distributors/build.gradle.kts index 7d82dc72f..147905b20 100644 --- a/common/addons/config-distributors/build.gradle.kts +++ b/common/addons/config-distributors/build.gradle.kts @@ -1,2 +1,3 @@ dependencies { + "shadedApi"(project(":common:addons:manifest-addon-loader")) } From 927273511c7bf8e00691431cb5d7eb8bc4286dc2 Mon Sep 17 00:00:00 2001 From: dfsek Date: Wed, 17 Nov 2021 12:39:23 -0700 Subject: [PATCH 4/8] create addon manifests --- .../addons/feature/distributor/DistributorAddon.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/DistributorAddon.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/DistributorAddon.java index 0a64b1386..6e2c46e20 100644 --- a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/DistributorAddon.java +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/DistributorAddon.java @@ -11,7 +11,9 @@ import com.dfsek.terra.addons.feature.distributor.config.PointSetDistributorTemp import com.dfsek.terra.addons.feature.distributor.config.YesDistributorTemplate; import com.dfsek.terra.addons.feature.distributor.util.Point; import com.dfsek.terra.addons.feature.distributor.util.PointTemplate; +import com.dfsek.terra.addons.manifest.api.AddonInitializer; import com.dfsek.terra.api.Platform; +import com.dfsek.terra.api.addon.BaseAddon; import com.dfsek.terra.api.addon.TerraAddon; import com.dfsek.terra.api.addon.annotations.Addon; import com.dfsek.terra.api.addon.annotations.Author; @@ -24,20 +26,20 @@ import com.dfsek.terra.api.structure.feature.Distributor; import com.dfsek.terra.api.util.reflection.TypeKey; -@Addon("config-distributors") -@Version("1.0.0") -@Author("Terra") -public class DistributorAddon extends TerraAddon { +public class DistributorAddon implements AddonInitializer { public static final TypeKey>> DISTRIBUTOR_TOKEN = new TypeKey<>() { }; @Inject private Platform platform; + @Inject + private BaseAddon addon; + @Override public void initialize() { platform.getEventManager() .getHandler(FunctionalEventHandler.class) - .register(this, ConfigPackPreLoadEvent.class) + .register(addon, ConfigPackPreLoadEvent.class) .then(event -> { CheckedRegistry>> distributorRegistry = event.getPack().getOrCreateRegistry( DISTRIBUTOR_TOKEN); From ad7cc4fce0fa43fbd61bac0a5762c66fc452c963 Mon Sep 17 00:00:00 2001 From: dfsek Date: Wed, 17 Nov 2021 16:28:39 -0700 Subject: [PATCH 5/8] format --- .../feature/distributor/DistributorAddon.java | 26 ++++++++----------- .../config/NoiseDistributorTemplate.java | 1 + 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/DistributorAddon.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/DistributorAddon.java index 6e2c46e20..bd2f9c68e 100644 --- a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/DistributorAddon.java +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/DistributorAddon.java @@ -14,10 +14,6 @@ import com.dfsek.terra.addons.feature.distributor.util.PointTemplate; import com.dfsek.terra.addons.manifest.api.AddonInitializer; import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.addon.BaseAddon; -import com.dfsek.terra.api.addon.TerraAddon; -import com.dfsek.terra.api.addon.annotations.Addon; -import com.dfsek.terra.api.addon.annotations.Author; -import com.dfsek.terra.api.addon.annotations.Version; import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent; import com.dfsek.terra.api.event.functional.FunctionalEventHandler; import com.dfsek.terra.api.inject.annotations.Inject; @@ -41,18 +37,18 @@ public class DistributorAddon implements AddonInitializer { .getHandler(FunctionalEventHandler.class) .register(addon, ConfigPackPreLoadEvent.class) .then(event -> { - CheckedRegistry>> distributorRegistry = event.getPack().getOrCreateRegistry( - DISTRIBUTOR_TOKEN); - distributorRegistry.register("NOISE", NoiseDistributorTemplate::new); - distributorRegistry.register("POINTS", PointSetDistributorTemplate::new); - distributorRegistry.register("AND", AndDistributorTemplate::new); - distributorRegistry.register("OR", OrDistributorTemplate::new); - distributorRegistry.register("YES", YesDistributorTemplate::new); - distributorRegistry.register("NO", NoiseDistributorTemplate::new); + CheckedRegistry>> distributorRegistry = event.getPack().getOrCreateRegistry( + DISTRIBUTOR_TOKEN); + distributorRegistry.register("NOISE", NoiseDistributorTemplate::new); + distributorRegistry.register("POINTS", PointSetDistributorTemplate::new); + distributorRegistry.register("AND", AndDistributorTemplate::new); + distributorRegistry.register("OR", OrDistributorTemplate::new); + distributorRegistry.register("YES", YesDistributorTemplate::new); + distributorRegistry.register("NO", NoiseDistributorTemplate::new); - event.getPack() - .applyLoader(Point.class, PointTemplate::new); - }) + event.getPack() + .applyLoader(Point.class, PointTemplate::new); + }) .failThrough(); } } diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/NoiseDistributorTemplate.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/NoiseDistributorTemplate.java index 945928f02..2a422e18e 100644 --- a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/NoiseDistributorTemplate.java +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/NoiseDistributorTemplate.java @@ -10,6 +10,7 @@ import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.structure.feature.Distributor; +@SuppressWarnings("FieldMayBeFinal") public class NoiseDistributorTemplate implements ObjectTemplate { @Value("threshold") @Default From 6bb0f29433739e88dae8c2049622ba52be0f530b Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 18 Nov 2021 21:38:46 -0700 Subject: [PATCH 6/8] add feature dependencies --- .../config-distributors/src/main/resources/terra.addon.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/common/addons/config-distributors/src/main/resources/terra.addon.yml b/common/addons/config-distributors/src/main/resources/terra.addon.yml index bf5ccd2a8..540d58480 100644 --- a/common/addons/config-distributors/src/main/resources/terra.addon.yml +++ b/common/addons/config-distributors/src/main/resources/terra.addon.yml @@ -9,4 +9,7 @@ website: issues: https://github.com/PolyhedralDev/Terra-config-distributors/issues source: https://github.com/PolyhedralDev/Terra-config-distributors docs: https://github.com/PolyhedralDev/Terra/wiki -license: GNU LGPL v3.0 \ No newline at end of file +license: GNU LGPL v3.0 +depends: + config-feature: "0.1.+" + generation-stage-feature: "0.1.+" \ No newline at end of file From 28373086ad349eed1ddb3a7ccb0910d688ceea73 Mon Sep 17 00:00:00 2001 From: dfsek Date: Fri, 19 Nov 2021 08:47:16 -0700 Subject: [PATCH 7/8] relicense addons under MIT license --- common/addons/config-distributors/LICENSE | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 common/addons/config-distributors/LICENSE diff --git a/common/addons/config-distributors/LICENSE b/common/addons/config-distributors/LICENSE new file mode 100644 index 000000000..64c1cd516 --- /dev/null +++ b/common/addons/config-distributors/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020-2021 Polyhedral Development + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file From 932da705344e5c67165e9194eeac8d1a17749df4 Mon Sep 17 00:00:00 2001 From: dfsek Date: Fri, 19 Nov 2021 15:42:25 -0700 Subject: [PATCH 8/8] add license headers --- .../terra/addons/feature/distributor/DistributorAddon.java | 7 +++++++ .../feature/distributor/config/AndDistributorTemplate.java | 7 +++++++ .../feature/distributor/config/NoDistributorTemplate.java | 7 +++++++ .../distributor/config/NoiseDistributorTemplate.java | 7 +++++++ .../feature/distributor/config/OrDistributorTemplate.java | 7 +++++++ .../distributor/config/PointSetDistributorTemplate.java | 7 +++++++ .../feature/distributor/config/YesDistributorTemplate.java | 7 +++++++ .../feature/distributor/distributors/NoiseDistributor.java | 7 +++++++ .../distributor/distributors/PointSetDistributor.java | 7 +++++++ .../dfsek/terra/addons/feature/distributor/util/Point.java | 7 +++++++ .../addons/feature/distributor/util/PointTemplate.java | 7 +++++++ 11 files changed, 77 insertions(+) diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/DistributorAddon.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/DistributorAddon.java index bd2f9c68e..6e5dfa8dd 100644 --- a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/DistributorAddon.java +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/DistributorAddon.java @@ -1,3 +1,10 @@ +/* + * 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.distributor; import com.dfsek.tectonic.loading.object.ObjectTemplate; diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/AndDistributorTemplate.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/AndDistributorTemplate.java index 55d973f3f..9c576b48a 100644 --- a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/AndDistributorTemplate.java +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/AndDistributorTemplate.java @@ -1,3 +1,10 @@ +/* + * 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.distributor.config; import com.dfsek.tectonic.annotations.Value; diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/NoDistributorTemplate.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/NoDistributorTemplate.java index bafa1b50d..7203fb8b5 100644 --- a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/NoDistributorTemplate.java +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/NoDistributorTemplate.java @@ -1,3 +1,10 @@ +/* + * 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.distributor.config; import com.dfsek.tectonic.loading.object.ObjectTemplate; diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/NoiseDistributorTemplate.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/NoiseDistributorTemplate.java index 2a422e18e..8df06d82b 100644 --- a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/NoiseDistributorTemplate.java +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/NoiseDistributorTemplate.java @@ -1,3 +1,10 @@ +/* + * 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.distributor.config; import com.dfsek.tectonic.annotations.Default; diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/OrDistributorTemplate.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/OrDistributorTemplate.java index 3a8aa26c3..5df2cb452 100644 --- a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/OrDistributorTemplate.java +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/OrDistributorTemplate.java @@ -1,3 +1,10 @@ +/* + * 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.distributor.config; import com.dfsek.tectonic.annotations.Value; diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/PointSetDistributorTemplate.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/PointSetDistributorTemplate.java index da61112a7..984eaaaa6 100644 --- a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/PointSetDistributorTemplate.java +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/PointSetDistributorTemplate.java @@ -1,3 +1,10 @@ +/* + * 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.distributor.config; import com.dfsek.tectonic.annotations.Value; diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/YesDistributorTemplate.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/YesDistributorTemplate.java index aacddc06f..b41755661 100644 --- a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/YesDistributorTemplate.java +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/config/YesDistributorTemplate.java @@ -1,3 +1,10 @@ +/* + * 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.distributor.config; import com.dfsek.tectonic.loading.object.ObjectTemplate; diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/distributors/NoiseDistributor.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/distributors/NoiseDistributor.java index 8303c2288..dcb460aa0 100644 --- a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/distributors/NoiseDistributor.java +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/distributors/NoiseDistributor.java @@ -1,3 +1,10 @@ +/* + * 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.distributor.distributors; import com.dfsek.terra.api.noise.NoiseSampler; diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/distributors/PointSetDistributor.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/distributors/PointSetDistributor.java index 5508ebe8f..19af51ec2 100644 --- a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/distributors/PointSetDistributor.java +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/distributors/PointSetDistributor.java @@ -1,3 +1,10 @@ +/* + * 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.distributor.distributors; import java.util.Set; diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/util/Point.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/util/Point.java index 973f1c8d1..0e496df8c 100644 --- a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/util/Point.java +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/util/Point.java @@ -1,3 +1,10 @@ +/* + * 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.distributor.util; public class Point { diff --git a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/util/PointTemplate.java b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/util/PointTemplate.java index 864b5168f..c99447a32 100644 --- a/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/util/PointTemplate.java +++ b/common/addons/config-distributors/src/main/java/com/dfsek/terra/addons/feature/distributor/util/PointTemplate.java @@ -1,3 +1,10 @@ +/* + * 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.distributor.util; import com.dfsek.tectonic.annotations.Value;