mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-19 15:20:55 +00:00
Add loaders for vector classes
This commit is contained in:
@@ -31,10 +31,14 @@ import com.dfsek.terra.api.tectonic.LoaderRegistrar;
|
|||||||
import com.dfsek.terra.api.util.Range;
|
import com.dfsek.terra.api.util.Range;
|
||||||
import com.dfsek.terra.api.util.collection.MaterialSet;
|
import com.dfsek.terra.api.util.collection.MaterialSet;
|
||||||
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
|
||||||
|
import com.dfsek.terra.api.util.vector.Vector3;
|
||||||
|
import com.dfsek.terra.api.util.vector.Vector3Int;
|
||||||
import com.dfsek.terra.config.loaders.LinkedHashMapLoader;
|
import com.dfsek.terra.config.loaders.LinkedHashMapLoader;
|
||||||
import com.dfsek.terra.config.loaders.MaterialSetLoader;
|
import com.dfsek.terra.config.loaders.MaterialSetLoader;
|
||||||
import com.dfsek.terra.config.loaders.ProbabilityCollectionLoader;
|
import com.dfsek.terra.config.loaders.ProbabilityCollectionLoader;
|
||||||
import com.dfsek.terra.config.loaders.RangeLoader;
|
import com.dfsek.terra.config.loaders.RangeLoader;
|
||||||
|
import com.dfsek.terra.config.loaders.Vector3IntLoader;
|
||||||
|
import com.dfsek.terra.config.loaders.Vector3Loader;
|
||||||
import com.dfsek.terra.config.loaders.VersionLoader;
|
import com.dfsek.terra.config.loaders.VersionLoader;
|
||||||
import com.dfsek.terra.config.loaders.VersionRangeLoader;
|
import com.dfsek.terra.config.loaders.VersionRangeLoader;
|
||||||
|
|
||||||
@@ -53,7 +57,9 @@ public class GenericLoaders implements LoaderRegistrar {
|
|||||||
.registerLoader(Version.class, new VersionLoader())
|
.registerLoader(Version.class, new VersionLoader())
|
||||||
.registerLoader(MaterialSet.class, new MaterialSetLoader())
|
.registerLoader(MaterialSet.class, new MaterialSetLoader())
|
||||||
.registerLoader(VersionRange.class, new VersionRangeLoader())
|
.registerLoader(VersionRange.class, new VersionRangeLoader())
|
||||||
.registerLoader(LinkedHashMap.class, new LinkedHashMapLoader());
|
.registerLoader(LinkedHashMap.class, new LinkedHashMapLoader())
|
||||||
|
.registerLoader(Vector3.class, new Vector3Loader())
|
||||||
|
.registerLoader(Vector3Int.class, new Vector3IntLoader());
|
||||||
|
|
||||||
if(platform != null) {
|
if(platform != null) {
|
||||||
registry.registerLoader(BaseAddon.class, platform.getAddons())
|
registry.registerLoader(BaseAddon.class, platform.getAddons())
|
||||||
|
|||||||
+31
@@ -0,0 +1,31 @@
|
|||||||
|
package com.dfsek.terra.config.loaders;
|
||||||
|
|
||||||
|
import com.dfsek.tectonic.api.depth.DepthTracker;
|
||||||
|
import com.dfsek.tectonic.api.exception.LoadException;
|
||||||
|
import com.dfsek.tectonic.api.loader.ConfigLoader;
|
||||||
|
import com.dfsek.tectonic.api.loader.type.TypeLoader;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.lang.reflect.AnnotatedType;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.util.vector.Vector3Int;
|
||||||
|
|
||||||
|
public class Vector3IntLoader implements TypeLoader<Vector3Int> {
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
@Override
|
||||||
|
public Vector3Int load(@NotNull AnnotatedType annotatedType, @NotNull Object o, @NotNull ConfigLoader configLoader,
|
||||||
|
DepthTracker depthTracker) throws LoadException {
|
||||||
|
if (o instanceof List) {
|
||||||
|
List<Integer> list = (List<Integer>) o;
|
||||||
|
return Vector3Int.of(list.get(0), list.get(1), list.get(2));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Map<String, Integer> map = (Map<String, Integer>) o;
|
||||||
|
return Vector3Int.of(map.get("x"), map.get("y"), map.get("z"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
+32
@@ -0,0 +1,32 @@
|
|||||||
|
package com.dfsek.terra.config.loaders;
|
||||||
|
|
||||||
|
import com.dfsek.tectonic.api.depth.DepthTracker;
|
||||||
|
import com.dfsek.tectonic.api.exception.LoadException;
|
||||||
|
import com.dfsek.tectonic.api.loader.ConfigLoader;
|
||||||
|
import com.dfsek.tectonic.api.loader.type.TypeLoader;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.lang.reflect.AnnotatedType;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.util.vector.Vector3;
|
||||||
|
|
||||||
|
|
||||||
|
public class Vector3Loader implements TypeLoader<Vector3> {
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
@Override
|
||||||
|
public Vector3 load(@NotNull AnnotatedType annotatedType, @NotNull Object o, @NotNull ConfigLoader configLoader,
|
||||||
|
DepthTracker depthTracker) throws LoadException {
|
||||||
|
if (o instanceof List) {
|
||||||
|
List<Double> list = (List<Double>) o;
|
||||||
|
return Vector3.of(list.get(0), list.get(1), list.get(2));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Map<String, Double> map = (Map<String, Double>) o;
|
||||||
|
return Vector3.of(map.get("x"), map.get("y"), map.get("z"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user