9
0
mirror of https://github.com/VolmitSoftware/Iris.git synced 2025-12-26 18:49:06 +00:00

Fix mantle

This commit is contained in:
cyberpwn
2021-08-21 00:29:01 -04:00
parent 3eb4962d7d
commit 59399124fa

View File

@@ -80,7 +80,7 @@ public class Mantle {
unload = new KSet<>();
loadedRegions = new KMap<>();
lastUse = new KMap<>();
ioBurst = MultiBurst.burst;
ioBurst = new MultiBurst("Iris Mantle[" + dataFolder.hashCode() + "]", Thread.MIN_PRIORITY, Runtime.getRuntime().availableProcessors() / 2);
Iris.debug("Opened The Mantle " + C.DARK_AQUA + dataFolder.getAbsolutePath());
}
@@ -126,19 +126,6 @@ public class Mantle {
get(x >> 5, z >> 5).getOrCreate(x & 31, z & 31).flag(flag, flagged);
}
/**
* Check very quickly if a tectonic plate exists via cached or the file system
* @param x the x region coordinate
* @param z the z region coordinate
* @return true if it exists
*/
@RegionCoordinates
public boolean hasTectonicPlate(int x, int z)
{
Long k = key(x, z);
return loadedRegions.containsKey(k) || fileForRegion(dataFolder, k).exists();
}
/**
* Iterate data in a chunk
* @param x the chunk x
@@ -150,11 +137,6 @@ public class Mantle {
*/
@ChunkCoordinates
public <T> void iterateChunk(int x, int z, Class<T> type, Consumer4<Integer, Integer, Integer, T> iterator, MantleFlag... requiredFlags) {
if(!hasTectonicPlate(x >> 5, z >> 5))
{
return;
}
for (MantleFlag i : requiredFlags) {
if (!hasFlag(x, z, i)) {
return;
@@ -173,11 +155,6 @@ public class Mantle {
*/
@ChunkCoordinates
public boolean hasFlag(int x, int z, MantleFlag flag) {
if(!hasTectonicPlate(x >> 5, z >> 5))
{
return false;
}
return get(x >> 5, z >> 5).getOrCreate(x & 31, z & 31).isFlagged(flag);
}
@@ -234,12 +211,7 @@ public class Mantle {
throw new RuntimeException("The Mantle is closed");
}
if(!hasTectonicPlate(x >> 5, z >> 5))
{
return null;
}
if (y < 0 || y >= worldHeight) {
if (y < 0) {
return null;
}
@@ -291,6 +263,7 @@ public class Mantle {
Iris.reportError(e);
}
ioBurst.shutdownNow();
Iris.debug("The Mantle has Closed " + C.DARK_AQUA + dataFolder.getAbsolutePath());
}