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