mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-04-22 00:00:40 +00:00
implement namespaced registries
This commit is contained in:
@@ -41,7 +41,7 @@ public class ImageBiomeProviderAddon implements AddonInitializer {
|
||||
.then(event -> {
|
||||
CheckedRegistry<Supplier<ObjectTemplate<BiomeProvider>>> providerRegistry = event.getPack().getOrCreateRegistry(
|
||||
PROVIDER_REGISTRY_KEY);
|
||||
providerRegistry.register("IMAGE", () -> new ImageProviderTemplate(event.getPack().getRegistry(Biome.class)));
|
||||
providerRegistry.register(addon.getKey("IMAGE"), () -> new ImageProviderTemplate(event.getPack().getRegistry(Biome.class)));
|
||||
})
|
||||
.failThrough();
|
||||
}
|
||||
|
||||
@@ -60,22 +60,22 @@ public class BiomePipelineAddon implements AddonInitializer {
|
||||
.then(event -> {
|
||||
CheckedRegistry<Supplier<ObjectTemplate<BiomeProvider>>> providerRegistry = event.getPack().getOrCreateRegistry(
|
||||
PROVIDER_REGISTRY_KEY);
|
||||
providerRegistry.register("PIPELINE", BiomePipelineTemplate::new);
|
||||
providerRegistry.register(addon.getKey("PIPELINE"), BiomePipelineTemplate::new);
|
||||
})
|
||||
.then(event -> {
|
||||
CheckedRegistry<Supplier<ObjectTemplate<BiomeSource>>> sourceRegistry = event.getPack().getOrCreateRegistry(
|
||||
SOURCE_REGISTRY_KEY);
|
||||
sourceRegistry.register("SAMPLER", SamplerSourceTemplate::new);
|
||||
sourceRegistry.register(addon.getKey("SAMPLER"), SamplerSourceTemplate::new);
|
||||
})
|
||||
.then(event -> {
|
||||
CheckedRegistry<Supplier<ObjectTemplate<Stage>>> stageRegistry = event.getPack().getOrCreateRegistry(
|
||||
STAGE_REGISTRY_KEY);
|
||||
stageRegistry.register("FRACTAL_EXPAND", ExpanderStageTemplate::new);
|
||||
stageRegistry.register("SMOOTH", SmoothMutatorTemplate::new);
|
||||
stageRegistry.register("REPLACE", ReplaceMutatorTemplate::new);
|
||||
stageRegistry.register("REPLACE_LIST", ReplaceListMutatorTemplate::new);
|
||||
stageRegistry.register("BORDER", BorderMutatorTemplate::new);
|
||||
stageRegistry.register("BORDER_LIST", BorderListMutatorTemplate::new);
|
||||
stageRegistry.register(addon.getKey("FRACTAL_EXPAND"), ExpanderStageTemplate::new);
|
||||
stageRegistry.register(addon.getKey("SMOOTH"), SmoothMutatorTemplate::new);
|
||||
stageRegistry.register(addon.getKey("REPLACE"), ReplaceMutatorTemplate::new);
|
||||
stageRegistry.register(addon.getKey("REPLACE_LIST"), ReplaceListMutatorTemplate::new);
|
||||
stageRegistry.register(addon.getKey("BORDER"), BorderMutatorTemplate::new);
|
||||
stageRegistry.register(addon.getKey("BORDER_LIST"), BorderListMutatorTemplate::new);
|
||||
})
|
||||
.failThrough();
|
||||
platform.getEventManager()
|
||||
|
||||
@@ -3,6 +3,9 @@ package com.dfsek.terra.addons.biome.pipeline.config;
|
||||
import com.dfsek.tectonic.api.exception.LoadException;
|
||||
import com.dfsek.tectonic.api.loader.ConfigLoader;
|
||||
import com.dfsek.tectonic.api.loader.type.TypeLoader;
|
||||
|
||||
import com.dfsek.terra.api.registry.key.RegistryKey;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.lang.reflect.AnnotatedType;
|
||||
@@ -23,7 +26,7 @@ public class BiomeDelegateLoader implements TypeLoader<BiomeDelegate> {
|
||||
public BiomeDelegate load(@NotNull AnnotatedType t, @NotNull Object c, @NotNull ConfigLoader loader) throws LoadException {
|
||||
if(c.equals("SELF")) return BiomeDelegate.self();
|
||||
return biomeRegistry
|
||||
.get((String) c)
|
||||
.tryGet((String) c)
|
||||
.map(BiomeDelegate::from)
|
||||
.orElseGet(() -> BiomeDelegate.ephemeral((String) c));
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ public class SingleBiomeProviderAddon implements AddonInitializer {
|
||||
.then(event -> {
|
||||
CheckedRegistry<Supplier<ObjectTemplate<BiomeProvider>>> providerRegistry = event.getPack().getOrCreateRegistry(
|
||||
PROVIDER_REGISTRY_KEY);
|
||||
providerRegistry.register("SINGLE", SingleBiomeProviderTemplate::new);
|
||||
providerRegistry.register(addon.getKey("SINGLE"), SingleBiomeProviderTemplate::new);
|
||||
})
|
||||
.failThrough();
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ public class NoiseChunkGenerator3DAddon implements AddonInitializer {
|
||||
|
||||
event.getPack()
|
||||
.getOrCreateRegistry(ChunkGeneratorProvider.class)
|
||||
.register("NOISE_3D",
|
||||
.register(addon.getKey("NOISE_3D"),
|
||||
pack -> new NoiseChunkGenerator3D(pack, platform, config.getElevationBlend(), config.getHorizontalRes(),
|
||||
config.getVerticalRes()));
|
||||
event.getPack()
|
||||
|
||||
@@ -30,7 +30,7 @@ public class BiomeAddon implements AddonInitializer {
|
||||
.getHandler(FunctionalEventHandler.class)
|
||||
.register(addon, ConfigPackPreLoadEvent.class)
|
||||
.then(event -> {
|
||||
event.getPack().registerConfigType(new BiomeConfigType(event.getPack()), "BIOME", 5);
|
||||
event.getPack().registerConfigType(new BiomeConfigType(event.getPack()), addon.getKey("BIOME"), 5);
|
||||
event.getPack().applyLoader(PaletteHolder.class, new PaletteHolderLoader());
|
||||
})
|
||||
.failThrough();
|
||||
|
||||
@@ -47,12 +47,12 @@ public class DistributorAddon implements AddonInitializer {
|
||||
.then(event -> {
|
||||
CheckedRegistry<Supplier<ObjectTemplate<Distributor>>> distributorRegistry = event.getPack().getOrCreateRegistry(
|
||||
DISTRIBUTOR_TOKEN);
|
||||
distributorRegistry.register("SAMPLER", SamplerDistributorTemplate::new);
|
||||
distributorRegistry.register("POINTS", PointSetDistributorTemplate::new);
|
||||
distributorRegistry.register("AND", AndDistributorTemplate::new);
|
||||
distributorRegistry.register("OR", OrDistributorTemplate::new);
|
||||
distributorRegistry.register("YES", YesDistributorTemplate::new);
|
||||
distributorRegistry.register("NO", NoDistributorTemplate::new);
|
||||
distributorRegistry.register(addon.getKey("SAMPLER"), SamplerDistributorTemplate::new);
|
||||
distributorRegistry.register(addon.getKey("POINTS"), PointSetDistributorTemplate::new);
|
||||
distributorRegistry.register(addon.getKey("AND"), AndDistributorTemplate::new);
|
||||
distributorRegistry.register(addon.getKey("OR"), OrDistributorTemplate::new);
|
||||
distributorRegistry.register(addon.getKey("YES"), YesDistributorTemplate::new);
|
||||
distributorRegistry.register(addon.getKey("NO"), NoDistributorTemplate::new);
|
||||
|
||||
event.getPack()
|
||||
.applyLoader(Point.class, PointTemplate::new);
|
||||
|
||||
@@ -27,7 +27,7 @@ public class FeatureAddon implements AddonInitializer {
|
||||
platform.getEventManager()
|
||||
.getHandler(FunctionalEventHandler.class)
|
||||
.register(addon, ConfigPackPreLoadEvent.class)
|
||||
.then(event -> event.getPack().registerConfigType(new FeatureConfigType(), "FEATURE", 3))
|
||||
.then(event -> event.getPack().registerConfigType(new FeatureConfigType(), addon.getKey("FEATURE"), 3))
|
||||
.failThrough();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ public class FloraAddon implements AddonInitializer {
|
||||
.getHandler(FunctionalEventHandler.class)
|
||||
.register(addon, ConfigPackPreLoadEvent.class)
|
||||
.then(event -> {
|
||||
event.getPack().registerConfigType(new FloraConfigType(), "FLORA", 2);
|
||||
event.getPack().registerConfigType(new FloraConfigType(), addon.getKey("FLORA"), 2);
|
||||
event.getPack().applyLoader(BlockLayer.class, BlockLayerTemplate::new);
|
||||
})
|
||||
.failThrough();
|
||||
|
||||
@@ -57,29 +57,29 @@ public class LocatorAddon implements AddonInitializer {
|
||||
.register(addon, ConfigPackPreLoadEvent.class)
|
||||
.then(event -> {
|
||||
CheckedRegistry<Supplier<ObjectTemplate<Locator>>> locatorRegistry = event.getPack().getOrCreateRegistry(LOCATOR_TOKEN);
|
||||
locatorRegistry.register("SURFACE", () -> new SurfaceLocatorTemplate(platform));
|
||||
locatorRegistry.register(addon.getKey("SURFACE"), () -> new SurfaceLocatorTemplate(platform));
|
||||
|
||||
locatorRegistry.register("RANDOM", RandomLocatorTemplate::new);
|
||||
locatorRegistry.register("GAUSSIAN_RANDOM", GaussianRandomLocatorTemplate::new);
|
||||
locatorRegistry.register(addon.getKey("RANDOM"), RandomLocatorTemplate::new);
|
||||
locatorRegistry.register(addon.getKey("GAUSSIAN_RANDOM"), GaussianRandomLocatorTemplate::new);
|
||||
|
||||
locatorRegistry.register("PATTERN", PatternLocatorTemplate::new);
|
||||
locatorRegistry.register(addon.getKey("PATTERN"), PatternLocatorTemplate::new);
|
||||
|
||||
locatorRegistry.register("SAMPLER", SamplerLocatorTemplate::new);
|
||||
locatorRegistry.register("SAMPLER_3D", Sampler3DLocatorTemplate::new);
|
||||
locatorRegistry.register(addon.getKey("SAMPLER"), SamplerLocatorTemplate::new);
|
||||
locatorRegistry.register(addon.getKey("SAMPLER_3D"), Sampler3DLocatorTemplate::new);
|
||||
|
||||
locatorRegistry.register("AND", AndLocatorTemplate::new);
|
||||
locatorRegistry.register("OR", OrLocatorTemplate::new);
|
||||
locatorRegistry.register(addon.getKey("AND"), AndLocatorTemplate::new);
|
||||
locatorRegistry.register(addon.getKey("OR"), OrLocatorTemplate::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(addon.getKey("MATCH_AIR"), AirMatchPatternTemplate::new);
|
||||
patternRegistry.register(addon.getKey("MATCH_SOLID"), SolidMatchPatternTemplate::new);
|
||||
patternRegistry.register(addon.getKey("MATCH"), SingleBlockMatchPatternTemplate::new);
|
||||
patternRegistry.register(addon.getKey("MATCH_SET"), BlockSetMatchPatternTemplate::new);
|
||||
|
||||
patternRegistry.register("AND", AndPatternTemplate::new);
|
||||
patternRegistry.register("OR", OrPatternTemplate::new);
|
||||
patternRegistry.register("NOT", NotPatternTemplate::new);
|
||||
patternRegistry.register(addon.getKey("AND"), AndPatternTemplate::new);
|
||||
patternRegistry.register(addon.getKey("OR"), OrPatternTemplate::new);
|
||||
patternRegistry.register(addon.getKey("NOT"), NotPatternTemplate::new);
|
||||
})
|
||||
.failThrough();
|
||||
}
|
||||
|
||||
@@ -84,54 +84,54 @@ public class NoiseAddon implements AddonInitializer {
|
||||
.applyLoader(DimensionApplicableNoiseSampler.class, DimensionApplicableNoiseSampler::new)
|
||||
.applyLoader(FunctionTemplate.class, FunctionTemplate::new);
|
||||
|
||||
noiseRegistry.register("LINEAR", LinearNormalizerTemplate::new);
|
||||
noiseRegistry.register("NORMAL", NormalNormalizerTemplate::new);
|
||||
noiseRegistry.register("CLAMP", ClampNormalizerTemplate::new);
|
||||
noiseRegistry.register("PROBABILITY", ProbabilityNormalizerTemplate::new);
|
||||
noiseRegistry.register("SCALE", ScaleNormalizerTemplate::new);
|
||||
noiseRegistry.register(addon.getKey("LINEAR"), LinearNormalizerTemplate::new);
|
||||
noiseRegistry.register(addon.getKey("NORMAL"), NormalNormalizerTemplate::new);
|
||||
noiseRegistry.register(addon.getKey("CLAMP"), ClampNormalizerTemplate::new);
|
||||
noiseRegistry.register(addon.getKey("PROBABILITY"), ProbabilityNormalizerTemplate::new);
|
||||
noiseRegistry.register(addon.getKey("SCALE"), ScaleNormalizerTemplate::new);
|
||||
|
||||
noiseRegistry.register("IMAGE", ImageSamplerTemplate::new);
|
||||
noiseRegistry.register(addon.getKey("IMAGE"), ImageSamplerTemplate::new);
|
||||
|
||||
noiseRegistry.register("DOMAIN_WARP", DomainWarpTemplate::new);
|
||||
noiseRegistry.register(addon.getKey("DOMAIN_WARP"), DomainWarpTemplate::new);
|
||||
|
||||
noiseRegistry.register("FBM", BrownianMotionTemplate::new);
|
||||
noiseRegistry.register("PING_PONG", PingPongTemplate::new);
|
||||
noiseRegistry.register("RIDGED", RidgedFractalTemplate::new);
|
||||
noiseRegistry.register(addon.getKey("FBM"), BrownianMotionTemplate::new);
|
||||
noiseRegistry.register(addon.getKey("PING_PONG"), PingPongTemplate::new);
|
||||
noiseRegistry.register(addon.getKey("RIDGED"), RidgedFractalTemplate::new);
|
||||
|
||||
noiseRegistry.register("OPEN_SIMPLEX_2", () -> new SimpleNoiseTemplate(OpenSimplex2Sampler::new));
|
||||
noiseRegistry.register("OPEN_SIMPLEX_2S", () -> new SimpleNoiseTemplate(OpenSimplex2SSampler::new));
|
||||
noiseRegistry.register("PERLIN", () -> new SimpleNoiseTemplate(PerlinSampler::new));
|
||||
noiseRegistry.register("SIMPLEX", () -> new SimpleNoiseTemplate(SimplexSampler::new));
|
||||
noiseRegistry.register("GABOR", GaborNoiseTemplate::new);
|
||||
noiseRegistry.register(addon.getKey("OPEN_SIMPLEX_2"), () -> new SimpleNoiseTemplate(OpenSimplex2Sampler::new));
|
||||
noiseRegistry.register(addon.getKey("OPEN_SIMPLEX_2S"), () -> new SimpleNoiseTemplate(OpenSimplex2SSampler::new));
|
||||
noiseRegistry.register(addon.getKey("PERLIN"), () -> new SimpleNoiseTemplate(PerlinSampler::new));
|
||||
noiseRegistry.register(addon.getKey("SIMPLEX"), () -> new SimpleNoiseTemplate(SimplexSampler::new));
|
||||
noiseRegistry.register(addon.getKey("GABOR"), GaborNoiseTemplate::new);
|
||||
|
||||
|
||||
noiseRegistry.register("VALUE", () -> new SimpleNoiseTemplate(ValueSampler::new));
|
||||
noiseRegistry.register("VALUE_CUBIC", () -> new SimpleNoiseTemplate(ValueCubicSampler::new));
|
||||
noiseRegistry.register(addon.getKey("VALUE"), () -> new SimpleNoiseTemplate(ValueSampler::new));
|
||||
noiseRegistry.register(addon.getKey("VALUE_CUBIC"), () -> new SimpleNoiseTemplate(ValueCubicSampler::new));
|
||||
|
||||
noiseRegistry.register("CELLULAR", CellularNoiseTemplate::new);
|
||||
noiseRegistry.register(addon.getKey("CELLULAR"), CellularNoiseTemplate::new);
|
||||
|
||||
noiseRegistry.register("WHITE_NOISE", () -> new SimpleNoiseTemplate(WhiteNoiseSampler::new));
|
||||
noiseRegistry.register("POSITIVE_WHITE_NOISE", () -> new SimpleNoiseTemplate(PositiveWhiteNoiseSampler::new));
|
||||
noiseRegistry.register("GAUSSIAN", () -> new SimpleNoiseTemplate(GaussianNoiseSampler::new));
|
||||
noiseRegistry.register(addon.getKey("WHITE_NOISE"), () -> new SimpleNoiseTemplate(WhiteNoiseSampler::new));
|
||||
noiseRegistry.register(addon.getKey("POSITIVE_WHITE_NOISE"), () -> new SimpleNoiseTemplate(PositiveWhiteNoiseSampler::new));
|
||||
noiseRegistry.register(addon.getKey("GAUSSIAN"), () -> new SimpleNoiseTemplate(GaussianNoiseSampler::new));
|
||||
|
||||
noiseRegistry.register("CONSTANT", ConstantNoiseTemplate::new);
|
||||
noiseRegistry.register(addon.getKey("CONSTANT"), ConstantNoiseTemplate::new);
|
||||
|
||||
noiseRegistry.register("KERNEL", KernelTemplate::new);
|
||||
noiseRegistry.register(addon.getKey("KERNEL"), KernelTemplate::new);
|
||||
|
||||
noiseRegistry.register("LINEAR_HEIGHTMAP", LinearHeightmapSamplerTemplate::new);
|
||||
noiseRegistry.register(addon.getKey("LINEAR_HEIGHTMAP"), LinearHeightmapSamplerTemplate::new);
|
||||
|
||||
|
||||
noiseRegistry.register("ADD", () -> new BinaryArithmeticTemplate<>(AdditionSampler::new));
|
||||
noiseRegistry.register("SUB", () -> new BinaryArithmeticTemplate<>(SubtractionSampler::new));
|
||||
noiseRegistry.register("MUL", () -> new BinaryArithmeticTemplate<>(MultiplicationSampler::new));
|
||||
noiseRegistry.register("DIV", () -> new BinaryArithmeticTemplate<>(DivisionSampler::new));
|
||||
noiseRegistry.register("MAX", () -> new BinaryArithmeticTemplate<>(MaxSampler::new));
|
||||
noiseRegistry.register("MIN", () -> new BinaryArithmeticTemplate<>(MinSampler::new));
|
||||
noiseRegistry.register(addon.getKey("ADD"), () -> new BinaryArithmeticTemplate<>(AdditionSampler::new));
|
||||
noiseRegistry.register(addon.getKey("SUB"), () -> new BinaryArithmeticTemplate<>(SubtractionSampler::new));
|
||||
noiseRegistry.register(addon.getKey("MUL"), () -> new BinaryArithmeticTemplate<>(MultiplicationSampler::new));
|
||||
noiseRegistry.register(addon.getKey("DIV"), () -> new BinaryArithmeticTemplate<>(DivisionSampler::new));
|
||||
noiseRegistry.register(addon.getKey("MAX"), () -> new BinaryArithmeticTemplate<>(MaxSampler::new));
|
||||
noiseRegistry.register(addon.getKey("MIN"), () -> new BinaryArithmeticTemplate<>(MinSampler::new));
|
||||
|
||||
|
||||
Map<String, DimensionApplicableNoiseSampler> packSamplers = new LinkedHashMap<>();
|
||||
Map<String, FunctionTemplate> packFunctions = new LinkedHashMap<>();
|
||||
noiseRegistry.register("EXPRESSION", () -> new ExpressionFunctionTemplate(packSamplers, packFunctions));
|
||||
noiseRegistry.register(addon.getKey("EXPRESSION"), () -> new ExpressionFunctionTemplate(packSamplers, packFunctions));
|
||||
|
||||
|
||||
NoiseConfigPackTemplate template = event.loadTemplate(new NoiseConfigPackTemplate());
|
||||
|
||||
@@ -27,7 +27,7 @@ public class OreAddon implements AddonInitializer {
|
||||
platform.getEventManager()
|
||||
.getHandler(FunctionalEventHandler.class)
|
||||
.register(addon, ConfigPackPreLoadEvent.class)
|
||||
.then(event -> event.getPack().registerConfigType(new OreConfigType(), "ORE", 1))
|
||||
.then(event -> event.getPack().registerConfigType(new OreConfigType(), addon.getKey("ORE"), 1))
|
||||
.failThrough();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ public class PaletteAddon implements AddonInitializer {
|
||||
.getHandler(FunctionalEventHandler.class)
|
||||
.register(addon, ConfigPackPreLoadEvent.class)
|
||||
.then(event -> {
|
||||
event.getPack().registerConfigType(new PaletteConfigType(platform), "PALETTE", 2);
|
||||
event.getPack().registerConfigType(new PaletteConfigType(platform), addon.getKey("PALETTE"), 2);
|
||||
event.getPack().applyLoader(PaletteLayerHolder.class, new PaletteLayerLoader());
|
||||
})
|
||||
.failThrough();
|
||||
|
||||
@@ -27,7 +27,7 @@ public class StructureAddon implements AddonInitializer {
|
||||
platform.getEventManager()
|
||||
.getHandler(FunctionalEventHandler.class)
|
||||
.register(addon, ConfigPackPreLoadEvent.class)
|
||||
.then(event -> event.getPack().registerConfigType(new StructureConfigType(), "STRUCTURE", 2))
|
||||
.then(event -> event.getPack().registerConfigType(new StructureConfigType(), addon.getKey("STRUCTURE"), 2))
|
||||
.failThrough();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ public class FeatureGenerationAddon implements AddonInitializer {
|
||||
.register(addon, ConfigPackPreLoadEvent.class)
|
||||
.then(event -> event.getPack()
|
||||
.getOrCreateRegistry(STAGE_TYPE_KEY)
|
||||
.register("FEATURE", () -> new FeatureStageTemplate(platform)))
|
||||
.register(addon.getKey("FEATURE"), () -> new FeatureStageTemplate(platform)))
|
||||
.failThrough();
|
||||
|
||||
platform.getEventManager()
|
||||
|
||||
@@ -26,7 +26,7 @@ public class StructureGenerationAddon implements AddonInitializer {
|
||||
.register(addon, ConfigPackPreLoadEvent.class)
|
||||
.then(event -> event.getPack()
|
||||
.getOrCreateRegistry(GenerationStageProvider.class)
|
||||
.register("STRUCTURE", pack -> new StructureGenerationStage(platform)))
|
||||
.register(addon.getKey("STRUCTURE"), pack -> new StructureGenerationStage(platform)))
|
||||
.failThrough();
|
||||
|
||||
platform.getEventManager()
|
||||
|
||||
@@ -60,7 +60,7 @@ public class SpongeSchematicAddon implements AddonInitializer {
|
||||
event.getPack().getLoader().open("", ".schem").thenEntries(entries -> {
|
||||
for(Map.Entry<String, InputStream> entry : entries) {
|
||||
String id = StringUtil.fileName(entry.getKey());
|
||||
structureRegistry.register(id, convert(entry.getValue(), id));
|
||||
structureRegistry.register(addon.getKey(id), convert(entry.getValue(), id));
|
||||
}
|
||||
}).close();
|
||||
})
|
||||
|
||||
@@ -62,7 +62,7 @@ public class TerraScriptAddon implements AddonInitializer {
|
||||
}
|
||||
})
|
||||
.toList()
|
||||
.forEach(structureScript -> structureRegistry.register(structureScript.getID(),
|
||||
.forEach(structureScript -> structureRegistry.register(addon.getKey(structureScript.getID()),
|
||||
structureScript)))
|
||||
.close();
|
||||
})
|
||||
|
||||
@@ -66,8 +66,9 @@ public class StructureScript implements Structure {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
this.id = id;
|
||||
|
||||
functionRegistry.forEach(parser::registerFunction); // Register registry functions.
|
||||
|
||||
//noinspection unchecked
|
||||
functionRegistry.forEach((key, function) -> parser.registerFunction(key.getID(), function)); // Register registry functions.
|
||||
|
||||
parser
|
||||
.registerFunction("block", new BlockFunctionBuilder(platform))
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.dfsek.terra.api.block.entity.BlockEntity;
|
||||
import com.dfsek.terra.api.block.entity.Container;
|
||||
import com.dfsek.terra.api.event.events.world.generation.LootPopulateEvent;
|
||||
|
||||
import com.dfsek.terra.api.registry.key.RegistryKey;
|
||||
import com.dfsek.terra.api.util.vector.Vector3;
|
||||
|
||||
import net.jafama.FastMath;
|
||||
@@ -66,7 +67,7 @@ public class LootFunction implements Function<Void> {
|
||||
String id = data.apply(implementationArguments, variableMap);
|
||||
|
||||
|
||||
registry.get(id)
|
||||
registry.get(RegistryKey.parse(id))
|
||||
.ifPresentOrElse(table -> {
|
||||
Vector3 apply = Vector3.of(FastMath.roundToInt(xz.getX()),
|
||||
y.apply(implementationArguments, variableMap)
|
||||
|
||||
@@ -9,10 +9,13 @@ package com.dfsek.terra.addons.terrascript.script.functions;
|
||||
|
||||
import com.dfsek.terra.addons.terrascript.script.StructureScript;
|
||||
|
||||
import com.dfsek.terra.api.registry.key.RegistryKey;
|
||||
|
||||
import net.jafama.FastMath;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -68,7 +71,7 @@ public class StructureFunction implements Function<Boolean> {
|
||||
|
||||
|
||||
String app = id.apply(implementationArguments, variableMap);
|
||||
return registry.get(app).map(script -> {
|
||||
return registry.tryGet(app).map(script -> {
|
||||
Rotation rotation1;
|
||||
String rotString = rotations.get(arguments.getRandom().nextInt(rotations.size())).apply(implementationArguments, variableMap);
|
||||
try {
|
||||
|
||||
@@ -23,7 +23,7 @@ public class TerraScriptCheckFunctionAddon implements AddonInitializer {
|
||||
.register(addon, ConfigPackPreLoadEvent.class)
|
||||
.priority(1)
|
||||
.then(event -> {
|
||||
event.getPack().getOrCreateRegistry(FunctionBuilder.class).register("check", new CheckFunctionBuilder(platform));
|
||||
event.getPack().getOrCreateRegistry(FunctionBuilder.class).register(addon.getKey("check"), new CheckFunctionBuilder(platform));
|
||||
})
|
||||
.failThrough();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user