mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-04-06 07:46:08 +00:00
Works, but somehow i broke parallax
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package com.volmit.iris.util;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.manager.IrisDataManager;
|
||||
import com.volmit.iris.object.IrisObject;
|
||||
|
||||
import java.io.File;
|
||||
@@ -10,9 +11,9 @@ public class ObjectResourceLoader extends ResourceLoader<IrisObject>
|
||||
private ChronoLatch useFlip = new ChronoLatch(2863);
|
||||
private KMap<String, Long> useCache = new KMap<>();
|
||||
|
||||
public ObjectResourceLoader(File root, String folderName, String resourceTypeName)
|
||||
public ObjectResourceLoader(File root, IrisDataManager idm, String folderName, String resourceTypeName)
|
||||
{
|
||||
super(root, folderName, resourceTypeName, IrisObject.class);
|
||||
super(root, idm, folderName, resourceTypeName, IrisObject.class);
|
||||
}
|
||||
|
||||
public int getSize()
|
||||
@@ -92,6 +93,8 @@ public class ObjectResourceLoader extends ResourceLoader<IrisObject>
|
||||
loadCache.put(key, t);
|
||||
J.a(() -> Iris.verbose("Loading " + resourceTypeName + ": " + j.getPath()));
|
||||
t.setLoadKey(name);
|
||||
t.setLoader(manager);
|
||||
t.setLoadFile(j);
|
||||
lock.unlock();
|
||||
return t;
|
||||
}
|
||||
@@ -104,64 +107,6 @@ public class ObjectResourceLoader extends ResourceLoader<IrisObject>
|
||||
}
|
||||
}
|
||||
|
||||
public String[] getPreferredKeys()
|
||||
{
|
||||
if(preferredFolder == null || preferredFolder.isEmpty())
|
||||
{
|
||||
return getPossibleKeys();
|
||||
}
|
||||
|
||||
if(possibleKeys != null)
|
||||
{
|
||||
return possibleKeys;
|
||||
}
|
||||
|
||||
Iris.info("Building " + resourceTypeName + " Preference Lists");
|
||||
KSet<String> m = new KSet<>();
|
||||
|
||||
for(File i : getFolders())
|
||||
{
|
||||
for(File j : i.listFiles())
|
||||
{
|
||||
if(!j.getPath().contains(preferredFolder))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(j.isFile() && j.getName().endsWith(".iob"))
|
||||
{
|
||||
m.add(j.getName().replaceAll("\\Q.iob\\E", ""));
|
||||
}
|
||||
|
||||
else if(j.isDirectory())
|
||||
{
|
||||
for(File k : j.listFiles())
|
||||
{
|
||||
if(k.isFile() && k.getName().endsWith(".iob"))
|
||||
{
|
||||
m.add(j.getName() + "/" + k.getName().replaceAll("\\Q.iob\\E", ""));
|
||||
}
|
||||
|
||||
else if(k.isDirectory())
|
||||
{
|
||||
for(File l : k.listFiles())
|
||||
{
|
||||
if(l.isFile() && l.getName().endsWith(".iob"))
|
||||
{
|
||||
m.add(j.getName() + "/" + k.getName() + "/" + l.getName().replaceAll("\\Q.iob\\E", ""));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
KList<String> v = new KList<>(m);
|
||||
possibleKeys = v.toArray(new String[v.size()]);
|
||||
return possibleKeys;
|
||||
}
|
||||
|
||||
public String[] getPossibleKeys()
|
||||
{
|
||||
if(possibleKeys != null)
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
package com.volmit.iris.util;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.manager.IrisDataManager;
|
||||
import com.volmit.iris.object.IrisRegistrant;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
@Data
|
||||
public class ResourceLoader<T extends IrisRegistrant>
|
||||
{
|
||||
@@ -20,13 +20,13 @@ public class ResourceLoader<T extends IrisRegistrant>
|
||||
protected Class<? extends T> objectClass;
|
||||
protected String cname;
|
||||
protected IrisLock lock;
|
||||
protected String preferredFolder = null;
|
||||
protected String[] possibleKeys = null;
|
||||
protected String[] preferredKeys = null;
|
||||
protected IrisDataManager manager;
|
||||
|
||||
public ResourceLoader(File root, String folderName, String resourceTypeName, Class<? extends T> objectClass)
|
||||
public ResourceLoader(File root, IrisDataManager manager, String folderName, String resourceTypeName, Class<? extends T> objectClass)
|
||||
{
|
||||
lock = new IrisLock("Res");
|
||||
this.manager = manager;
|
||||
folderMapCache = new KMap<>();
|
||||
this.objectClass = objectClass;
|
||||
cname = objectClass.getCanonicalName();
|
||||
@@ -36,53 +36,6 @@ public class ResourceLoader<T extends IrisRegistrant>
|
||||
loadCache = new KMap<>();
|
||||
}
|
||||
|
||||
public String[] getPreferredKeys()
|
||||
{
|
||||
if(preferredFolder == null || preferredFolder.isEmpty())
|
||||
{
|
||||
return getPossibleKeys();
|
||||
}
|
||||
|
||||
if(preferredKeys != null)
|
||||
{
|
||||
return preferredKeys;
|
||||
}
|
||||
|
||||
Iris.info("Building " + resourceTypeName + " Preference Lists");
|
||||
KSet<String> m = new KSet<>();
|
||||
|
||||
for(File i : getFolders())
|
||||
{
|
||||
for(File j : i.listFiles())
|
||||
{
|
||||
if(!j.getPath().contains(preferredFolder))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(j.isFile() && j.getName().endsWith(".json"))
|
||||
{
|
||||
m.add(j.getName().replaceAll("\\Q.json\\E", ""));
|
||||
}
|
||||
|
||||
else if(j.isDirectory())
|
||||
{
|
||||
for(File k : j.listFiles())
|
||||
{
|
||||
if(k.isFile() && k.getName().endsWith(".json"))
|
||||
{
|
||||
m.add(j.getName() + "/" + k.getName().replaceAll("\\Q.json\\E", ""));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
KList<String> v = new KList<>(m);
|
||||
preferredKeys = v.toArray(new String[v.size()]);
|
||||
return preferredKeys;
|
||||
}
|
||||
|
||||
public String[] getPossibleKeys()
|
||||
{
|
||||
if(possibleKeys != null)
|
||||
@@ -134,6 +87,7 @@ public class ResourceLoader<T extends IrisRegistrant>
|
||||
J.a(() -> Iris.verbose("Loading " + resourceTypeName + ": " + j.getPath()));
|
||||
t.setLoadKey(name);
|
||||
t.setLoadFile(j);
|
||||
t.setLoader(manager);
|
||||
lock.unlock();
|
||||
return t;
|
||||
}
|
||||
@@ -205,26 +159,10 @@ public class ResourceLoader<T extends IrisRegistrant>
|
||||
{
|
||||
if(i.isDirectory())
|
||||
{
|
||||
for(File j : i.listFiles())
|
||||
if(i.getName().equals(folderName))
|
||||
{
|
||||
if(j.isDirectory() && j.getName().equals(folderName))
|
||||
{
|
||||
folderCache.add(j);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(preferredFolder != null)
|
||||
{
|
||||
for(File i : folderCache.copy())
|
||||
{
|
||||
if(i.getParentFile().getName().equals(preferredFolder) || i.getParentFile().getParentFile().getName().equals(preferredFolder))
|
||||
{
|
||||
folderCache.remove(i);
|
||||
folderCache.add(0, i);
|
||||
Iris.verbose("Prefering " + i.getPath() + " in the folder cache because we prefer " + preferredFolder);
|
||||
folderCache.add(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -290,12 +228,6 @@ public class ResourceLoader<T extends IrisRegistrant>
|
||||
return loadCache.containsKey(next);
|
||||
}
|
||||
|
||||
public void preferFolder(String name)
|
||||
{
|
||||
clearList();
|
||||
preferredFolder = name;
|
||||
}
|
||||
|
||||
public void clearList()
|
||||
{
|
||||
lock.lock();
|
||||
|
||||
Reference in New Issue
Block a user