mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-18 18:23:06 +00:00
fixes
This commit is contained in:
parent
e0714637ff
commit
d3a4b0451d
@ -73,6 +73,15 @@ public class IrisDataManager
|
||||
prod = pr;
|
||||
}
|
||||
|
||||
public void dump()
|
||||
{
|
||||
biomeLoader.clearCache();
|
||||
regionLoader.clearCache();
|
||||
dimensionLoader.clearCache();
|
||||
generatorLoader.clearCache();
|
||||
structureLoader.clearCache();
|
||||
}
|
||||
|
||||
private void writeExamples()
|
||||
{
|
||||
File examples = new File(dataFolder, "example");
|
||||
@ -148,4 +157,13 @@ public class IrisDataManager
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public void preferFolder(String name)
|
||||
{
|
||||
biomeLoader.preferFolder(name);
|
||||
regionLoader.preferFolder(name);
|
||||
dimensionLoader.preferFolder(name);
|
||||
generatorLoader.preferFolder(name);
|
||||
structureLoader.preferFolder(name);
|
||||
}
|
||||
}
|
@ -82,6 +82,7 @@ public class ProjectManager
|
||||
|
||||
public void open(MortarSender sender, String dimm, Runnable onDone)
|
||||
{
|
||||
Iris.globaldata.dump();
|
||||
IrisDimension d = Iris.globaldata.getDimensionLoader().load(dimm);
|
||||
J.attemptAsync(() ->
|
||||
{
|
||||
@ -118,6 +119,7 @@ public class ProjectManager
|
||||
close();
|
||||
}
|
||||
|
||||
Iris.globaldata.dump();
|
||||
sender.sendMessage("Loading " + dimm + "...");
|
||||
IrisChunkGenerator gx = new IrisChunkGenerator(dimm, IrisSettings.get().threads);
|
||||
currentProject = gx;
|
||||
@ -148,6 +150,12 @@ public class ProjectManager
|
||||
|
||||
sender.sendMessage("Generating " + Form.pc(v) + (derp ? " (Waiting on Server...)" : ""));
|
||||
J.sleep(3000);
|
||||
|
||||
if(gx.isFailing())
|
||||
{
|
||||
sender.sendMessage("Generation Failed!");
|
||||
return;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@ -181,17 +189,14 @@ public class ProjectManager
|
||||
File folder = currentProject.getWorld().getWorldFolder();
|
||||
Bukkit.unloadWorld(currentProject.getWorld(), false);
|
||||
currentProject = null;
|
||||
Iris.globaldata.getObjectLoader().clearCache();
|
||||
Iris.globaldata.getBiomeLoader().clearCache();
|
||||
Iris.globaldata.getRegionLoader().clearCache();
|
||||
Iris.globaldata.getGeneratorLoader().clearCache();
|
||||
Iris.globaldata.getDimensionLoader().clearCache();
|
||||
Iris.globaldata.dump();
|
||||
J.attemptAsync(() -> IO.delete(folder));
|
||||
}
|
||||
}
|
||||
|
||||
public File compilePackage(MortarSender sender, String dim, boolean obfuscate)
|
||||
{
|
||||
Iris.globaldata.dump();
|
||||
String dimm = dim;
|
||||
IrisDimension dimension = Iris.globaldata.getDimensionLoader().load(dimm);
|
||||
File folder = new File(Iris.instance.getDataFolder(), "exports/" + dimension.getLoadKey());
|
||||
|
@ -116,7 +116,7 @@ public abstract class ContextualChunkGenerator extends ChunkGenerator implements
|
||||
|
||||
public IrisDimension loadDimension(String i)
|
||||
{
|
||||
return getData().getDimensionLoader().load(i);
|
||||
return (getData() == null ? Iris.globaldata : getData()).getDimensionLoader().load(i);
|
||||
}
|
||||
|
||||
public IrisGenerator loadGenerator(String i)
|
||||
|
@ -70,6 +70,8 @@ public abstract class DimensionChunkGenerator extends ContextualChunkGenerator
|
||||
dimensionName = "error-missing-dimension";
|
||||
fail(new RuntimeException("Missing dimension folder/file in " + folder.getAbsolutePath()));
|
||||
}
|
||||
|
||||
getData().preferFolder(getDimension().getLoadFile().getParentFile().getParentFile().getName());
|
||||
}
|
||||
|
||||
public IrisDimension getDimension()
|
||||
|
@ -174,6 +174,7 @@ public class IrisChunkGenerator extends CeilingChunkGenerator implements IrisCon
|
||||
public void onHotloaded()
|
||||
{
|
||||
CNG.creates = 0;
|
||||
getData().dump();
|
||||
onHotload();
|
||||
}
|
||||
|
||||
@ -220,6 +221,11 @@ public class IrisChunkGenerator extends CeilingChunkGenerator implements IrisCon
|
||||
@Override
|
||||
public boolean shouldGenerateStructures()
|
||||
{
|
||||
if(!isInitialized())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return getDimension().isVanillaStructures();
|
||||
}
|
||||
}
|
||||
|
@ -70,7 +70,7 @@ public class IrisGenerator extends IrisRegistrant
|
||||
private InterpolationMethod interpolationFunction = InterpolationMethod.BICUBIC;
|
||||
|
||||
@Required
|
||||
@MinNumber(0)
|
||||
@MinNumber(1)
|
||||
@MaxNumber(8192)
|
||||
@DontObfuscate
|
||||
@Desc("The interpolation distance scale (blocks) when two biomes use different heights but this same generator")
|
||||
|
@ -166,7 +166,7 @@ public class IrisObject extends IrisRegistrant
|
||||
{
|
||||
BlockVector i = g.clone();
|
||||
i = config.getRotation().rotate(i.clone(), spinx, spiny, spinz).clone();
|
||||
i = config.getTranslate().translate(i.clone()).clone();
|
||||
i = config.getTranslate().translate(i.clone(), config.getRotation(), spinx, spiny, spinz).clone();
|
||||
BlockData data = blocks.get(g).clone();
|
||||
|
||||
if(placer.isPreventingDecay() && data instanceof Leaves && !((Leaves) data).isPersistent())
|
||||
|
@ -54,4 +54,14 @@ public class IrisObjectTranslate
|
||||
|
||||
return i;
|
||||
}
|
||||
|
||||
public BlockVector translate(BlockVector clone, IrisObjectRotation rotation, int sx, int sy, int sz)
|
||||
{
|
||||
if(canTranslate())
|
||||
{
|
||||
return (BlockVector) clone.clone().add(rotation.rotate(new BlockVector(x, y, z), sx, sy, sz));
|
||||
}
|
||||
|
||||
return clone;
|
||||
}
|
||||
}
|
||||
|
@ -115,14 +115,14 @@ public class PregenJob
|
||||
rcz = 0;
|
||||
mcaX++;
|
||||
|
||||
if(mcaX > mca(max() / 16))
|
||||
if(mcaX > mca(Math.floorDiv(max(), 16)))
|
||||
{
|
||||
mcaX = mca(min() / 16);
|
||||
mcaX = mca(Math.floorDiv(min(), 16));
|
||||
mcaZ++;
|
||||
|
||||
if(mcaZ > mca(max() / 16))
|
||||
if(mcaZ > mca(Math.floorDiv(max(), 16)))
|
||||
{
|
||||
mcaZ = mca(min() / 16);
|
||||
mcaZ = mca(Math.floorDiv(min(), 16));
|
||||
completed = true;
|
||||
stop();
|
||||
Iris.info("Pregen Completed!");
|
||||
@ -136,13 +136,9 @@ public class PregenJob
|
||||
i.unload(true);
|
||||
}
|
||||
|
||||
world.save();
|
||||
|
||||
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "save-all");
|
||||
onDone.run();
|
||||
return;
|
||||
}
|
||||
|
||||
world.save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ public class ResourceLoader<T extends IrisRegistrant>
|
||||
protected Class<? extends T> objectClass;
|
||||
protected String cname;
|
||||
protected IrisLock lock;
|
||||
protected String preferredFolder = null;
|
||||
|
||||
public ResourceLoader(File root, String folderName, String resourceTypeName, Class<? extends T> objectClass)
|
||||
{
|
||||
@ -115,6 +116,18 @@ public class ResourceLoader<T extends IrisRegistrant>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(preferredFolder != null)
|
||||
{
|
||||
for(File i : folderCache.copy())
|
||||
{
|
||||
if(i.getParentFile().getName().equals(preferredFolder))
|
||||
{
|
||||
folderCache.remove(i);
|
||||
folderCache.add(0, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return folderCache;
|
||||
@ -171,4 +184,9 @@ public class ResourceLoader<T extends IrisRegistrant>
|
||||
{
|
||||
return loadCache.containsKey(next);
|
||||
}
|
||||
|
||||
public void preferFolder(String name)
|
||||
{
|
||||
preferredFolder = name;
|
||||
}
|
||||
}
|
||||
|
@ -4,5 +4,6 @@ main: com.volmit.iris.Iris
|
||||
load: STARTUP
|
||||
commands:
|
||||
iris:
|
||||
api-version: 1.15
|
||||
aliases: [ir, irs]
|
||||
api-version: 1.16
|
||||
hotload-dependencies: false
|
Loading…
x
Reference in New Issue
Block a user