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