From 139f67af526440dbbcd4a676fe8b7643c7276a27 Mon Sep 17 00:00:00 2001 From: dfsek Date: Mon, 14 Jun 2021 14:15:21 -0700 Subject: [PATCH] oreconfigloader -> OreConfigTemplate --- .../dfsek/terra/config/GenericLoaders.java | 4 +-- .../loaders/config/OreConfigLoader.java | 20 -------------- .../loaders/config/OreConfigTemplate.java | 26 +++++++++++++++++++ 3 files changed, 28 insertions(+), 22 deletions(-) delete mode 100644 common/src/main/java/com/dfsek/terra/config/loaders/config/OreConfigLoader.java create mode 100644 common/src/main/java/com/dfsek/terra/config/loaders/config/OreConfigTemplate.java diff --git a/common/src/main/java/com/dfsek/terra/config/GenericLoaders.java b/common/src/main/java/com/dfsek/terra/config/GenericLoaders.java index ca8972492..a331cb898 100644 --- a/common/src/main/java/com/dfsek/terra/config/GenericLoaders.java +++ b/common/src/main/java/com/dfsek/terra/config/GenericLoaders.java @@ -27,7 +27,7 @@ import com.dfsek.terra.config.loaders.ProbabilityCollectionLoader; import com.dfsek.terra.config.loaders.RangeLoader; import com.dfsek.terra.config.loaders.config.FloraLayerTemplate; import com.dfsek.terra.config.loaders.config.GridSpawnTemplate; -import com.dfsek.terra.config.loaders.config.OreConfigLoader; +import com.dfsek.terra.config.loaders.config.OreConfigTemplate; import com.dfsek.terra.config.loaders.config.OreHolderLoader; import com.dfsek.terra.config.loaders.config.TreeLayerLoader; import com.dfsek.terra.config.loaders.config.biome.BiomeProviderBuilderLoader; @@ -74,7 +74,7 @@ public class GenericLoaders implements LoaderRegistrar { .registerLoader(PaletteLayerHolder.class, new PaletteLayerLoader()) .registerLoader(FloraLayer.class, FloraLayerTemplate::new) .registerLoader(Ore.Type.class, (t, o, l) -> Ore.Type.valueOf(o.toString())) - .registerLoader(OreConfig.class, new OreConfigLoader()) + .registerLoader(OreConfig.class, OreConfigTemplate::new) .registerLoader(TreeLayer.class, new TreeLayerLoader()) .registerLoader(MaterialSet.class, new MaterialSetLoader()) .registerLoader(OreHolder.class, new OreHolderLoader()) diff --git a/common/src/main/java/com/dfsek/terra/config/loaders/config/OreConfigLoader.java b/common/src/main/java/com/dfsek/terra/config/loaders/config/OreConfigLoader.java deleted file mode 100644 index 548da2181..000000000 --- a/common/src/main/java/com/dfsek/terra/config/loaders/config/OreConfigLoader.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.dfsek.terra.config.loaders.config; - -import com.dfsek.tectonic.loading.ConfigLoader; -import com.dfsek.tectonic.loading.TypeLoader; -import com.dfsek.terra.api.math.Range; -import com.dfsek.terra.world.population.items.ores.OreConfig; - -import java.lang.reflect.Type; -import java.util.Map; - -@SuppressWarnings("unchecked") -public class OreConfigLoader implements TypeLoader { - @Override - public OreConfig load(Type type, Object o, ConfigLoader configLoader) { - Map map = (Map) o; - Range amount = new Range(map.get("min"), map.get("max")); - Range height = new Range(map.get("min-height"), map.get("max-height")); - return new OreConfig(amount, height); - } -} diff --git a/common/src/main/java/com/dfsek/terra/config/loaders/config/OreConfigTemplate.java b/common/src/main/java/com/dfsek/terra/config/loaders/config/OreConfigTemplate.java new file mode 100644 index 000000000..4ec47888b --- /dev/null +++ b/common/src/main/java/com/dfsek/terra/config/loaders/config/OreConfigTemplate.java @@ -0,0 +1,26 @@ +package com.dfsek.terra.config.loaders.config; + +import com.dfsek.tectonic.annotations.Value; +import com.dfsek.tectonic.loading.object.ObjectTemplate; +import com.dfsek.terra.api.config.meta.MetaValue; +import com.dfsek.terra.api.math.Range; +import com.dfsek.terra.world.population.items.ores.OreConfig; + +public class OreConfigTemplate implements ObjectTemplate { + @Value("min") + private MetaValue min; + + @Value("max") + private MetaValue max; + + @Value("min-height") + private MetaValue minHeight; + + @Value("max-height") + private MetaValue maxHeight; + + @Override + public OreConfig get() { + return new OreConfig(new Range(min.get(), max.get()), new Range(minHeight.get(), maxHeight.get())); + } +}