From b8e1e99b8466603cdd3262f50d5078537d511b8f Mon Sep 17 00:00:00 2001 From: dfsek Date: Mon, 5 Jul 2021 20:09:59 -0700 Subject: [PATCH] noise addon impl --- .../java/com/dfsek/terra/addons/noise/NoiseAddon.java | 5 +++-- .../com/dfsek/terra/config/pack/ConfigPackImpl.java | 10 ++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/common/addons/noise/src/main/java/com/dfsek/terra/addons/noise/NoiseAddon.java b/common/addons/noise/src/main/java/com/dfsek/terra/addons/noise/NoiseAddon.java index 11c8b1af8..70963b5bd 100644 --- a/common/addons/noise/src/main/java/com/dfsek/terra/addons/noise/NoiseAddon.java +++ b/common/addons/noise/src/main/java/com/dfsek/terra/addons/noise/NoiseAddon.java @@ -30,6 +30,7 @@ import com.dfsek.terra.api.addon.TerraAddon; 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.annotations.Global; import com.dfsek.terra.api.event.events.config.ConfigPackPreLoadEvent; import com.dfsek.terra.api.injection.annotations.Inject; @@ -40,12 +41,13 @@ import com.dfsek.terra.api.util.seeded.NoiseSeeded; @Addon("noise") @Author("Terra") @Version("1.0.0") -public class NoiseAddon extends TerraAddon { +public class NoiseAddon extends TerraAddon implements EventListener { @Inject private TerraPlugin plugin; @Override public void initialize() { + plugin.getEventManager().registerListener(this, this); plugin.applyLoader(ImageSamplerTemplate.class, ImageSamplerTemplate::new) .applyLoader(DomainWarpTemplate.class, DomainWarpTemplate::new) .applyLoader(LinearNormalizerTemplate.class, LinearNormalizerTemplate::new) @@ -58,7 +60,6 @@ public class NoiseAddon extends TerraAddon { } @SuppressWarnings("deprecation") - @Global public void packPreLoad(ConfigPackPreLoadEvent event) { event.getPack() 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 9618d72ac..8cbb79b64 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 @@ -184,6 +184,12 @@ public class ConfigPackImpl implements ConfigPack { toWorldConfig(new TerraWorldImpl(new DummyWorld(), this, main)); // Build now to catch any errors immediately. } + @SuppressWarnings("unchecked") + private void applyLoaders(TypeRegistry registry) { + loaders.forEach(registry::registerLoader); + objectLoaders.forEach((t, l) -> registry.registerLoader(t, (TemplateProvider>) ((Object) l))); + } + private Map, ImmutablePair, CheckedRegistry>> newRegistryMap() { Map, ImmutablePair, CheckedRegistry>> map = new HashMap, ImmutablePair, CheckedRegistry>>() { @Serial @@ -230,6 +236,8 @@ public class ConfigPackImpl implements ConfigPack { @SuppressWarnings({"unchecked", "rawtypes"}) private void load(long start, TerraPlugin main) throws ConfigException { + applyLoaders(abstractConfigLoader); + applyLoaders(selfLoader); configTypes.values().forEach(list -> list.forEach(pair -> configTypeRegistry.register(pair.getLeft(), pair.getRight()))); for(Map.Entry var : template.getVariables().entrySet()) { @@ -297,8 +305,6 @@ public class ConfigPackImpl implements ConfigPack { .registerLoader(ConfigType.class, configTypeRegistry) .registerLoader(BufferedImage.class, new BufferedImageLoader(loader)); registryMap.forEach((clazz, reg) -> registry.registerLoader(clazz, reg.getLeft())); - loaders.forEach(registry::registerLoader); - objectLoaders.forEach((t, l) -> registry.registerLoader(t, (TemplateProvider>) ((Object) l))); } @Override