3
0
Mirror von https://github.com/PaperMC/Paper.git synchronisiert 2024-12-18 04:20:08 +01:00

Fix regenerating chunks not updating visually

Dieser Commit ist enthalten in:
Thinkofdeath 2016-03-06 23:49:28 +00:00
Ursprung a06e5cf8e8
Commit 0cd6711085
2 geänderte Dateien mit 24 neuen und 3 gelöschten Zeilen

Datei anzeigen

@ -1,6 +1,6 @@
--- a/net/minecraft/server/PlayerChunk.java
+++ b/net/minecraft/server/PlayerChunk.java
@@ -4,16 +4,18 @@
@@ -4,35 +4,48 @@
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import java.util.ArrayList;
@ -19,8 +19,10 @@
+ public final List<EntityPlayer> c = Lists.newArrayList(); // CraftBukkit - public
private final ChunkCoordIntPair location;
private final short[] dirtyBlocks = new short[64];
private Chunk chunk;
@@ -22,17 +24,28 @@
- private Chunk chunk;
+ public Chunk chunk; // CraftBukkit - public
private int dirtyCount;
private int h;
private long i;
private boolean done;

Datei anzeigen

@ -195,6 +195,21 @@ public class CraftWorld implements World {
world.getChunkProviderServer().unloadQueue.remove(x, z);
world.getChunkProviderServer().chunks.remove(LongHash.toLong(x, z));
// Update neighbor counts
for (int xx = -2; xx < 3; xx++) {
for (int zz = -2; zz < 3; zz++) {
if (xx == 0 && zz == 0) {
continue;
}
net.minecraft.server.Chunk neighbor = world.getChunkProviderServer().getChunkIfLoaded(chunk.locX + x, chunk.locZ + z);
if (neighbor != null) {
neighbor.setNeighborUnloaded(-xx, -zz);
chunk.setNeighborUnloaded(xx, zz);
}
}
}
return true;
}
@ -206,6 +221,10 @@ public class CraftWorld implements World {
net.minecraft.server.Chunk chunk = null;
chunk = world.getChunkProviderServer().chunkGenerator.getOrCreateChunk(x, z);
PlayerChunk playerChunk = world.getPlayerChunkMap().b/*PAIL: Rename*/(x, z);
if (playerChunk != null) {
playerChunk.chunk = chunk;
}
chunkLoadPostProcess(chunk, x, z);