From 2705e7d6a25f20fd701d084a3eb1f7348b93490f Mon Sep 17 00:00:00 2001 From: dfsek Date: Thu, 15 Jul 2021 14:05:44 -0700 Subject: [PATCH] dont implement LoaderHolder in TerraPlugin --- .../biome/pipeline/BiomePipelineAddon.java | 7 ++- .../terra/addons/biome/BiomeConfigAddon.java | 4 +- .../dfsek/terra/addons/flora/FloraAddon.java | 4 +- .../dfsek/terra/addons/noise/NoiseAddon.java | 57 +++++++++---------- .../terra/addons/palette/PaletteAddon.java | 2 +- .../addons/structure/StructureAddon.java | 3 +- .../dfsek/terra/addons/tree/TreeAddon.java | 2 +- .../java/com/dfsek/terra/api/TerraPlugin.java | 2 +- .../terra/config/pack/ConfigPackImpl.java | 6 +- .../dfsek/terra/fabric/TerraFabricPlugin.java | 18 ------ .../com/dfsek/terra/StandalonePlugin.java | 10 ---- 11 files changed, 45 insertions(+), 70 deletions(-) diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineAddon.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineAddon.java index 9cfeb3646..a0bed6170 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineAddon.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineAddon.java @@ -19,6 +19,7 @@ import com.dfsek.terra.api.addon.annotations.Addon; import com.dfsek.terra.api.addon.annotations.Author; import com.dfsek.terra.api.addon.annotations.Version; import com.dfsek.terra.api.event.EventListener; +import com.dfsek.terra.api.event.events.config.ConfigPackPreLoadEvent; import com.dfsek.terra.api.injection.annotations.Inject; import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder; import com.dfsek.terra.api.util.seeded.SourceSeeded; @@ -34,7 +35,11 @@ public class BiomePipelineAddon extends TerraAddon implements EventListener { @Override public void initialize() { - main.applyLoader(SourceSeeded.class, new SourceBuilderLoader()) + main.getEventManager().registerListener(this, this); + } + + public void onPackLoad(ConfigPackPreLoadEvent event) { + event.getPack().applyLoader(SourceSeeded.class, new SourceBuilderLoader()) .applyLoader(StageSeeded.class, new StageBuilderLoader()) .applyLoader(ExpanderStage.Type.class, (c, o, l) -> ExpanderStage.Type.valueOf((String) o)) .applyLoader(MutatorStage.Type.class, (c, o, l) -> MutatorStage.Type.valueOf((String) o)) diff --git a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/BiomeConfigAddon.java b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/BiomeConfigAddon.java index fccee46cd..ede3bba77 100644 --- a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/BiomeConfigAddon.java +++ b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/BiomeConfigAddon.java @@ -22,11 +22,11 @@ public class BiomeConfigAddon extends TerraAddon implements EventListener { @Override public void initialize() { main.getEventManager().registerListener(this, this); - main.applyLoader(PaletteHolder.class, new PaletteHolderLoader()) - .applyLoader(SlantHolder.class, (t, o, l) -> null); } public void onPackLoad(ConfigPackPreLoadEvent event) { event.getPack().registerConfigType(new BiomeConfigType(event.getPack()), "BIOME", 5); + event.getPack().applyLoader(PaletteHolder.class, new PaletteHolderLoader()) + .applyLoader(SlantHolder.class, (t, o, l) -> null); } } diff --git a/common/addons/config-flora/src/main/java/com/dfsek/terra/addons/flora/FloraAddon.java b/common/addons/config-flora/src/main/java/com/dfsek/terra/addons/flora/FloraAddon.java index 4b2bf4f1b..7d3cc6e03 100644 --- a/common/addons/config-flora/src/main/java/com/dfsek/terra/addons/flora/FloraAddon.java +++ b/common/addons/config-flora/src/main/java/com/dfsek/terra/addons/flora/FloraAddon.java @@ -34,13 +34,13 @@ public class FloraAddon extends TerraAddon implements EventListener { @Override public void initialize() { main.getEventManager().registerListener(this, this); - main.applyLoader(FloraLayer.class, FloraLayerLoader::new) - .applyLoader(BlockLayer.class, BlockLayerTemplate::new); } public void onPackLoad(ConfigPackPreLoadEvent event) throws DuplicateEntryException { event.getPack().registerConfigType(new FloraConfigType(event.getPack()), "FLORA", 2); event.getPack().getOrCreateRegistry(GenerationStageProvider.class).register("FLORA", pack -> new FloraPopulator(main, this)); + event.getPack().applyLoader(FloraLayer.class, FloraLayerLoader::new) + .applyLoader(BlockLayer.class, BlockLayerTemplate::new); } public void onBiomeLoad(ConfigLoadEvent event) { diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/NoiseAddon.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/NoiseAddon.java index 40c1ad850..3a2ecfc99 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/NoiseAddon.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/NoiseAddon.java @@ -51,7 +51,13 @@ public class NoiseAddon extends TerraAddon implements EventListener { @Override public void initialize() { plugin.getEventManager().registerListener(this, this); - plugin.applyLoader(ImageSamplerTemplate.class, ImageSamplerTemplate::new) + } + + public void packPreLoad(ConfigPackPreLoadEvent event) { + CheckedRegistry noiseRegistry = event.getPack().getOrCreateRegistry(NoiseProvider.class); + event.getPack() + .applyLoader(NoiseSeeded.class, new NoiseSamplerBuilderLoader(noiseRegistry)) + .applyLoader(ImageSamplerTemplate.class, ImageSamplerTemplate::new) .applyLoader(DomainWarpTemplate.class, DomainWarpTemplate::new) .applyLoader(LinearNormalizerTemplate.class, LinearNormalizerTemplate::new) .applyLoader(NormalNormalizerTemplate.class, NormalNormalizerTemplate::new) @@ -59,47 +65,40 @@ public class NoiseAddon extends TerraAddon implements EventListener { .applyLoader(ClampNormalizerTemplate.class, ClampNormalizerTemplate::new) .applyLoader(CellularSampler.ReturnType.class, (t, object, cf) -> CellularSampler.ReturnType.valueOf((String) object)) .applyLoader(CellularSampler.DistanceFunction.class, (t, object, cf) -> CellularSampler.DistanceFunction.valueOf((String) object)); - } - @SuppressWarnings("deprecation") - public void packPreLoad(ConfigPackPreLoadEvent event) { - CheckedRegistry noiseRegistry = event.getPack().getOrCreateRegistry(NoiseProvider.class); - event.getPack() - .applyLoader(NoiseSeeded.class, new NoiseSamplerBuilderLoader(noiseRegistry)); + noiseRegistry.register("LINEAR", LinearNormalizerTemplate::new); + noiseRegistry.register("NORMAL", NormalNormalizerTemplate::new); + noiseRegistry.register("CLAMP", ClampNormalizerTemplate::new); - noiseRegistry.registerUnchecked("LINEAR", LinearNormalizerTemplate::new); - noiseRegistry.registerUnchecked("NORMAL", NormalNormalizerTemplate::new); - noiseRegistry.registerUnchecked("CLAMP", ClampNormalizerTemplate::new); + noiseRegistry.register("IMAGE", ImageSamplerTemplate::new); - noiseRegistry.registerUnchecked("IMAGE", ImageSamplerTemplate::new); + noiseRegistry.register("DOMAINWARP", DomainWarpTemplate::new); - noiseRegistry.registerUnchecked("DOMAINWARP", DomainWarpTemplate::new); + noiseRegistry.register("FBM", BrownianMotionTemplate::new); + noiseRegistry.register("PINGPONG", PingPongTemplate::new); + noiseRegistry.register("RIDGED", RidgedFractalTemplate::new); - noiseRegistry.registerUnchecked("FBM", BrownianMotionTemplate::new); - noiseRegistry.registerUnchecked("PINGPONG", PingPongTemplate::new); - noiseRegistry.registerUnchecked("RIDGED", RidgedFractalTemplate::new); - - noiseRegistry.registerUnchecked("OPENSIMPLEX2", () -> new SimpleNoiseTemplate(OpenSimplex2Sampler::new)); - noiseRegistry.registerUnchecked("OPENSIMPLEX2S", () -> new SimpleNoiseTemplate(OpenSimplex2SSampler::new)); - noiseRegistry.registerUnchecked("PERLIN", () -> new SimpleNoiseTemplate(PerlinSampler::new)); - noiseRegistry.registerUnchecked("SIMPLEX", () -> new SimpleNoiseTemplate(SimplexSampler::new)); - noiseRegistry.registerUnchecked("GABOR", GaborNoiseTemplate::new); + noiseRegistry.register("OPENSIMPLEX2", () -> new SimpleNoiseTemplate(OpenSimplex2Sampler::new)); + noiseRegistry.register("OPENSIMPLEX2S", () -> new SimpleNoiseTemplate(OpenSimplex2SSampler::new)); + noiseRegistry.register("PERLIN", () -> new SimpleNoiseTemplate(PerlinSampler::new)); + noiseRegistry.register("SIMPLEX", () -> new SimpleNoiseTemplate(SimplexSampler::new)); + noiseRegistry.register("GABOR", GaborNoiseTemplate::new); - noiseRegistry.registerUnchecked("VALUE", () -> new SimpleNoiseTemplate(ValueSampler::new)); - noiseRegistry.registerUnchecked("VALUECUBIC", () -> new SimpleNoiseTemplate(ValueCubicSampler::new)); + noiseRegistry.register("VALUE", () -> new SimpleNoiseTemplate(ValueSampler::new)); + noiseRegistry.register("VALUECUBIC", () -> new SimpleNoiseTemplate(ValueCubicSampler::new)); - noiseRegistry.registerUnchecked("CELLULAR", CellularNoiseTemplate::new); + noiseRegistry.register("CELLULAR", CellularNoiseTemplate::new); - noiseRegistry.registerUnchecked("WHITENOISE", () -> new SimpleNoiseTemplate(WhiteNoiseSampler::new)); - noiseRegistry.registerUnchecked("GAUSSIAN", () -> new SimpleNoiseTemplate(GaussianNoiseSampler::new)); + noiseRegistry.register("WHITENOISE", () -> new SimpleNoiseTemplate(WhiteNoiseSampler::new)); + noiseRegistry.register("GAUSSIAN", () -> new SimpleNoiseTemplate(GaussianNoiseSampler::new)); - noiseRegistry.registerUnchecked("CONSTANT", ConstantNoiseTemplate::new); + noiseRegistry.register("CONSTANT", ConstantNoiseTemplate::new); - noiseRegistry.registerUnchecked("KERNEL", KernelTemplate::new); + noiseRegistry.register("KERNEL", KernelTemplate::new); Map packFunctions = new HashMap<>(); - noiseRegistry.registerUnchecked("EXPRESSION", () -> new ExpressionFunctionTemplate(packFunctions)); + noiseRegistry.register("EXPRESSION", () -> new ExpressionFunctionTemplate(packFunctions)); try { diff --git a/common/addons/config-palette/src/main/java/com/dfsek/terra/addons/palette/PaletteAddon.java b/common/addons/config-palette/src/main/java/com/dfsek/terra/addons/palette/PaletteAddon.java index 9b7112963..0ee51a855 100644 --- a/common/addons/config-palette/src/main/java/com/dfsek/terra/addons/palette/PaletteAddon.java +++ b/common/addons/config-palette/src/main/java/com/dfsek/terra/addons/palette/PaletteAddon.java @@ -21,10 +21,10 @@ public class PaletteAddon extends TerraAddon implements EventListener { @Override public void initialize() { main.getEventManager().registerListener(this, this); - main.applyLoader(PaletteLayerHolder.class, new PaletteLayerLoader()); } public void onPackLoad(ConfigPackPreLoadEvent event) { event.getPack().registerConfigType(new PaletteConfigType(event.getPack(), main), "PALETTE", 2); + event.getPack().applyLoader(PaletteLayerHolder.class, new PaletteLayerLoader()); } } diff --git a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/StructureAddon.java b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/StructureAddon.java index 09c80ca26..686f35029 100644 --- a/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/StructureAddon.java +++ b/common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/StructureAddon.java @@ -20,10 +20,9 @@ public class StructureAddon extends TerraAddon implements EventListener { @Override public void initialize() { main.getEventManager().registerListener(this, this); - main.applyLoader(ConfiguredStructure.class, (t, o, l) -> null); } public void onConfigLoad(ConfigPackPreLoadEvent event) { - + event.getPack().applyLoader(ConfiguredStructure.class, (t, o, l) -> null); } } diff --git a/common/addons/config-tree/src/main/java/com/dfsek/terra/addons/tree/TreeAddon.java b/common/addons/config-tree/src/main/java/com/dfsek/terra/addons/tree/TreeAddon.java index 9a5af3dbc..d27117b66 100644 --- a/common/addons/config-tree/src/main/java/com/dfsek/terra/addons/tree/TreeAddon.java +++ b/common/addons/config-tree/src/main/java/com/dfsek/terra/addons/tree/TreeAddon.java @@ -33,12 +33,12 @@ public class TreeAddon extends TerraAddon implements EventListener { @Override public void initialize() { main.getEventManager().registerListener(this, this); - main.applyLoader(TreeLayer.class, TreeLayerTemplate::new); } public void onPackLoad(ConfigPackPreLoadEvent event) throws DuplicateEntryException { event.getPack().registerConfigType(new TreeConfigType(event.getPack()), "TREE", 2); event.getPack().getOrCreateRegistry(GenerationStageProvider.class).register("TREE", pack -> new TreePopulator(main, this)); + event.getPack().applyLoader(TreeLayer.class, TreeLayerTemplate::new); } public void onBiomeLoad(ConfigLoadEvent event) { diff --git a/common/api/src/main/java/com/dfsek/terra/api/TerraPlugin.java b/common/api/src/main/java/com/dfsek/terra/api/TerraPlugin.java index c77a5a134..ccaa0aa99 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/TerraPlugin.java +++ b/common/api/src/main/java/com/dfsek/terra/api/TerraPlugin.java @@ -24,7 +24,7 @@ import java.util.jar.JarFile; /** * Represents a Terra mod/plugin instance. */ -public interface TerraPlugin extends LoaderRegistrar, LoaderHolder { +public interface TerraPlugin extends LoaderRegistrar { WorldHandle getWorldHandle(); TerraWorld getWorld(World world); diff --git a/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java b/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java index 2da842a0f..16ffaea5f 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java +++ b/common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java @@ -232,17 +232,17 @@ public class ConfigPackImpl implements ConfigPack { List configurations = new ArrayList<>(); - main.getEventManager().callEvent(new ConfigurationLoadEvent(this, loader, configurations::add)); + main.getEventManager().callEvent(new ConfigurationLoadEvent(this, loader, configurations::add)); // Create all the configs. Map, List> configs = new HashMap<>(); - for(Configuration configuration : configurations) { + for(Configuration configuration : configurations) { // Sort the configs ProtoConfig config = new ProtoConfig(); selfLoader.load(config, configuration); configs.computeIfAbsent(config.getType(), configType -> new ArrayList<>()).add(configuration); } - for(ConfigType configType : configTypeRegistry.entries()) { + for(ConfigType configType : configTypeRegistry.entries()) { // Load the configs CheckedRegistry registry = getCheckedRegistry(configType.getTypeClass()); for(AbstractConfiguration config : abstractConfigLoader.loadConfigs(configs.getOrDefault(configType, Collections.emptyList()))) { try { diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/TerraFabricPlugin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/TerraFabricPlugin.java index 7a7e692e2..b8d2a2612 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/TerraFabricPlugin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/TerraFabricPlugin.java @@ -91,9 +91,6 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer { private static TerraFabricPlugin instance; private final org.apache.logging.log4j.Logger log4jLogger = LogManager.getLogger(); private final Map> worldMap = new HashMap<>(); - - private final Map> loaders = new HashMap<>(); - private final Map>> objectLoaders = new HashMap<>(); private final EventManager eventManager = new EventManagerImpl(this); private final GenericLoaders genericLoaders = new GenericLoaders(this); private final Profiler profiler = new ProfilerImpl(); @@ -243,8 +240,6 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer { if(identifier == null) throw new LoadException("Invalid identifier: " + o); return identifier; }); - loaders.forEach(registry::registerLoader); - objectLoaders.forEach((t, l) -> registry.registerLoader(t, (Supplier>) ((Object) l))); } @Override @@ -293,19 +288,6 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer { return profiler; } - @Override - public TerraFabricPlugin applyLoader(Type type, TypeLoader loader) { - loaders.put(type, loader); - return this; - } - - @SuppressWarnings("unchecked") - @Override - public TerraFabricPlugin applyLoader(Type type, Supplier> loader) { - objectLoaders.put(type, (Supplier>) ((Object) loader)); - return this; - } - @Addon("Terra-Fabric") @Author("Terra") @Version("1.0.0") diff --git a/platforms/region/src/main/java/com/dfsek/terra/StandalonePlugin.java b/platforms/region/src/main/java/com/dfsek/terra/StandalonePlugin.java index de166ed79..1fe018928 100644 --- a/platforms/region/src/main/java/com/dfsek/terra/StandalonePlugin.java +++ b/platforms/region/src/main/java/com/dfsek/terra/StandalonePlugin.java @@ -161,14 +161,4 @@ public class StandalonePlugin implements TerraPlugin { public Profiler getProfiler() { return profiler; } - - @Override - public LoaderHolder applyLoader(Type type, TypeLoader loader) { - return null; - } - - @Override - public LoaderHolder applyLoader(Type type, Supplier> loader) { - return null; - } }