From 215a1e0e86728450ad5bb56924b9a4c045ec595b Mon Sep 17 00:00:00 2001 From: dfsek Date: Wed, 30 Jun 2021 21:29:19 -0700 Subject: [PATCH] more addonification progress --- common/addons/biome/config/build.gradle.kts | 1 + .../com/dfsek/terra/api/config/ConfigPack.java | 5 +++-- .../terra/api/registry/meta/RegistryHolder.java | 10 ++++++++++ .../dfsek/terra/config/pack/ConfigPackImpl.java | 15 +++++++-------- 4 files changed, 21 insertions(+), 10 deletions(-) create mode 100644 common/api/src/main/java/com/dfsek/terra/api/registry/meta/RegistryHolder.java diff --git a/common/addons/biome/config/build.gradle.kts b/common/addons/biome/config/build.gradle.kts index d6f23e57a..4b0339e03 100644 --- a/common/addons/biome/config/build.gradle.kts +++ b/common/addons/biome/config/build.gradle.kts @@ -14,6 +14,7 @@ group = "com.dfsek.terra.common" dependencies { "shadedApi"(project(":common:api")) + "compileOnly"(project(":common:addons:noise")) "shadedApi"("org.apache.commons:commons-rng-core:1.3") "shadedApi"("commons-io:commons-io:2.4") diff --git a/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java b/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java index 0c4691c98..f3fbf4f88 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java +++ b/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java @@ -1,5 +1,6 @@ package com.dfsek.terra.api.config; +import com.dfsek.terra.api.registry.meta.RegistryHolder; import com.dfsek.terra.api.tectonic.LoaderHolder; import com.dfsek.terra.api.tectonic.LoaderRegistrar; import com.dfsek.terra.api.addon.TerraAddon; @@ -10,14 +11,14 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import java.util.Map; import java.util.Set; -public interface ConfigPack extends LoaderRegistrar, LoaderHolder { +public interface ConfigPack extends LoaderRegistrar, LoaderHolder, RegistryHolder { CheckedRegistry getRegistry(Class clazz); BiomeProvider.BiomeProviderBuilder getBiomeProviderBuilder(); WorldConfig toWorldConfig(TerraWorld world); - CheckedRegistry> getConfigTypeRegistry(); + void registerConfigType(ConfigType type, int priority); Set addons(); diff --git a/common/api/src/main/java/com/dfsek/terra/api/registry/meta/RegistryHolder.java b/common/api/src/main/java/com/dfsek/terra/api/registry/meta/RegistryHolder.java new file mode 100644 index 000000000..dcad668f1 --- /dev/null +++ b/common/api/src/main/java/com/dfsek/terra/api/registry/meta/RegistryHolder.java @@ -0,0 +1,10 @@ +package com.dfsek.terra.api.registry.meta; + +import com.dfsek.terra.api.registry.CheckedRegistry; +import com.dfsek.terra.api.registry.Registry; + +public interface RegistryHolder { + Registry getRegistry(Class clazz); + + CheckedRegistry getCheckedRegistry(Class clazz) throws IllegalStateException; +} 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 d3001134b..52929642c 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 @@ -292,6 +292,11 @@ public class ConfigPackImpl implements ConfigPack { return (CheckedRegistry) registryMap.getOrDefault(clazz, ImmutablePair.ofNull()).getRight(); } + @Override + public CheckedRegistry getCheckedRegistry(Class clazz) throws IllegalStateException { + return null; + } + @SuppressWarnings("unchecked") protected OpenRegistry getOpenRegistry(Class clazz) { return (OpenRegistry) registryMap.getOrDefault(clazz, ImmutablePair.ofNull()).getLeft(); @@ -323,14 +328,8 @@ public class ConfigPackImpl implements ConfigPack { } @Override - public CheckedRegistry> getConfigTypeRegistry() { - return new CheckedRegistryImpl<>(configTypeRegistry) { - @Override - @SuppressWarnings("deprecation") - public void addUnchecked(String identifier, ConfigType value) { - if(contains(identifier)) throw new UnsupportedOperationException("Cannot override values in ConfigTypeRegistry!"); - } - }; + public void registerConfigType(ConfigType type, int priority) { + } @Override