mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-02-16 10:30:42 +00:00
register patterns
This commit is contained in:
@@ -3,6 +3,14 @@ package com.dfsek.terra.addons.feature.locator;
|
||||
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
||||
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.TerraPlugin;
|
||||
import com.dfsek.terra.api.addon.TerraAddon;
|
||||
import com.dfsek.terra.api.addon.annotations.Addon;
|
||||
@@ -23,6 +31,7 @@ import java.util.function.Supplier;
|
||||
public class LocatorAddon extends TerraAddon {
|
||||
|
||||
public static final TypeKey<Supplier<ObjectTemplate<Locator>>> LOCATOR_TOKEN = new TypeKey<>() {};
|
||||
public static final TypeKey<Supplier<ObjectTemplate<Pattern>>> PATTERN_TOKEN = new TypeKey<>() {};
|
||||
@Inject
|
||||
private TerraPlugin main;
|
||||
|
||||
@@ -36,6 +45,17 @@ public class LocatorAddon extends TerraAddon {
|
||||
locatorRegistry.register("SURFACE", () -> new SurfaceLocatorTemplate(main));
|
||||
locatorRegistry.register("RANDOM", RandomLocatorTemplate::new);
|
||||
})
|
||||
.then(event -> {
|
||||
CheckedRegistry<Supplier<ObjectTemplate<Pattern>>> 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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user