From 36e6d1270d1edf919d139bdca4799ca1dff81503 Mon Sep 17 00:00:00 2001 From: dfsek Date: Tue, 27 Jul 2021 20:09:32 -0700 Subject: [PATCH] create PatternLocator --- .../locator/locators/PatternLocator.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/PatternLocator.java 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 new file mode 100644 index 000000000..3f71fe28b --- /dev/null +++ b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/PatternLocator.java @@ -0,0 +1,30 @@ +package com.dfsek.terra.addons.feature.locator.locators; + +import com.dfsek.terra.addons.feature.locator.patterns.Pattern; +import com.dfsek.terra.api.structure.feature.Locator; +import com.dfsek.terra.api.util.Range; +import com.dfsek.terra.api.world.Column; + +import java.util.ArrayList; +import java.util.List; + +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 List getSuitableCoordinates(Column column) { + List locations = new ArrayList<>(); + + for(int y : search) { + if(pattern.matches(y, column)) locations.add(y); + } + + return locations; + } +}