Archived
0

небольшие оптимизации в загрузке/выгрузке чанков

This commit is contained in:
2019-01-27 19:43:29 +03:00
parent 3f0c2a782e
commit cebc19fd3f

View File

@@ -5,6 +5,7 @@ import mc.core.eventbus.Subscriber;
import mc.core.eventbus.events.SC_ChunkLoadEvent;
import mc.core.eventbus.events.SC_ChunkUnloadEvent;
import mc.core.eventbus.events.SC_PlayerMoveEvent;
import mc.core.network.NetChannel;
import mc.core.network.proto_1_12_2.TeleportManager;
import mc.core.network.proto_1_12_2.packets.ChunkDataPacket;
import mc.core.network.proto_1_12_2.packets.PlayerPositionAndLookPacket;
@@ -27,6 +28,10 @@ public class PlayerEventListener {
@Subscriber
public void playerChunkLoadHandler(SC_ChunkLoadEvent event) {
if (event.getNeedLoadChunks().size() == 0) return;
final NetChannel channel = event.getPlayer().getChannel();
for(Integer compressXZ : event.getNeedLoadChunks()) {
int[] xz = CompactedCoords.uncompressXZ(compressXZ);
Chunk chunk = event.getPlayer().getWorld().getChunk(xz[0], xz[1]);
@@ -38,12 +43,18 @@ public class PlayerEventListener {
packet.setInitChunk(true);
packet.setChunk(chunk);
event.getPlayer().getChannel().writeAndFlush(packet);
channel.write(packet);
}
channel.flush();
}
@Subscriber
public void playerChunkUnloadHandler(SC_ChunkUnloadEvent event) {
if (event.getNeedUnloadChunks().size() == 0) return;
final NetChannel channel = event.getPlayer().getChannel();
for(Integer compressXZ : event.getNeedUnloadChunks()) {
int[] xz = CompactedCoords.uncompressXZ(compressXZ);
@@ -51,7 +62,9 @@ public class PlayerEventListener {
packet.setX(xz[0]);
packet.setZ(xz[1]);
event.getPlayer().getChannel().writeAndFlush(packet);
channel.write(packet);
}
channel.flush();
}
}