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.
40 lines
2.1 KiB
Diff
40 lines
2.1 KiB
Diff
From 58ac13abf1d84ad3e446556592682eb8f077ee4a Mon Sep 17 00:00:00 2001
|
|
From: Zach Brown <zach.brown@destroystokyo.com>
|
|
Date: Wed, 2 Mar 2016 23:45:17 -0600
|
|
Subject: [PATCH] Disable spigot tick limiters
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
|
index c8c2601..b7f45b6 100644
|
|
--- a/src/main/java/net/minecraft/server/World.java
|
|
+++ b/src/main/java/net/minecraft/server/World.java
|
|
@@ -1418,10 +1418,10 @@ public abstract class World implements IBlockAccess {
|
|
// CraftBukkit start - Use field for loop variable
|
|
co.aikar.timings.TimingHistory.entityTicks += this.entityList.size(); // Paper
|
|
int entitiesThisCycle = 0;
|
|
- if (tickPosition < 0) tickPosition = 0;
|
|
- for (entityLimiter.initTick();
|
|
- entitiesThisCycle < entityList.size() && (entitiesThisCycle % 10 != 0 || entityLimiter.shouldContinue());
|
|
- tickPosition++, entitiesThisCycle++) {
|
|
+ // Paper start - Disable tick limiters
|
|
+ //if (tickPosition < 0) tickPosition = 0;
|
|
+ for (tickPosition = 0; tickPosition < entityList.size(); tickPosition++) {
|
|
+ // Paper end
|
|
tickPosition = (tickPosition < entityList.size()) ? tickPosition : 0;
|
|
entity = (Entity) this.entityList.get(this.tickPosition);
|
|
// CraftBukkit end
|
|
@@ -1486,9 +1486,7 @@ public abstract class World implements IBlockAccess {
|
|
// Spigot start
|
|
// Iterator iterator = this.tileEntityListTick.iterator();
|
|
int tilesThisCycle = 0;
|
|
- for (tileLimiter.initTick();
|
|
- tilesThisCycle < tileEntityListTick.size() && (tilesThisCycle % 10 != 0 || tileLimiter.shouldContinue());
|
|
- tileTickPosition++, tilesThisCycle++) {
|
|
+ for (tileTickPosition = 0; tileTickPosition < tileEntityListTick.size(); tileTickPosition++) { // Paper - Disable tick limiters
|
|
tileTickPosition = (tileTickPosition < tileEntityListTick.size()) ? tileTickPosition : 0;
|
|
TileEntity tileentity = (TileEntity) this.tileEntityListTick.get(tileTickPosition);
|
|
// Spigot start
|
|
--
|
|
2.8.2
|
|
|