ChunkPosition -> Position2

This commit is contained in:
Daniel Mills
2021-07-19 02:00:07 -04:00
parent 7ecb139dba
commit b25bf70224
8 changed files with 37 additions and 38 deletions

View File

@@ -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);
});
}