From e32d9433d52773f68805a75dce901a4c252806be Mon Sep 17 00:00:00 2001 From: dfsek Date: Sun, 17 Oct 2021 15:06:44 -0700 Subject: [PATCH] remove locators addon from main repo --- .../addons/config-locators/build.gradle.kts | 2 - .../addons/feature/locator/LocatorAddon.java | 76 ------------------- .../locator/config/AndLocatorTemplate.java | 32 -------- .../config/Noise3DLocatorTemplate.java | 20 ----- .../locator/config/NoiseLocatorTemplate.java | 22 ------ .../locator/config/OrLocatorTemplate.java | 32 -------- .../config/PatternLocatorTemplate.java | 24 ------ .../locator/config/RandomLocatorTemplate.java | 23 ------ .../config/SurfaceLocatorTemplate.java | 27 ------- .../pattern/AirMatchPatternTemplate.java | 22 ------ .../config/pattern/AndPatternTemplate.java | 32 -------- .../pattern/BlockSetMatchPatternTemplate.java | 24 ------ .../config/pattern/NotPatternTemplate.java | 18 ----- .../config/pattern/OrPatternTemplate.java | 32 -------- .../SingleBlockMatchPatternTemplate.java | 25 ------ .../pattern/SolidMatchPatternTemplate.java | 19 ----- .../locator/locators/Noise3DLocator.java | 27 ------- .../locator/locators/NoiseLocator.java | 33 -------- .../locator/locators/PatternLocator.java | 29 ------- .../locator/locators/RandomLocator.java | 38 ---------- .../locator/locators/SurfaceLocator.java | 32 -------- .../locator/patterns/MatchPattern.java | 26 ------- .../feature/locator/patterns/Pattern.java | 20 ----- 23 files changed, 635 deletions(-) delete mode 100644 common/addons/config-locators/build.gradle.kts delete mode 100644 common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/LocatorAddon.java delete mode 100644 common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/AndLocatorTemplate.java delete mode 100644 common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/Noise3DLocatorTemplate.java delete mode 100644 common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/NoiseLocatorTemplate.java delete mode 100644 common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/OrLocatorTemplate.java delete mode 100644 common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/PatternLocatorTemplate.java delete mode 100644 common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/RandomLocatorTemplate.java delete mode 100644 common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/SurfaceLocatorTemplate.java delete mode 100644 common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/AirMatchPatternTemplate.java delete mode 100644 common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/AndPatternTemplate.java delete mode 100644 common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/BlockSetMatchPatternTemplate.java delete mode 100644 common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/NotPatternTemplate.java delete mode 100644 common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/OrPatternTemplate.java delete mode 100644 common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/SingleBlockMatchPatternTemplate.java delete mode 100644 common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/SolidMatchPatternTemplate.java delete mode 100644 common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/Noise3DLocator.java delete mode 100644 common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/NoiseLocator.java delete mode 100644 common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/PatternLocator.java delete mode 100644 common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/RandomLocator.java delete mode 100644 common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/SurfaceLocator.java delete mode 100644 common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/patterns/MatchPattern.java delete mode 100644 common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/patterns/Pattern.java diff --git a/common/addons/config-locators/build.gradle.kts b/common/addons/config-locators/build.gradle.kts deleted file mode 100644 index 7d82dc72f..000000000 --- a/common/addons/config-locators/build.gradle.kts +++ /dev/null @@ -1,2 +0,0 @@ -dependencies { -} 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 deleted file mode 100644 index bffc6a2d5..000000000 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/LocatorAddon.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.dfsek.terra.addons.feature.locator; - -import com.dfsek.tectonic.loading.object.ObjectTemplate; - -import java.util.function.Supplier; - -import com.dfsek.terra.addons.feature.locator.config.AndLocatorTemplate; -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; -import com.dfsek.terra.addons.feature.locator.config.PatternLocatorTemplate; -import com.dfsek.terra.addons.feature.locator.config.RandomLocatorTemplate; -import com.dfsek.terra.addons.feature.locator.config.SurfaceLocatorTemplate; -import com.dfsek.terra.addons.feature.locator.config.pattern.AirMatchPatternTemplate; -import com.dfsek.terra.addons.feature.locator.config.pattern.AndPatternTemplate; -import com.dfsek.terra.addons.feature.locator.config.pattern.BlockSetMatchPatternTemplate; -import com.dfsek.terra.addons.feature.locator.config.pattern.NotPatternTemplate; -import com.dfsek.terra.addons.feature.locator.config.pattern.OrPatternTemplate; -import com.dfsek.terra.addons.feature.locator.config.pattern.SingleBlockMatchPatternTemplate; -import com.dfsek.terra.addons.feature.locator.config.pattern.SolidMatchPatternTemplate; -import com.dfsek.terra.addons.feature.locator.patterns.Pattern; -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.Locator; -import com.dfsek.terra.api.util.reflection.TypeKey; - - -@Addon("config-locators") -@Version("1.0.0") -@Author("Terra") -public class LocatorAddon extends TerraAddon { - - public static final TypeKey>> LOCATOR_TOKEN = new TypeKey<>() { - }; - public static final TypeKey>> PATTERN_TOKEN = new TypeKey<>() { - }; - @Inject - private Platform platform; - - @Override - public void initialize() { - platform.getEventManager() - .getHandler(FunctionalEventHandler.class) - .register(this, ConfigPackPreLoadEvent.class) - .then(event -> { - CheckedRegistry>> locatorRegistry = event.getPack().getOrCreateRegistry(LOCATOR_TOKEN); - locatorRegistry.register("SURFACE", () -> new SurfaceLocatorTemplate(platform)); - locatorRegistry.register("RANDOM", RandomLocatorTemplate::new); - locatorRegistry.register("PATTERN", PatternLocatorTemplate::new); - locatorRegistry.register("NOISE", NoiseLocatorTemplate::new); - locatorRegistry.register("NOISE_3D", Noise3DLocatorTemplate::new); - - locatorRegistry.register("AND", AndLocatorTemplate::new); - locatorRegistry.register("OR", OrLocatorTemplate::new); - }) - .then(event -> { - CheckedRegistry>> patternRegistry = event.getPack().getOrCreateRegistry(PATTERN_TOKEN); - patternRegistry.register("MATCH_AIR", AirMatchPatternTemplate::new); - patternRegistry.register("MATCH_SOLID", SolidMatchPatternTemplate::new); - patternRegistry.register("MATCH", SingleBlockMatchPatternTemplate::new); - patternRegistry.register("MATCH_SET", BlockSetMatchPatternTemplate::new); - - patternRegistry.register("AND", AndPatternTemplate::new); - patternRegistry.register("OR", OrPatternTemplate::new); - patternRegistry.register("NOT", NotPatternTemplate::new); - }) - .failThrough(); - } -} diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/AndLocatorTemplate.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/AndLocatorTemplate.java deleted file mode 100644 index 404c38a8a..000000000 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/AndLocatorTemplate.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.dfsek.terra.addons.feature.locator.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.Locator; - - -public class AndLocatorTemplate implements ObjectTemplate, ValidatedConfigTemplate { - @Value("locators") - private @Meta List<@Meta Locator> locators; - - @Override - public Locator get() { - Locator current = locators.remove(0); - while(!locators.isEmpty()) { - current = current.and(locators.remove(0)); - } - return current; - } - - @Override - public boolean validate() throws ValidationException { - if(locators.isEmpty()) throw new ValidationException("AND Pattern must specify at least 1 pattern."); - return true; - } -} diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/Noise3DLocatorTemplate.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/Noise3DLocatorTemplate.java deleted file mode 100644 index 2a61e39dd..000000000 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/Noise3DLocatorTemplate.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.dfsek.terra.addons.feature.locator.config; - -import com.dfsek.tectonic.annotations.Value; -import com.dfsek.tectonic.loading.object.ObjectTemplate; - -import com.dfsek.terra.addons.feature.locator.locators.Noise3DLocator; -import com.dfsek.terra.api.config.meta.Meta; -import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.structure.feature.Locator; - - -public class Noise3DLocatorTemplate implements ObjectTemplate { - @Value("sampler") - private @Meta NoiseSampler sampler; - - @Override - public Locator get() { - return new Noise3DLocator(sampler); - } -} diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/NoiseLocatorTemplate.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/NoiseLocatorTemplate.java deleted file mode 100644 index ca0f33137..000000000 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/NoiseLocatorTemplate.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.dfsek.terra.addons.feature.locator.config; - -import com.dfsek.tectonic.annotations.Value; -import com.dfsek.tectonic.loading.object.ObjectTemplate; - -import java.util.List; - -import com.dfsek.terra.addons.feature.locator.locators.NoiseLocator; -import com.dfsek.terra.api.config.meta.Meta; -import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.structure.feature.Locator; - - -public class NoiseLocatorTemplate implements ObjectTemplate { - @Value("samplers") - private @Meta List<@Meta NoiseSampler> samplers; - - @Override - public Locator get() { - return new NoiseLocator(samplers); - } -} diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/OrLocatorTemplate.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/OrLocatorTemplate.java deleted file mode 100644 index 38e0d660c..000000000 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/OrLocatorTemplate.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.dfsek.terra.addons.feature.locator.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.Locator; - - -public class OrLocatorTemplate implements ObjectTemplate, ValidatedConfigTemplate { - @Value("locators") - private @Meta List<@Meta Locator> locators; - - @Override - public Locator get() { - Locator current = locators.remove(0); - while(!locators.isEmpty()) { - current = current.or(locators.remove(0)); - } - return current; - } - - @Override - public boolean validate() throws ValidationException { - if(locators.isEmpty()) throw new ValidationException("AND Pattern must specify at least 1 pattern."); - return true; - } -} diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/PatternLocatorTemplate.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/PatternLocatorTemplate.java deleted file mode 100644 index c27054675..000000000 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/PatternLocatorTemplate.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.dfsek.terra.addons.feature.locator.config; - -import com.dfsek.tectonic.annotations.Value; -import com.dfsek.tectonic.loading.object.ObjectTemplate; - -import com.dfsek.terra.addons.feature.locator.locators.PatternLocator; -import com.dfsek.terra.addons.feature.locator.patterns.Pattern; -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 PatternLocatorTemplate implements ObjectTemplate { - @Value("range") - private @Meta Range range; - - @Value("pattern") - private @Meta Pattern pattern; - - @Override - public Locator get() { - return new PatternLocator(pattern, range); - } -} diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/RandomLocatorTemplate.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/RandomLocatorTemplate.java deleted file mode 100644 index 347294d3f..000000000 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/RandomLocatorTemplate.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.dfsek.terra.addons.feature.locator.config; - -import com.dfsek.tectonic.annotations.Value; -import com.dfsek.tectonic.loading.object.ObjectTemplate; - -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 RandomLocatorTemplate implements ObjectTemplate { - @Value("height") - private @Meta Range height; - - @Value("amount") - private @Meta Range amount; - - @Override - public Locator get() { - return new RandomLocator(height, amount); - } -} diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/SurfaceLocatorTemplate.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/SurfaceLocatorTemplate.java deleted file mode 100644 index fce147df8..000000000 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/SurfaceLocatorTemplate.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.dfsek.terra.addons.feature.locator.config; - -import com.dfsek.tectonic.annotations.Value; -import com.dfsek.tectonic.loading.object.ObjectTemplate; - -import com.dfsek.terra.addons.feature.locator.locators.SurfaceLocator; -import com.dfsek.terra.api.Platform; -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 SurfaceLocatorTemplate implements ObjectTemplate { - private final Platform platform; - - @Value("range") - private @Meta Range range; - - public SurfaceLocatorTemplate(Platform platform) { - this.platform = platform; - } - - @Override - public Locator get() { - return new SurfaceLocator(range, platform); - } -} diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/AirMatchPatternTemplate.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/AirMatchPatternTemplate.java deleted file mode 100644 index dfd65ec38..000000000 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/AirMatchPatternTemplate.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.dfsek.terra.addons.feature.locator.config.pattern; - -import com.dfsek.tectonic.annotations.Value; -import com.dfsek.tectonic.loading.object.ObjectTemplate; - -import com.dfsek.terra.addons.feature.locator.patterns.MatchPattern; -import com.dfsek.terra.addons.feature.locator.patterns.Pattern; -import com.dfsek.terra.api.block.state.BlockState; -import com.dfsek.terra.api.config.meta.Meta; -import com.dfsek.terra.api.util.Range; - - -public class AirMatchPatternTemplate implements ObjectTemplate { - @Value("offset") - private @Meta Range offset; - - - @Override - public Pattern get() { - return new MatchPattern(offset, BlockState::isAir); - } -} diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/AndPatternTemplate.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/AndPatternTemplate.java deleted file mode 100644 index 78ff11428..000000000 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/AndPatternTemplate.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.dfsek.terra.addons.feature.locator.config.pattern; - -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.addons.feature.locator.patterns.Pattern; -import com.dfsek.terra.api.config.meta.Meta; - - -public class AndPatternTemplate implements ObjectTemplate, ValidatedConfigTemplate { - @Value("patterns") - private @Meta List<@Meta Pattern> patterns; - - @Override - public Pattern get() { - Pattern current = patterns.remove(0); - while(!patterns.isEmpty()) { - current = current.and(patterns.remove(0)); - } - return current; - } - - @Override - public boolean validate() throws ValidationException { - if(patterns.isEmpty()) throw new ValidationException("AND Pattern must specify at least 1 pattern."); - return true; - } -} diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/BlockSetMatchPatternTemplate.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/BlockSetMatchPatternTemplate.java deleted file mode 100644 index 6f15ac36d..000000000 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/BlockSetMatchPatternTemplate.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.dfsek.terra.addons.feature.locator.config.pattern; - -import com.dfsek.tectonic.annotations.Value; -import com.dfsek.tectonic.loading.object.ObjectTemplate; - -import com.dfsek.terra.addons.feature.locator.patterns.MatchPattern; -import com.dfsek.terra.addons.feature.locator.patterns.Pattern; -import com.dfsek.terra.api.config.meta.Meta; -import com.dfsek.terra.api.util.Range; -import com.dfsek.terra.api.util.collection.MaterialSet; - - -public class BlockSetMatchPatternTemplate implements ObjectTemplate { - @Value("blocks") - private @Meta MaterialSet blocks; - - @Value("offset") - private @Meta Range offset; - - @Override - public Pattern get() { - return new MatchPattern(offset, blockState -> blocks.contains(blockState.getBlockType())); - } -} diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/NotPatternTemplate.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/NotPatternTemplate.java deleted file mode 100644 index fcf40e57b..000000000 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/NotPatternTemplate.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.dfsek.terra.addons.feature.locator.config.pattern; - -import com.dfsek.tectonic.annotations.Value; -import com.dfsek.tectonic.loading.object.ObjectTemplate; - -import com.dfsek.terra.addons.feature.locator.patterns.Pattern; -import com.dfsek.terra.api.config.meta.Meta; - - -public class NotPatternTemplate implements ObjectTemplate { - @Value("pattern") - private @Meta Pattern pattern; - - @Override - public Pattern get() { - return pattern.not(); - } -} diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/OrPatternTemplate.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/OrPatternTemplate.java deleted file mode 100644 index 5e1369724..000000000 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/OrPatternTemplate.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.dfsek.terra.addons.feature.locator.config.pattern; - -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.addons.feature.locator.patterns.Pattern; -import com.dfsek.terra.api.config.meta.Meta; - - -public class OrPatternTemplate implements ObjectTemplate, ValidatedConfigTemplate { - @Value("patterns") - private @Meta List<@Meta Pattern> patterns; - - @Override - public Pattern get() { - Pattern current = patterns.remove(0); - while(!patterns.isEmpty()) { - current = current.or(patterns.remove(0)); - } - return current; - } - - @Override - public boolean validate() throws ValidationException { - if(patterns.isEmpty()) throw new ValidationException("AND Pattern must specify at least 1 pattern."); - return true; - } -} diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/SingleBlockMatchPatternTemplate.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/SingleBlockMatchPatternTemplate.java deleted file mode 100644 index 782d0ca5d..000000000 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/SingleBlockMatchPatternTemplate.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.dfsek.terra.addons.feature.locator.config.pattern; - -import com.dfsek.tectonic.annotations.Value; -import com.dfsek.tectonic.loading.object.ObjectTemplate; - -import com.dfsek.terra.addons.feature.locator.patterns.MatchPattern; -import com.dfsek.terra.addons.feature.locator.patterns.Pattern; -import com.dfsek.terra.api.block.state.BlockState; -import com.dfsek.terra.api.config.meta.Meta; -import com.dfsek.terra.api.util.Range; - - -public class SingleBlockMatchPatternTemplate implements ObjectTemplate { - @Value("block") - private @Meta BlockState block; - - @Value("offset") - private @Meta Range offset; - - - @Override - public Pattern get() { - return new MatchPattern(offset, block::matches); - } -} diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/SolidMatchPatternTemplate.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/SolidMatchPatternTemplate.java deleted file mode 100644 index eebb03197..000000000 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/config/pattern/SolidMatchPatternTemplate.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.dfsek.terra.addons.feature.locator.config.pattern; - -import com.dfsek.tectonic.annotations.Value; -import com.dfsek.tectonic.loading.object.ObjectTemplate; - -import com.dfsek.terra.addons.feature.locator.patterns.MatchPattern; -import com.dfsek.terra.addons.feature.locator.patterns.Pattern; -import com.dfsek.terra.api.util.Range; - - -public class SolidMatchPatternTemplate implements ObjectTemplate { - @Value("offset") - private Range offset; - - @Override - public Pattern get() { - return new MatchPattern(offset, blockState -> blockState.getBlockType().isSolid()); - } -} diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/Noise3DLocator.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/Noise3DLocator.java deleted file mode 100644 index 571a33aa6..000000000 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/Noise3DLocator.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.dfsek.terra.addons.feature.locator.locators; - -import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.structure.feature.BinaryColumn; -import com.dfsek.terra.api.structure.feature.Locator; -import com.dfsek.terra.api.world.Column; - - -public class Noise3DLocator implements Locator { - private final NoiseSampler sampler; - - public Noise3DLocator(NoiseSampler sampler) { - this.sampler = sampler; - } - - @Override - public BinaryColumn getSuitableCoordinates(Column column) { - BinaryColumn results = column.newBinaryColumn(); - long seed = column.getWorld().getSeed(); - int x = column.getX(); - int z = column.getZ(); - column.forEach(y -> { - if(sampler.getNoiseSeeded(seed, x, y, z) > 0) results.set(y); - }); - return results; - } -} diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/NoiseLocator.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/NoiseLocator.java deleted file mode 100644 index b88ad0295..000000000 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/NoiseLocator.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.dfsek.terra.addons.feature.locator.locators; - -import net.jafama.FastMath; - -import java.util.List; - -import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.structure.feature.BinaryColumn; -import com.dfsek.terra.api.structure.feature.Locator; -import com.dfsek.terra.api.world.Column; - - -public class NoiseLocator implements Locator { - private final List samplers; - - public NoiseLocator(List samplers) { - this.samplers = samplers; - } - - @Override - public BinaryColumn getSuitableCoordinates(Column column) { - BinaryColumn results = new BinaryColumn(column.getMinY(), column.getMaxY()); - - long seed = column.getWorld().getSeed(); - samplers.forEach(sampler -> { - int y = FastMath.floorToInt(sampler.getNoiseSeeded(seed, column.getX(), column.getX())); - if(y >= column.getMaxY() || y < column.getMinY()) return; - results.set(y); - }); - - return results; - } -} diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/PatternLocator.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/PatternLocator.java deleted file mode 100644 index a5faddf4c..000000000 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/PatternLocator.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.dfsek.terra.addons.feature.locator.locators; - -import com.dfsek.terra.addons.feature.locator.patterns.Pattern; -import com.dfsek.terra.api.structure.feature.BinaryColumn; -import com.dfsek.terra.api.structure.feature.Locator; -import com.dfsek.terra.api.util.Range; -import com.dfsek.terra.api.world.Column; - - -public class PatternLocator implements Locator { - private final Pattern pattern; - private final Range search; - - public PatternLocator(Pattern pattern, Range search) { - this.pattern = pattern; - this.search = search; - } - - @Override - public BinaryColumn getSuitableCoordinates(Column column) { - BinaryColumn locations = new BinaryColumn(column.getMinY(), column.getMaxY()); - - for(int y : search) { - if(pattern.matches(y, column)) locations.set(y); - } - - return locations; - } -} diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/RandomLocator.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/RandomLocator.java deleted file mode 100644 index 78df7b875..000000000 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/RandomLocator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.dfsek.terra.addons.feature.locator.locators; - -import java.util.Random; - -import com.dfsek.terra.api.structure.feature.BinaryColumn; -import com.dfsek.terra.api.structure.feature.Locator; -import com.dfsek.terra.api.util.Range; -import com.dfsek.terra.api.world.Column; - - -public class RandomLocator implements Locator { - private final Range height; - - private final Range points; - - public RandomLocator(Range height, Range points) { - this.height = height; - this.points = points; - } - - @Override - public BinaryColumn getSuitableCoordinates(Column column) { - long seed = column.getWorld().getSeed(); - seed = 31 * seed + column.getX(); - seed = 31 * seed + column.getZ(); - - Random r = new Random(seed); - - int size = points.get(r); - - BinaryColumn results = new BinaryColumn(column.getMinY(), column.getMaxY()); - for(int i = 0; i < size; i++) { - results.set(height.get(r)); - } - - return results; - } -} diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/SurfaceLocator.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/SurfaceLocator.java deleted file mode 100644 index 942d45236..000000000 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/SurfaceLocator.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.dfsek.terra.addons.feature.locator.locators; - -import com.dfsek.terra.api.Platform; -import com.dfsek.terra.api.block.state.BlockState; -import com.dfsek.terra.api.structure.feature.BinaryColumn; -import com.dfsek.terra.api.structure.feature.Locator; -import com.dfsek.terra.api.util.Range; -import com.dfsek.terra.api.world.Column; - - -public class SurfaceLocator implements Locator { - private final Range search; - - private final BlockState air; - - public SurfaceLocator(Range search, Platform platform) { - this.search = search; - this.air = platform.getWorldHandle().air(); - } - - @Override - public BinaryColumn getSuitableCoordinates(Column column) { - BinaryColumn location = new BinaryColumn(column.getMinY(), column.getMaxY()); - for(int y : search) { - if(column.getBlock(y).matches(air) && !column.getBlock(y - 1).matches(air)) { - location.set(y); - return location; - } - } - return location; - } -} diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/patterns/MatchPattern.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/patterns/MatchPattern.java deleted file mode 100644 index d305d64d8..000000000 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/patterns/MatchPattern.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.dfsek.terra.addons.feature.locator.patterns; - -import java.util.function.Predicate; - -import com.dfsek.terra.api.block.state.BlockState; -import com.dfsek.terra.api.util.Range; -import com.dfsek.terra.api.world.Column; - - -public class MatchPattern implements Pattern { - private final Range range; - private final Predicate matches; - - public MatchPattern(Range range, Predicate matches) { - this.range = range; - this.matches = matches; - } - - @Override - public boolean matches(int y, Column column) { - for(int i : range) { - if(!matches.test(column.getBlock(y + i))) return false; - } - return true; - } -} diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/patterns/Pattern.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/patterns/Pattern.java deleted file mode 100644 index 2aae3af0d..000000000 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/patterns/Pattern.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.dfsek.terra.addons.feature.locator.patterns; - -import com.dfsek.terra.api.world.Column; - - -public interface Pattern { - boolean matches(int y, Column column); - - default Pattern and(Pattern that) { - return (y, column) -> this.matches(y, column) && that.matches(y, column); - } - - default Pattern or(Pattern that) { - return (y, column) -> this.matches(y, column) || that.matches(y, column); - } - - default Pattern not() { - return (y, column) -> !this.matches(y, column); - } -}