изменен порядок загрузки/выгрузки чанков
This commit is contained in:
@@ -40,21 +40,6 @@ public class CoreEventListener {
|
|||||||
int cMinZ = chunk.getZ() - viewDistance;
|
int cMinZ = chunk.getZ() - viewDistance;
|
||||||
int cMaxZ = chunk.getZ() + viewDistance;
|
int cMaxZ = chunk.getZ() + viewDistance;
|
||||||
|
|
||||||
SC_ChunkUnloadEvent eventChunkUnload = new SC_ChunkUnloadEvent(event.getPlayer());
|
|
||||||
Iterator<Integer> itr = event.getPlayer().getLoadedChunks().iterator();
|
|
||||||
while(itr.hasNext()) {
|
|
||||||
int compressXZ = itr.next();
|
|
||||||
int[] xz = CompactedCoords.uncompressXZ(compressXZ);
|
|
||||||
if (xz[0] > cMaxX || xz[0] < cMinX || xz[1] > cMaxZ || xz[1] < cMinZ) {
|
|
||||||
eventChunkUnload.getNeedUnloadChunks().add(compressXZ);
|
|
||||||
itr.remove();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!eventChunkUnload.getNeedUnloadChunks().isEmpty()) {
|
|
||||||
EventBusGetter.getInstance().post(eventChunkUnload);
|
|
||||||
}
|
|
||||||
|
|
||||||
SC_ChunkLoadEvent eventChunkLoad = new SC_ChunkLoadEvent(event.getPlayer());
|
SC_ChunkLoadEvent eventChunkLoad = new SC_ChunkLoadEvent(event.getPlayer());
|
||||||
for (int cZ = cMinZ; cZ <= cMaxZ; cZ++) {
|
for (int cZ = cMinZ; cZ <= cMaxZ; cZ++) {
|
||||||
for (int cX = cMinX; cX <= cMaxX; cX++) {
|
for (int cX = cMinX; cX <= cMaxX; cX++) {
|
||||||
@@ -71,6 +56,21 @@ public class CoreEventListener {
|
|||||||
if (!eventChunkLoad.getNeedLoadChunks().isEmpty()) {
|
if (!eventChunkLoad.getNeedLoadChunks().isEmpty()) {
|
||||||
EventBusGetter.getInstance().post(eventChunkLoad);
|
EventBusGetter.getInstance().post(eventChunkLoad);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SC_ChunkUnloadEvent eventChunkUnload = new SC_ChunkUnloadEvent(event.getPlayer());
|
||||||
|
Iterator<Integer> itr = event.getPlayer().getLoadedChunks().iterator();
|
||||||
|
while(itr.hasNext()) {
|
||||||
|
int compressXZ = itr.next();
|
||||||
|
int[] xz = CompactedCoords.uncompressXZ(compressXZ);
|
||||||
|
if (xz[0] > cMaxX || xz[0] < cMinX || xz[1] > cMaxZ || xz[1] < cMinZ) {
|
||||||
|
eventChunkUnload.getNeedUnloadChunks().add(compressXZ);
|
||||||
|
itr.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!eventChunkUnload.getNeedUnloadChunks().isEmpty()) {
|
||||||
|
EventBusGetter.getInstance().post(eventChunkUnload);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
event.getPlayer().getLocation().setXYZ(
|
event.getPlayer().getLocation().setXYZ(
|
||||||
|
|||||||
Reference in New Issue
Block a user