diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/config/GenericLoaders.java b/common/implementation/base/src/main/java/com/dfsek/terra/config/GenericLoaders.java index 67874694f..f4f5c6cfd 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/config/GenericLoaders.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/config/GenericLoaders.java @@ -35,7 +35,6 @@ import com.dfsek.terra.config.loaders.LinkedHashMapLoader; 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.RangeLoader.RangeMap; import com.dfsek.terra.config.loaders.VersionLoader; import com.dfsek.terra.config.loaders.VersionRangeLoader; @@ -51,7 +50,6 @@ public class GenericLoaders implements LoaderRegistrar { public void register(TypeRegistry registry) { registry.registerLoader(ProbabilityCollection.class, new ProbabilityCollectionLoader()) .registerLoader(Range.class, new RangeLoader()) - .registerLoader(RangeMap.class, RangeLoader.RangeMapTemplate::new) // Needed to use ObjectTemplates in TypeLoaders .registerLoader(Version.class, new VersionLoader()) .registerLoader(MaterialSet.class, new MaterialSetLoader()) .registerLoader(VersionRange.class, new VersionRangeLoader()) diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/RangeLoader.java b/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/RangeLoader.java index c4463bfbb..ca40d6b90 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/RangeLoader.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/RangeLoader.java @@ -24,13 +24,14 @@ import com.dfsek.tectonic.api.exception.LoadException; import com.dfsek.tectonic.api.loader.ConfigLoader; import com.dfsek.tectonic.api.loader.type.TypeLoader; +import com.dfsek.tectonic.impl.MapConfiguration; + import com.dfsek.terra.api.config.meta.Meta; import org.jetbrains.annotations.NotNull; import java.lang.reflect.AnnotatedType; import java.util.Map; -import java.util.function.Supplier; import com.dfsek.terra.api.util.ConstantRange; import com.dfsek.terra.api.util.Range; @@ -42,19 +43,17 @@ public class RangeLoader implements TypeLoader { public Range load(@NotNull AnnotatedType type, @NotNull Object o, @NotNull ConfigLoader configLoader, DepthTracker depthTracker) throws LoadException { if(o instanceof Map) { - return configLoader.loadType(RangeMap.class, o, depthTracker).get(); + return configLoader.load(new RangeMapTemplate(), new MapConfiguration((Map) o), depthTracker).get(); } else { int h = configLoader.loadType(Integer.class, o, depthTracker); return new ConstantRange(h, h + 1); } } - public interface RangeMap extends Supplier {} - /* * Template needed so keys can be meta annotated, otherwise the loader could just grab keys directly from the object */ - public static class RangeMapTemplate implements ObjectTemplate { + public static class RangeMapTemplate implements ObjectTemplate { @Value("min") private @Meta int min; @@ -62,8 +61,8 @@ public class RangeLoader implements TypeLoader { private @Meta int max; @Override - public RangeMap get() { - return () -> new ConstantRange(min, max); + public Range get() { + return new ConstantRange(min, max); } } }