e56bbcdcda
may help #284 Cleans up the lighting queue system, reducing diff and improving implementation. We no longer stop chunk unloads due to lighting updates, and instead simply flush the lighting queue. The cost of forcing the chunk (and its neighbors!) to stay loaded waiting for its lighting work to finish is much greater than simply taking the hit and doing the work. This change also helps reduce the diff and avoid bugs with missed diffs by removing duplicated logic. Also switches to a more effecient data structure (ArrayDeque instead of LinkedList) for the queue itself.
21 lines
845 B
Diff
21 lines
845 B
Diff
From 0ca2c45f3293c21521e8ff3a5048cca7b53edf58 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Sun, 3 Apr 2016 17:48:50 -0400
|
|
Subject: [PATCH] Fix Cancelling BlockPlaceEvent triggering physics
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
|
index 7bfb735..75b95b4 100644
|
|
--- a/src/main/java/net/minecraft/server/World.java
|
|
+++ b/src/main/java/net/minecraft/server/World.java
|
|
@@ -516,6 +516,7 @@ public abstract class World implements IBlockAccess {
|
|
}
|
|
|
|
public void applyPhysics(BlockPosition blockposition, Block block) {
|
|
+ if (captureBlockStates) { return; } // Paper - Cancel all physics during placement
|
|
this.e(blockposition.west(), block);
|
|
this.e(blockposition.east(), block);
|
|
this.e(blockposition.down(), block);
|
|
--
|
|
2.8.2
|
|
|