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 edf7024f4..ca8972492 100644 --- a/common/src/main/java/com/dfsek/terra/config/GenericLoaders.java +++ b/common/src/main/java/com/dfsek/terra/config/GenericLoaders.java @@ -26,7 +26,7 @@ import com.dfsek.terra.config.loaders.MaterialSetLoader; 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.GridSpawnLoader; +import com.dfsek.terra.config.loaders.config.GridSpawnTemplate; import com.dfsek.terra.config.loaders.config.OreConfigLoader; import com.dfsek.terra.config.loaders.config.OreHolderLoader; import com.dfsek.terra.config.loaders.config.TreeLayerLoader; @@ -69,7 +69,7 @@ public class GenericLoaders implements LoaderRegistrar { public void register(TypeRegistry registry) { registry.registerLoader(ProbabilityCollection.class, new ProbabilityCollectionLoader()) .registerLoader(Range.class, new RangeLoader()) - .registerLoader(GridSpawn.class, new GridSpawnLoader()) + .registerLoader(GridSpawn.class, GridSpawnTemplate::new) .registerLoader(PaletteHolder.class, new PaletteHolderLoader()) .registerLoader(PaletteLayerHolder.class, new PaletteLayerLoader()) .registerLoader(FloraLayer.class, FloraLayerTemplate::new) diff --git a/common/src/main/java/com/dfsek/terra/config/loaders/config/GridSpawnLoader.java b/common/src/main/java/com/dfsek/terra/config/loaders/config/GridSpawnLoader.java deleted file mode 100644 index 493d0b0eb..000000000 --- a/common/src/main/java/com/dfsek/terra/config/loaders/config/GridSpawnLoader.java +++ /dev/null @@ -1,17 +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.GridSpawn; - -import java.lang.reflect.Type; -import java.util.Map; - -@SuppressWarnings("unchecked") -public class GridSpawnLoader implements TypeLoader { - @Override - public GridSpawn load(Type type, Object o, ConfigLoader configLoader) { - Map map = (Map) o; - return new GridSpawn(map.get("width"), map.get("padding"), map.getOrDefault("salt", 0)); - } -} diff --git a/common/src/main/java/com/dfsek/terra/config/loaders/config/GridSpawnTemplate.java b/common/src/main/java/com/dfsek/terra/config/loaders/config/GridSpawnTemplate.java new file mode 100644 index 000000000..cbd442600 --- /dev/null +++ b/common/src/main/java/com/dfsek/terra/config/loaders/config/GridSpawnTemplate.java @@ -0,0 +1,25 @@ +package com.dfsek.terra.config.loaders.config; + +import com.dfsek.tectonic.annotations.Default; +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.GridSpawn; + +@SuppressWarnings("FieldMayBeFinal") +public class GridSpawnTemplate implements ObjectTemplate { + @Value("width") + private MetaValue width; + + @Value("padding") + private MetaValue padding; + + @Value("salt") + @Default + private MetaValue salt = MetaValue.of(0); + + @Override + public GridSpawn get() { + return new GridSpawn(width.get(), padding.get(), salt.get()); + } +}