Register matter loaders

This commit is contained in:
cyberpwn 2021-09-11 12:06:23 -04:00
parent 2d7bc59db4
commit 7e65416f10

View File

@ -54,6 +54,7 @@ import com.volmit.iris.util.collection.KMap;
import com.volmit.iris.util.context.IrisContext; import com.volmit.iris.util.context.IrisContext;
import com.volmit.iris.util.format.C; import com.volmit.iris.util.format.C;
import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.math.RNG;
import com.volmit.iris.util.matter.IrisMatter;
import com.volmit.iris.util.scheduling.ChronoLatch; import com.volmit.iris.util.scheduling.ChronoLatch;
import com.volmit.iris.util.scheduling.J; import com.volmit.iris.util.scheduling.J;
import lombok.Data; import lombok.Data;
@ -84,6 +85,7 @@ public class IrisData implements ExclusionStrategy, TypeAdapterFactory {
private ResourceLoader<IrisExpression> expressionLoader; private ResourceLoader<IrisExpression> expressionLoader;
private ResourceLoader<IrisObject> objectLoader; private ResourceLoader<IrisObject> objectLoader;
private ResourceLoader<IrisScript> scriptLoader; private ResourceLoader<IrisScript> scriptLoader;
private ResourceLoader<IrisMatter> matterLoader;
private ResourceLoader<IrisCave> caveLoader; private ResourceLoader<IrisCave> caveLoader;
private ResourceLoader<IrisRavine> ravineLoader; private ResourceLoader<IrisRavine> ravineLoader;
private KMap<String, KList<String>> possibleSnippets; private KMap<String, KList<String>> possibleSnippets;
@ -167,6 +169,10 @@ public class IrisData implements ExclusionStrategy, TypeAdapterFactory {
return loadAny(key, (dm) -> dm.getScriptLoader().load(key, false)); return loadAny(key, (dm) -> dm.getScriptLoader().load(key, false));
} }
public static IrisMatter loadAnyMatter(String key) {
return loadAny(key, (dm) -> dm.getMatterLoader().load(key, false));
}
public static IrisRavine loadAnyRavine(String key) { public static IrisRavine loadAnyRavine(String key) {
return loadAny(key, (dm) -> dm.getRavineLoader().load(key, false)); return loadAny(key, (dm) -> dm.getRavineLoader().load(key, false));
} }
@ -280,6 +286,8 @@ public class IrisData implements ExclusionStrategy, TypeAdapterFactory {
ResourceLoader<T> r = null; ResourceLoader<T> r = null;
if (registrant.equals(IrisObject.class)) { if (registrant.equals(IrisObject.class)) {
r = (ResourceLoader<T>) new ObjectResourceLoader(dataFolder, this, rr.getFolderName(), rr.getTypeName()); r = (ResourceLoader<T>) new ObjectResourceLoader(dataFolder, this, rr.getFolderName(), rr.getTypeName());
} else if (registrant.equals(IrisMatter.class)) {
r = (ResourceLoader<T>) new MatterResourceLoader(dataFolder, this, rr.getFolderName(), rr.getTypeName());
} else if (registrant.equals(IrisScript.class)) { } else if (registrant.equals(IrisScript.class)) {
r = (ResourceLoader<T>) new ScriptResourceLoader(dataFolder, this, rr.getFolderName(), rr.getTypeName()); r = (ResourceLoader<T>) new ScriptResourceLoader(dataFolder, this, rr.getFolderName(), rr.getTypeName());
} else { } else {
@ -325,6 +333,7 @@ public class IrisData implements ExclusionStrategy, TypeAdapterFactory {
this.blockLoader = registerLoader(IrisBlockData.class); this.blockLoader = registerLoader(IrisBlockData.class);
this.expressionLoader = registerLoader(IrisExpression.class); this.expressionLoader = registerLoader(IrisExpression.class);
this.objectLoader = registerLoader(IrisObject.class); this.objectLoader = registerLoader(IrisObject.class);
this.matterLoader = registerLoader(IrisMatter.class);
this.scriptLoader = registerLoader(IrisScript.class); this.scriptLoader = registerLoader(IrisScript.class);
gson = builder.create(); gson = builder.create();
} }