SPIGOT-945 - random light ticking not called whenoptimal chunks is zero.
This commit is contained in:
parent
d6fa7c2b99
commit
619f854054
1 changed files with 7 additions and 8 deletions
|
@ -1,4 +1,4 @@
|
||||||
From 433014e997da1ba1f03bfa2cfda97558e18ace8d Mon Sep 17 00:00:00 2001
|
From fc11bf525b271e692201fea7e805e53f3ad5900f Mon Sep 17 00:00:00 2001
|
||||||
From: md_5 <md_5@live.com.au>
|
From: md_5 <md_5@live.com.au>
|
||||||
Date: Tue, 11 Jun 2013 12:56:02 +1000
|
Date: Tue, 11 Jun 2013 12:56:02 +1000
|
||||||
Subject: [PATCH] Better Chunk Tick Selection
|
Subject: [PATCH] Better Chunk Tick Selection
|
||||||
|
@ -6,7 +6,7 @@ Subject: [PATCH] Better Chunk Tick Selection
|
||||||
An optimized chunk ticking algorithm which better selects chunks around players which are active on the server.
|
An optimized chunk ticking algorithm which better selects chunks around players which are active on the server.
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
||||||
index 0356d9e..c81f673 100644
|
index 0356d9e..11e072b 100644
|
||||||
--- a/src/main/java/net/minecraft/server/World.java
|
--- a/src/main/java/net/minecraft/server/World.java
|
||||||
+++ b/src/main/java/net/minecraft/server/World.java
|
+++ b/src/main/java/net/minecraft/server/World.java
|
||||||
@@ -68,7 +68,7 @@ public abstract class World implements IBlockAccess {
|
@@ -68,7 +68,7 @@ public abstract class World implements IBlockAccess {
|
||||||
|
@ -63,17 +63,14 @@ index 0356d9e..c81f673 100644
|
||||||
this.L = this.random.nextInt(12000);
|
this.L = this.random.nextInt(12000);
|
||||||
this.allowMonsters = true;
|
this.allowMonsters = true;
|
||||||
this.allowAnimals = true;
|
this.allowAnimals = true;
|
||||||
@@ -1964,17 +1995,44 @@ public abstract class World implements IBlockAccess {
|
@@ -1964,18 +1995,43 @@ public abstract class World implements IBlockAccess {
|
||||||
int k;
|
int k;
|
||||||
int l;
|
int l;
|
||||||
|
|
||||||
+ // Spigot start
|
+ // Spigot start
|
||||||
+ int optimalChunks = spigotConfig.chunksPerTick;
|
+ int optimalChunks = spigotConfig.chunksPerTick;
|
||||||
+ // Quick conditions to allow us to exist early
|
+ // Quick conditions to allow us to exist early
|
||||||
+ if ( optimalChunks <= 0 || players.isEmpty() )
|
+ if ( optimalChunks > 0 ) {
|
||||||
+ {
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ // Keep chunks with growth inside of the optimal chunk range
|
+ // Keep chunks with growth inside of the optimal chunk range
|
||||||
+ int chunksPerPlayer = Math.min( 200, Math.max( 1, (int) ( ( ( optimalChunks - players.size() ) / (double) players.size() ) + 0.5 ) ) );
|
+ int chunksPerPlayer = Math.min( 200, Math.max( 1, (int) ( ( ( optimalChunks - players.size() ) / (double) players.size() ) + 0.5 ) ) );
|
||||||
+ int randRange = 3 + chunksPerPlayer / 30;
|
+ int randRange = 3 + chunksPerPlayer / 30;
|
||||||
|
@ -107,10 +104,12 @@ index 0356d9e..c81f673 100644
|
||||||
+ chunkTickList.put( hash, (short) -1 ); // no players
|
+ chunkTickList.put( hash, (short) -1 ); // no players
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+ // Spigot End
|
|
||||||
}
|
}
|
||||||
|
+ // Spigot End
|
||||||
|
+ }
|
||||||
|
|
||||||
this.methodProfiler.b();
|
this.methodProfiler.b();
|
||||||
|
if (this.L > 0) {
|
||||||
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
||||||
index 5faefba..03cac6e 100644
|
index 5faefba..03cac6e 100644
|
||||||
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
||||||
|
|
Loading…
Reference in a new issue