diff --git a/src/main/java/net/minecraft/world/chunk/Chunk.java b/src/main/java/net/minecraft/world/chunk/Chunk.java index 19e200e..ab87dac 100644 --- a/src/main/java/net/minecraft/world/chunk/Chunk.java +++ b/src/main/java/net/minecraft/world/chunk/Chunk.java @@ -956,7 +956,6 @@ convertTileEntityMap(); loadTime = unbindTime = MinecraftServer.getServer().getTickCounter(); - lastsavePendingCount = pendingUpdatesSet == null ? 0 : pendingUpdatesSet.size(); } public void onChunkUnload() @@ -1553,8 +1552,7 @@ private int loadTime; private int unbindTime; private boolean wasActive; - private int lastsavePendingCount; - + private short entityLivingCount; private short entityMonsterCount; private short entityAnimalCount; @@ -1590,7 +1588,8 @@ pendingUpdatesSet = null; pendingUpdatesQueue = null; } - + + isModified = true; return p; } @@ -1609,6 +1608,7 @@ { pendingUpdatesSet.add(p); pendingUpdatesQueue.add(p); + isModified = true; } } @@ -1616,6 +1616,11 @@ { return pendingUpdatesQueue; } + + public int getPendingUpdatesCount() + { + return pendingUpdatesSet == null ? 0 : pendingUpdatesSet.size(); + } public ChunkBindState getBindState() { @@ -1696,17 +1701,16 @@ public void postSave() { wasActive = false; - lastsavePendingCount = pendingUpdatesSet == null ? 0 : pendingUpdatesSet.size(); } public boolean shouldSaveOnUnload() { - return isModified || pendingUpdatesSet != null && lastsavePendingCount != pendingUpdatesSet.size() || wasActive && hasEntities; + return isModified || wasActive && hasEntities; } private void onEntityAdd(Entity e) { - wasActive = true; //Handling case where added entity to inactive chunk (wasActive && hasEntities) condition should be true + isModified = true; if(e.isEntityLiving() && !e.isEntityPlayerMP()) entityLivingCount++; @@ -1724,6 +1728,7 @@ private void onEntityRemove(Entity e) { + isModified = true; if(e.isEntityLiving() && !e.isEntityPlayerMP()) entityLivingCount--; diff --git a/src/main/java/net/minecraft/world/chunk/storage/AnvilChunkLoader.java b/src/main/java/net/minecraft/world/chunk/storage/AnvilChunkLoader.java index 5cb698b..50c6bc9 100644 --- a/src/main/java/net/minecraft/world/chunk/storage/AnvilChunkLoader.java +++ b/src/main/java/net/minecraft/world/chunk/storage/AnvilChunkLoader.java @@ -546,6 +546,8 @@ } } } + + chunk.isModified = false; } public int getSaveQueueSize()