mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-10-25 21:40:08 +00:00
make Registry immutable, remove other registry implementations
This commit is contained in:
1 parent
b04a4850da
commit
620ae7d1ff
39 files changed
+275
-819
No files matched your search
+4
-5
@@ -17,7 +17,6 @@ import com.dfsek.terra.addons.manifest.api.monad.Init;
|
||||
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPostLoadEvent;
|
||||
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
|
||||
import com.dfsek.terra.api.event.functional.FunctionalEventHandler;
|
||||
import com.dfsek.terra.api.registry.CheckedRegistry;
|
||||
import com.dfsek.terra.api.registry.Registry;
|
||||
import com.dfsek.terra.api.util.function.monad.Monad;
|
||||
import com.dfsek.terra.api.util.generic.Construct;
|
||||
@@ -49,14 +48,14 @@ public class BiomeExtrusionAddon implements MonadAddonInitializer {
|
||||
});
|
||||
return functionalEventHandler.register(base, ConfigPackPreLoadEvent.class)
|
||||
.then(event -> {
|
||||
CheckedRegistry<Supplier<ObjectTemplate<BiomeProvider>>> providerRegistry =
|
||||
Registry<Supplier<ObjectTemplate<BiomeProvider>>> providerRegistry =
|
||||
event.getPack()
|
||||
.getOrCreateRegistry(PROVIDER_REGISTRY_KEY);
|
||||
.createRegistry(PROVIDER_REGISTRY_KEY);
|
||||
providerRegistry.register(base.key("EXTRUSION"), BiomeExtrusionTemplate::new);
|
||||
})
|
||||
.then(event -> {
|
||||
CheckedRegistry<Supplier<ObjectTemplate<Extrusion>>> extrusionRegistry =
|
||||
event.getPack().getOrCreateRegistry(
|
||||
Registry<Supplier<ObjectTemplate<Extrusion>>> extrusionRegistry =
|
||||
event.getPack().createRegistry(
|
||||
EXTRUSION_REGISTRY_KEY);
|
||||
extrusionRegistry.register(base.key("SET"), SetExtrusionTemplate::new);
|
||||
extrusionRegistry.register(base.key("REPLACE"), ReplaceExtrusionTemplate::new);
|
||||
|
||||
+2
-5
@@ -15,12 +15,9 @@ import com.dfsek.terra.addons.manifest.api.MonadAddonInitializer;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Do;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Get;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Init;
|
||||
import com.dfsek.terra.api.Platform;
|
||||
import com.dfsek.terra.api.addon.BaseAddon;
|
||||
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.registry.Registry;
|
||||
import com.dfsek.terra.api.util.function.monad.Monad;
|
||||
import com.dfsek.terra.api.util.reflection.TypeKey;
|
||||
import com.dfsek.terra.api.world.biome.Biome;
|
||||
@@ -40,7 +37,7 @@ public class ImageBiomeProviderAddon implements MonadAddonInitializer {
|
||||
((functionalEventHandler, base, platform) -> Init.ofPure(
|
||||
functionalEventHandler.register(base, ConfigPackPreLoadEvent.class)
|
||||
.then(event -> {
|
||||
CheckedRegistry<Supplier<ObjectTemplate<BiomeProvider>>> providerRegistry = event.getPack().getOrCreateRegistry(
|
||||
Registry<Supplier<ObjectTemplate<BiomeProvider>>> providerRegistry = event.getPack().createRegistry(
|
||||
PROVIDER_REGISTRY_KEY);
|
||||
providerRegistry.register(base.key("IMAGE"),
|
||||
() -> new ImageProviderTemplate(event.getPack().getRegistry(Biome.class)));
|
||||
|
||||
+6
-10
@@ -27,13 +27,9 @@ import com.dfsek.terra.addons.manifest.api.MonadAddonInitializer;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Do;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Get;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Init;
|
||||
import com.dfsek.terra.api.Platform;
|
||||
import com.dfsek.terra.api.addon.BaseAddon;
|
||||
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPostLoadEvent;
|
||||
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.registry.Registry;
|
||||
import com.dfsek.terra.api.util.function.monad.Monad;
|
||||
import com.dfsek.terra.api.util.generic.Construct;
|
||||
@@ -60,20 +56,20 @@ public class BiomePipelineAddon implements MonadAddonInitializer {
|
||||
((functionalEventHandler, base) -> Init.ofPure(Construct.construct(() -> {
|
||||
functionalEventHandler.register(base, ConfigPackPreLoadEvent.class)
|
||||
.then(event -> {
|
||||
CheckedRegistry<Supplier<ObjectTemplate<BiomeProvider>>> providerRegistry =
|
||||
event.getPack().getOrCreateRegistry(
|
||||
Registry<Supplier<ObjectTemplate<BiomeProvider>>> providerRegistry =
|
||||
event.getPack().createRegistry(
|
||||
PROVIDER_REGISTRY_KEY);
|
||||
providerRegistry.register(base.key("PIPELINE"), BiomePipelineTemplate::new);
|
||||
})
|
||||
.then(event -> {
|
||||
CheckedRegistry<Supplier<ObjectTemplate<BiomeSource>>> sourceRegistry =
|
||||
event.getPack().getOrCreateRegistry(
|
||||
Registry<Supplier<ObjectTemplate<BiomeSource>>> sourceRegistry =
|
||||
event.getPack().createRegistry(
|
||||
SOURCE_REGISTRY_KEY);
|
||||
sourceRegistry.register(base.key("SAMPLER"), SamplerSourceTemplate::new);
|
||||
})
|
||||
.then(event -> {
|
||||
CheckedRegistry<Supplier<ObjectTemplate<Stage>>> stageRegistry =
|
||||
event.getPack().getOrCreateRegistry(
|
||||
Registry<Supplier<ObjectTemplate<Stage>>> stageRegistry =
|
||||
event.getPack().createRegistry(
|
||||
STAGE_REGISTRY_KEY);
|
||||
stageRegistry.register(base.key("FRACTAL_EXPAND"), ExpanderStageTemplate::new);
|
||||
stageRegistry.register(base.key("SMOOTH"), SmoothMutatorTemplate::new);
|
||||
|
||||
+2
-2
@@ -17,7 +17,7 @@ import com.dfsek.terra.addons.manifest.api.monad.Get;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Init;
|
||||
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
|
||||
import com.dfsek.terra.api.event.functional.FunctionalEventHandler;
|
||||
import com.dfsek.terra.api.registry.CheckedRegistry;
|
||||
import com.dfsek.terra.api.registry.Registry;
|
||||
import com.dfsek.terra.api.util.function.monad.Monad;
|
||||
import com.dfsek.terra.api.util.reflection.TypeKey;
|
||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||
@@ -36,7 +36,7 @@ public class SingleBiomeProviderAddon implements MonadAddonInitializer {
|
||||
((handler, base, platform) -> Init.ofPure(
|
||||
handler.register(base, ConfigPackPreLoadEvent.class)
|
||||
.then(event -> {
|
||||
CheckedRegistry<Supplier<ObjectTemplate<BiomeProvider>>> providerRegistry = event.getPack().getOrCreateRegistry(
|
||||
Registry<Supplier<ObjectTemplate<BiomeProvider>>> providerRegistry = event.getPack().createRegistry(
|
||||
PROVIDER_REGISTRY_KEY);
|
||||
providerRegistry.register(base.key("SINGLE"), SingleBiomeProviderTemplate::new);
|
||||
})
|
||||
|
||||
+1
-1
@@ -45,7 +45,7 @@ public class NoiseChunkGenerator3DAddon implements MonadAddonInitializer {
|
||||
NoiseChunkGeneratorPackConfigTemplate config = event.loadTemplate(new NoiseChunkGeneratorPackConfigTemplate());
|
||||
|
||||
event.getPack()
|
||||
.getOrCreateRegistry(ChunkGeneratorProvider.class)
|
||||
.createRegistry(ChunkGeneratorProvider.class)
|
||||
.register(base.key("NOISE_3D"),
|
||||
pack -> new NoiseChunkGenerator3D(pack, platform, config.getElevationBlend(),
|
||||
config.getHorizontalRes(),
|
||||
|
||||
+2
-4
@@ -7,13 +7,11 @@ import com.dfsek.terra.addons.manifest.api.MonadAddonInitializer;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Do;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Get;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Init;
|
||||
import com.dfsek.terra.api.Platform;
|
||||
import com.dfsek.terra.api.addon.BaseAddon;
|
||||
import com.dfsek.terra.api.command.CommandSender;
|
||||
import com.dfsek.terra.api.command.arguments.RegistryArgument;
|
||||
import com.dfsek.terra.api.event.events.platform.CommandRegistrationEvent;
|
||||
import com.dfsek.terra.api.event.functional.FunctionalEventHandler;
|
||||
import com.dfsek.terra.api.inject.annotations.Inject;
|
||||
import com.dfsek.terra.api.util.function.monad.Monad;
|
||||
|
||||
|
||||
@@ -37,7 +35,7 @@ public class AddonsCommandAddon implements MonadAddonInitializer {
|
||||
.handler(context -> {
|
||||
StringBuilder addons = new StringBuilder(
|
||||
"Installed addons:\n");
|
||||
platform.getAddons()
|
||||
platform.addons()
|
||||
.forEach(addon -> addons
|
||||
.append(" - ")
|
||||
.append(addon.getID())
|
||||
@@ -50,7 +48,7 @@ public class AddonsCommandAddon implements MonadAddonInitializer {
|
||||
.command(
|
||||
manager.commandBuilder("addons")
|
||||
.argument(
|
||||
RegistryArgument.of("addon", platform.getAddons()))
|
||||
RegistryArgument.of("addon", platform.addons()))
|
||||
.permission("terra.addons.info")
|
||||
.handler(context -> {
|
||||
BaseAddon addon = context.get("addon");
|
||||
|
||||
-10
@@ -2,31 +2,21 @@ package com.dfsek.terra.addons.commands.packs;
|
||||
|
||||
import cloud.commandframework.ArgumentDescription;
|
||||
import cloud.commandframework.CommandManager;
|
||||
import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
|
||||
|
||||
import com.dfsek.terra.addons.manifest.api.MonadAddonInitializer;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Do;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Get;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Init;
|
||||
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
|
||||
import com.dfsek.terra.api.registry.CheckedRegistry;
|
||||
import com.dfsek.terra.api.util.function.monad.Monad;
|
||||
import com.dfsek.terra.api.world.biome.Biome;
|
||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.dfsek.terra.api.Platform;
|
||||
import com.dfsek.terra.api.addon.BaseAddon;
|
||||
import com.dfsek.terra.api.command.CommandSender;
|
||||
import com.dfsek.terra.api.command.arguments.RegistryArgument;
|
||||
import com.dfsek.terra.api.config.ConfigPack;
|
||||
import com.dfsek.terra.api.event.events.platform.CommandRegistrationEvent;
|
||||
import com.dfsek.terra.api.event.functional.FunctionalEventHandler;
|
||||
import com.dfsek.terra.api.inject.annotations.Inject;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
|
||||
public class PacksCommandAddon implements MonadAddonInitializer {
|
||||
|
||||
+3
-6
@@ -25,12 +25,9 @@ import com.dfsek.terra.addons.manifest.api.MonadAddonInitializer;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Do;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Get;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Init;
|
||||
import com.dfsek.terra.api.Platform;
|
||||
import com.dfsek.terra.api.addon.BaseAddon;
|
||||
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.registry.Registry;
|
||||
import com.dfsek.terra.api.structure.feature.Distributor;
|
||||
import com.dfsek.terra.api.util.function.monad.Monad;
|
||||
import com.dfsek.terra.api.util.reflection.TypeKey;
|
||||
@@ -48,9 +45,9 @@ public class DistributorAddon implements MonadAddonInitializer {
|
||||
((functionalEventHandler, base) -> Init.ofPure(
|
||||
functionalEventHandler.register(base, ConfigPackPreLoadEvent.class)
|
||||
.then(event -> {
|
||||
CheckedRegistry<Supplier<ObjectTemplate<Distributor>>> distributorRegistry = event
|
||||
Registry<Supplier<ObjectTemplate<Distributor>>> distributorRegistry = event
|
||||
.getPack()
|
||||
.getOrCreateRegistry(DISTRIBUTOR_TOKEN);
|
||||
.createRegistry(DISTRIBUTOR_TOKEN);
|
||||
|
||||
distributorRegistry.register(base.key("SAMPLER"), SamplerDistributorTemplate::new);
|
||||
distributorRegistry.register(base.key("POINTS"), PointSetDistributorTemplate::new);
|
||||
|
||||
+3
-6
@@ -35,12 +35,9 @@ import com.dfsek.terra.addons.manifest.api.MonadAddonInitializer;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Do;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Get;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Init;
|
||||
import com.dfsek.terra.api.Platform;
|
||||
import com.dfsek.terra.api.addon.BaseAddon;
|
||||
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.registry.Registry;
|
||||
import com.dfsek.terra.api.structure.feature.Locator;
|
||||
import com.dfsek.terra.api.util.function.monad.Monad;
|
||||
import com.dfsek.terra.api.util.reflection.TypeKey;
|
||||
@@ -62,7 +59,7 @@ public class LocatorAddon implements MonadAddonInitializer {
|
||||
((functionalEventHandler, base, platform) -> Init.ofPure(
|
||||
functionalEventHandler.register(base, ConfigPackPreLoadEvent.class)
|
||||
.then(event -> {
|
||||
CheckedRegistry<Supplier<ObjectTemplate<Locator>>> locatorRegistry = event.getPack().getOrCreateRegistry(LOCATOR_TOKEN);
|
||||
Registry<Supplier<ObjectTemplate<Locator>>> locatorRegistry = event.getPack().createRegistry(LOCATOR_TOKEN);
|
||||
locatorRegistry.register(base.key("SURFACE"), SurfaceLocatorTemplate::new);
|
||||
locatorRegistry.register(base.key("TOP"), TopLocatorTemplate::new);
|
||||
|
||||
@@ -80,7 +77,7 @@ public class LocatorAddon implements MonadAddonInitializer {
|
||||
locatorRegistry.register(base.key("XOR"), XorLocatorTemplate::new);
|
||||
})
|
||||
.then(event -> {
|
||||
CheckedRegistry<Supplier<ObjectTemplate<Pattern>>> patternRegistry = event.getPack().getOrCreateRegistry(PATTERN_TOKEN);
|
||||
Registry<Supplier<ObjectTemplate<Pattern>>> patternRegistry = event.getPack().createRegistry(PATTERN_TOKEN);
|
||||
patternRegistry.register(base.key("MATCH_AIR"), AirMatchPatternTemplate::new);
|
||||
patternRegistry.register(base.key("MATCH_SOLID"), SolidMatchPatternTemplate::new);
|
||||
patternRegistry.register(base.key("MATCH"), SingleBlockMatchPatternTemplate::new);
|
||||
|
||||
+2
-7
@@ -54,17 +54,12 @@ import com.dfsek.terra.addons.noise.samplers.noise.simplex.PerlinSampler;
|
||||
import com.dfsek.terra.addons.noise.samplers.noise.simplex.SimplexSampler;
|
||||
import com.dfsek.terra.addons.noise.samplers.noise.value.ValueCubicSampler;
|
||||
import com.dfsek.terra.addons.noise.samplers.noise.value.ValueSampler;
|
||||
import com.dfsek.terra.api.Platform;
|
||||
import com.dfsek.terra.api.addon.BaseAddon;
|
||||
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.noise.NoiseSampler;
|
||||
import com.dfsek.terra.api.registry.CheckedRegistry;
|
||||
import com.dfsek.terra.api.registry.Registry;
|
||||
import com.dfsek.terra.api.util.function.monad.Monad;
|
||||
import com.dfsek.terra.api.util.reflection.TypeKey;
|
||||
import com.dfsek.terra.api.world.biome.Biome;
|
||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||
|
||||
|
||||
public class NoiseAddon implements MonadAddonInitializer {
|
||||
@@ -80,7 +75,7 @@ public class NoiseAddon implements MonadAddonInitializer {
|
||||
((functionalEventHandler, base, platform) -> Init.ofPure(
|
||||
functionalEventHandler.register(base, ConfigPackPreLoadEvent.class)
|
||||
.then(event -> {
|
||||
CheckedRegistry<Supplier<ObjectTemplate<NoiseSampler>>> noiseRegistry = event.getPack().getOrCreateRegistry(
|
||||
Registry<Supplier<ObjectTemplate<NoiseSampler>>> noiseRegistry = event.getPack().createRegistry(
|
||||
NOISE_SAMPLER_TOKEN);
|
||||
event.getPack()
|
||||
.applyLoader(CellularSampler.DistanceFunction.class,
|
||||
|
||||
-10
@@ -7,25 +7,15 @@
|
||||
|
||||
package com.dfsek.terra.addons.palette;
|
||||
|
||||
import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
|
||||
|
||||
import com.dfsek.terra.addons.manifest.api.MonadAddonInitializer;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Do;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Get;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Init;
|
||||
import com.dfsek.terra.addons.palette.palette.PaletteLayerHolder;
|
||||
import com.dfsek.terra.addons.palette.palette.PaletteLayerLoader;
|
||||
import com.dfsek.terra.api.Platform;
|
||||
import com.dfsek.terra.api.addon.BaseAddon;
|
||||
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.util.function.monad.Monad;
|
||||
import com.dfsek.terra.api.world.biome.Biome;
|
||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
|
||||
public class PaletteAddon implements MonadAddonInitializer {
|
||||
|
||||
+1
-5
@@ -24,13 +24,10 @@ import com.dfsek.terra.addons.manifest.api.MonadAddonInitializer;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Do;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Get;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Init;
|
||||
import com.dfsek.terra.api.Platform;
|
||||
import com.dfsek.terra.api.addon.BaseAddon;
|
||||
import com.dfsek.terra.api.config.meta.Meta;
|
||||
import com.dfsek.terra.api.event.events.config.ConfigurationLoadEvent;
|
||||
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.properties.Context;
|
||||
import com.dfsek.terra.api.properties.PropertyKey;
|
||||
import com.dfsek.terra.api.structure.feature.Feature;
|
||||
@@ -39,7 +36,6 @@ import com.dfsek.terra.api.util.generic.Construct;
|
||||
import com.dfsek.terra.api.util.reflection.TypeKey;
|
||||
import com.dfsek.terra.api.world.biome.Biome;
|
||||
import com.dfsek.terra.api.world.chunk.generation.stage.GenerationStage;
|
||||
import com.dfsek.terra.api.world.chunk.generation.util.provider.ChunkGeneratorProvider;
|
||||
|
||||
|
||||
public class FeatureGenerationAddon implements MonadAddonInitializer {
|
||||
@@ -61,7 +57,7 @@ public class FeatureGenerationAddon implements MonadAddonInitializer {
|
||||
((handler, base, platform) -> Init.ofPure(Construct.construct(() -> {
|
||||
handler.register(base, ConfigPackPreLoadEvent.class)
|
||||
.then(event -> event.getPack()
|
||||
.getOrCreateRegistry(STAGE_TYPE_KEY)
|
||||
.createRegistry(STAGE_TYPE_KEY)
|
||||
.register(base.key("FEATURE"), () -> new FeatureStageTemplate(platform, biomeFeaturesKey)))
|
||||
.failThrough();
|
||||
return handler.register(base, ConfigurationLoadEvent.class)
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ public class StructureGenerationAddon implements MonadAddonInitializer {
|
||||
((handler, base, platform) -> Init.ofPure(Construct.construct(() -> {
|
||||
handler.register(base, ConfigPackPreLoadEvent.class)
|
||||
.then(event -> event.getPack()
|
||||
.getOrCreateRegistry(GenerationStageProvider.class)
|
||||
.createRegistry(GenerationStageProvider.class)
|
||||
.register(base.key("STRUCTURE"), pack -> new StructureGenerationStage(platform)))
|
||||
.failThrough();
|
||||
return handler.register(base, ConfigurationLoadEvent.class)
|
||||
|
||||
+11
-1
@@ -4,15 +4,25 @@ import com.dfsek.terra.addons.manifest.impl.InitInfo;
|
||||
import com.dfsek.terra.api.util.function.Functions;
|
||||
import com.dfsek.terra.api.util.function.monad.Monad;
|
||||
|
||||
import io.vavr.Function0;
|
||||
import io.vavr.Function1;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Function;
|
||||
|
||||
|
||||
public class Init<T> implements Monad<T, Init<?>> {
|
||||
private final Function<InitInfo, T> get;
|
||||
|
||||
public static <T> Init<T> of(Function<InitInfo, T> get) {
|
||||
protected static <T> Init<T> of(Function<InitInfo, T> get) {
|
||||
return new Init<>(get);
|
||||
}
|
||||
protected static Init<Void> unit(Consumer<InitInfo> get) {
|
||||
return new Init<>(info -> {
|
||||
get.accept(info);
|
||||
return null;
|
||||
});
|
||||
}
|
||||
|
||||
private Init(Function<InitInfo, T> get) {
|
||||
this.get = get;
|
||||
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
package com.dfsek.terra.addons.manifest.api.monad;
|
||||
|
||||
import com.dfsek.terra.api.registry.key.Keyed;
|
||||
import com.dfsek.terra.api.util.function.monad.Monad;
|
||||
import com.dfsek.terra.api.util.reflection.TypeKey;
|
||||
|
||||
|
||||
public class Register {
|
||||
private static <T> Monad<Void, Init<?>> register(TypeKey<T> type, String key, T object) {
|
||||
return Init.unit(info -> {
|
||||
throw new UnsupportedOperationException("TODO");
|
||||
});
|
||||
}
|
||||
|
||||
public static <T> Monad<Void, Init<?>> register(Class<T> clazz, String key, T object) {
|
||||
return register(TypeKey.of(clazz), key, object);
|
||||
}
|
||||
|
||||
public static <T extends Keyed<T>> Monad<Void, Init<?>> register(Class<T> clazz, Keyed<T> keyed) {
|
||||
return register(TypeKey.of(clazz), keyed.getID(), keyed.coerce());
|
||||
}
|
||||
}
|
||||
+2
-3
@@ -32,8 +32,7 @@ import com.dfsek.terra.api.addon.BaseAddon;
|
||||
import com.dfsek.terra.api.block.state.BlockState;
|
||||
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.registry.Registry;
|
||||
import com.dfsek.terra.api.structure.Structure;
|
||||
import com.dfsek.terra.api.util.StringUtil;
|
||||
|
||||
@@ -59,7 +58,7 @@ public class SpongeSchematicAddon implements MonadAddonInitializer {
|
||||
((handler, base, platform) -> Init.ofPure(
|
||||
handler.register(base, ConfigPackPreLoadEvent.class)
|
||||
.then(event -> {
|
||||
CheckedRegistry<Structure> structureRegistry = event.getPack().getOrCreateRegistry(Structure.class);
|
||||
Registry<Structure> structureRegistry = event.getPack().createRegistry(Structure.class);
|
||||
event.getPack()
|
||||
.getLoader()
|
||||
.open("", ".schem")
|
||||
|
||||
+4
-7
@@ -14,12 +14,9 @@ import com.dfsek.terra.addons.manifest.api.monad.Init;
|
||||
import com.dfsek.terra.addons.terrascript.parser.exceptions.ParseException;
|
||||
import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder;
|
||||
import com.dfsek.terra.addons.terrascript.script.StructureScript;
|
||||
import com.dfsek.terra.api.Platform;
|
||||
import com.dfsek.terra.api.addon.BaseAddon;
|
||||
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.registry.Registry;
|
||||
import com.dfsek.terra.api.structure.LootTable;
|
||||
import com.dfsek.terra.api.structure.Structure;
|
||||
import com.dfsek.terra.api.util.StringUtil;
|
||||
@@ -36,8 +33,8 @@ public class TerraScriptAddon implements MonadAddonInitializer {
|
||||
((handler, base, platform) -> Init.ofPure(
|
||||
handler.register(base, ConfigPackPreLoadEvent.class)
|
||||
.then(event -> {
|
||||
CheckedRegistry<Structure> structureRegistry = event.getPack().getOrCreateRegistry(Structure.class);
|
||||
CheckedRegistry<LootTable> lootRegistry = event.getPack().getOrCreateRegistry(LootTable.class);
|
||||
Registry<Structure> structureRegistry = event.getPack().createRegistry(Structure.class);
|
||||
Registry<LootTable> lootRegistry = event.getPack().createRegistry(LootTable.class);
|
||||
event.getPack().getLoader().open("", ".tesf").thenEntries(
|
||||
entries ->
|
||||
entries.stream()
|
||||
@@ -50,7 +47,7 @@ public class TerraScriptAddon implements MonadAddonInitializer {
|
||||
platform,
|
||||
structureRegistry,
|
||||
lootRegistry,
|
||||
event.getPack().getOrCreateRegistry(FunctionBuilder.class));
|
||||
event.getPack().createRegistry(FunctionBuilder.class));
|
||||
} catch(ParseException e) {
|
||||
throw new RuntimeException("Failed to load script \"" + entry.getKey() + "\"", e);
|
||||
}
|
||||
|
||||
+4
-20
@@ -1,33 +1,17 @@
|
||||
package com.dfsek.terra.addon.terrascript.check;
|
||||
|
||||
import com.dfsek.terra.addons.manifest.api.MonadAddonInitializer;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Do;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Get;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Init;
|
||||
import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder;
|
||||
import com.dfsek.terra.api.Platform;
|
||||
import com.dfsek.terra.api.addon.BaseAddon;
|
||||
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.util.function.monad.Monad;
|
||||
|
||||
import static com.dfsek.terra.addons.manifest.api.monad.Get.platform;
|
||||
import static com.dfsek.terra.addons.manifest.api.monad.Register.register;
|
||||
|
||||
|
||||
public class TerraScriptCheckFunctionAddon implements MonadAddonInitializer {
|
||||
@Override
|
||||
public Monad<?, Init<?>> initialize() {
|
||||
return Do.with(
|
||||
Get.eventManager().map(eventManager -> eventManager.getHandler(FunctionalEventHandler.class)),
|
||||
Get.addon(),
|
||||
Get.platform(),
|
||||
((handler, base, platform) -> Init.ofPure(
|
||||
handler.register(base, ConfigPackPreLoadEvent.class)
|
||||
.priority(1)
|
||||
.then(event -> event
|
||||
.getPack()
|
||||
.getOrCreateRegistry(FunctionBuilder.class)
|
||||
.register(base.key("check"), new CheckFunctionBuilder(platform)))
|
||||
.failThrough()))
|
||||
);
|
||||
return platform().bind(platform -> register(FunctionBuilder.class, "check", new CheckFunctionBuilder(platform)));
|
||||
}
|
||||
}
|
||||
+1
-4
@@ -6,11 +6,8 @@ import com.dfsek.terra.addons.manifest.api.monad.Get;
|
||||
import com.dfsek.terra.addons.manifest.api.monad.Init;
|
||||
import com.dfsek.terra.addons.noise.NoiseConfigPackTemplate;
|
||||
import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder;
|
||||
import com.dfsek.terra.api.Platform;
|
||||
import com.dfsek.terra.api.addon.BaseAddon;
|
||||
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.util.function.monad.Monad;
|
||||
|
||||
|
||||
@@ -25,7 +22,7 @@ public class TerraScriptSamplerFunctionAddon implements MonadAddonInitializer {
|
||||
.priority(51)
|
||||
.then(event -> event
|
||||
.getPack()
|
||||
.getOrCreateRegistry(FunctionBuilder.class)
|
||||
.createRegistry(FunctionBuilder.class)
|
||||
.register(base.key("sampler"), new SamplerFunctionBuilder(event.getPack().getContext().get(
|
||||
NoiseConfigPackTemplate.class).getSamplers())))
|
||||
.failThrough()))
|
||||
|
||||
Reference in new issue
Block a user