mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-04-06 07:46:08 +00:00
ChunkPosition -> Position2
This commit is contained in:
@@ -29,12 +29,11 @@ import com.volmit.iris.util.collection.KMap;
|
||||
import com.volmit.iris.util.collection.KSet;
|
||||
import com.volmit.iris.util.function.Function2;
|
||||
import com.volmit.iris.util.function.Function3;
|
||||
import com.volmit.iris.util.math.ChunkPosition;
|
||||
import com.volmit.iris.util.math.Position2;
|
||||
import com.volmit.iris.util.math.M;
|
||||
import com.volmit.iris.util.oldnbt.ByteArrayTag;
|
||||
import com.volmit.iris.util.oldnbt.CompoundTag;
|
||||
import com.volmit.iris.util.oldnbt.Tag;
|
||||
import io.papermc.lib.PaperLib;
|
||||
import org.bukkit.block.TileState;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
||||
@@ -51,9 +50,9 @@ public class HunkRegionSlice<T> {
|
||||
private final HunkIOAdapter<T> adapter;
|
||||
private final CompoundTag compound;
|
||||
private final String key;
|
||||
private final KMap<ChunkPosition, Hunk<T>> loadedChunks;
|
||||
private final KMap<ChunkPosition, Long> lastUse;
|
||||
private final KSet<ChunkPosition> save;
|
||||
private final KMap<Position2, Hunk<T>> loadedChunks;
|
||||
private final KMap<Position2, Long> lastUse;
|
||||
private final KSet<Position2> save;
|
||||
private final int height;
|
||||
|
||||
public HunkRegionSlice(int height, Function3<Integer, Integer, Integer, Hunk<T>> factory, HunkIOAdapter<T> adapter, CompoundTag compound, String key) {
|
||||
@@ -73,14 +72,14 @@ public class HunkRegionSlice<T> {
|
||||
if (loadedChunks.size() != lastUse.size()) {
|
||||
Iris.warn("Incorrect chunk use counts in " + key);
|
||||
|
||||
for (ChunkPosition i : lastUse.k()) {
|
||||
for (Position2 i : lastUse.k()) {
|
||||
if (!loadedChunks.containsKey(i)) {
|
||||
Iris.warn(" Missing LoadChunkKey " + i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (ChunkPosition i : lastUse.k()) {
|
||||
for (Position2 i : lastUse.k()) {
|
||||
Long l = lastUse.get(i);
|
||||
if (l == null || M.ms() - l > t) {
|
||||
v++;
|
||||
@@ -104,7 +103,7 @@ public class HunkRegionSlice<T> {
|
||||
|
||||
try
|
||||
{
|
||||
for (ChunkPosition i : save.copy()) {
|
||||
for (Position2 i : save.copy()) {
|
||||
if (i == null) {
|
||||
continue;
|
||||
}
|
||||
@@ -172,7 +171,7 @@ public class HunkRegionSlice<T> {
|
||||
|
||||
public synchronized int unloadAll() {
|
||||
int v = 0;
|
||||
for (ChunkPosition i : loadedChunks.k()) {
|
||||
for (Position2 i : loadedChunks.k()) {
|
||||
unload(i.getX(), i.getZ());
|
||||
v++;
|
||||
}
|
||||
@@ -193,7 +192,7 @@ public class HunkRegionSlice<T> {
|
||||
}
|
||||
|
||||
public boolean isLoaded(int x, int z) {
|
||||
return lock.withResult(x, z, () -> loadedChunks.containsKey(new ChunkPosition(x, z)));
|
||||
return lock.withResult(x, z, () -> loadedChunks.containsKey(new Position2(x, z)));
|
||||
}
|
||||
|
||||
public void save(int x, int z) {
|
||||
@@ -206,7 +205,7 @@ public class HunkRegionSlice<T> {
|
||||
|
||||
public void unload(int x, int z) {
|
||||
lock.with(x, z, () -> {
|
||||
ChunkPosition key = new ChunkPosition(x, z);
|
||||
Position2 key = new Position2(x, z);
|
||||
if (isLoaded(x, z)) {
|
||||
if (save.contains(key)) {
|
||||
save(x, z);
|
||||
@@ -222,7 +221,7 @@ public class HunkRegionSlice<T> {
|
||||
public Hunk<T> load(int x, int z) {
|
||||
return lock.withResult(x, z, () -> {
|
||||
if (isLoaded(x, z)) {
|
||||
return loadedChunks.get(new ChunkPosition(x, z));
|
||||
return loadedChunks.get(new Position2(x, z));
|
||||
}
|
||||
|
||||
Hunk<T> v = null;
|
||||
@@ -240,7 +239,7 @@ public class HunkRegionSlice<T> {
|
||||
v = factory.apply(16, height, 16);
|
||||
}
|
||||
|
||||
loadedChunks.put(new ChunkPosition(x, z), v);
|
||||
loadedChunks.put(new Position2(x, z), v);
|
||||
|
||||
return v;
|
||||
});
|
||||
@@ -248,7 +247,7 @@ public class HunkRegionSlice<T> {
|
||||
|
||||
public Hunk<T> get(int x, int z) {
|
||||
return lock.withResult(x, z, () -> {
|
||||
ChunkPosition key = new ChunkPosition(x, z);
|
||||
Position2 key = new Position2(x, z);
|
||||
|
||||
Hunk<T> c = loadedChunks.get(key);
|
||||
|
||||
@@ -256,7 +255,7 @@ public class HunkRegionSlice<T> {
|
||||
c = load(x, z);
|
||||
}
|
||||
|
||||
lastUse.put(new ChunkPosition(x, z), M.ms());
|
||||
lastUse.put(new Position2(x, z), M.ms());
|
||||
|
||||
return c;
|
||||
});
|
||||
@@ -268,7 +267,7 @@ public class HunkRegionSlice<T> {
|
||||
|
||||
public Hunk<T> getRW(int x, int z) {
|
||||
return lock.withResult(x, z, () -> {
|
||||
save.add(new ChunkPosition(x, z));
|
||||
save.add(new Position2(x, z));
|
||||
return get(x, z);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user