mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-27 13:06:02 +01:00
Fix mob spawn patch
This commit is contained in:
parent
744cbbd49f
commit
ed6ba2a745
@ -1,4 +1,4 @@
|
|||||||
From a49d752defabb9144a40695fc275e1dad271ef11 Mon Sep 17 00:00:00 2001
|
From dd6315c676cba1aeb9765878d21b07ce45bf2645 Mon Sep 17 00:00:00 2001
|
||||||
From: md_5 <md_5@live.com.au>
|
From: md_5 <md_5@live.com.au>
|
||||||
Date: Fri, 21 Jun 2013 17:29:54 +1000
|
Date: Fri, 21 Jun 2013 17:29:54 +1000
|
||||||
Subject: [PATCH] Fix Mob Spawning Relative to View Distance
|
Subject: [PATCH] Fix Mob Spawning Relative to View Distance
|
||||||
@ -49,7 +49,7 @@ index 61e56ab..04cb6fb 100644
|
|||||||
|
|
||||||
public boolean d(int i, int j, int k) {
|
public boolean d(int i, int j, int k) {
|
||||||
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
|
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
|
||||||
index aa7698b..3a0d2ef 100644
|
index aa7698b..02ca87f 100644
|
||||||
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
|
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
|
||||||
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
|
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
|
||||||
@@ -27,6 +27,23 @@ public final class SpawnerCreature {
|
@@ -27,6 +27,23 @@ public final class SpawnerCreature {
|
||||||
@ -57,10 +57,10 @@ index aa7698b..3a0d2ef 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
+ // Spigot start - get entity count only from chunks being processed in b
|
+ // Spigot start - get entity count only from chunks being processed in b
|
||||||
+ private static int getEntityCount(WorldServer server, Class oClass)
|
+ private int getEntityCount(WorldServer server, Class oClass)
|
||||||
+ {
|
+ {
|
||||||
+ int i = 0;
|
+ int i = 0;
|
||||||
+ for ( Long coord : b.keySet() )
|
+ for ( Long coord : this.a.keySet() )
|
||||||
+ {
|
+ {
|
||||||
+ int x = LongHash.msw( coord );
|
+ int x = LongHash.msw( coord );
|
||||||
+ int z = LongHash.lsw( coord );
|
+ int z = LongHash.lsw( coord );
|
||||||
@ -99,7 +99,7 @@ index aa7698b..3a0d2ef 100644
|
|||||||
+ if ((!enumcreaturetype.d() || flag1) && (enumcreaturetype.d() || flag) && (!enumcreaturetype.e() || flag2) && (mobcnt = getEntityCount(worldserver, enumcreaturetype.a())) <= limit * this.a.size() / 256) { // Spigot - use per-world limits and use all loaded chunks
|
+ if ((!enumcreaturetype.d() || flag1) && (enumcreaturetype.d() || flag) && (!enumcreaturetype.e() || flag2) && (mobcnt = getEntityCount(worldserver, enumcreaturetype.a())) <= limit * this.a.size() / 256) { // Spigot - use per-world limits and use all loaded chunks
|
||||||
Iterator iterator = this.a.keySet().iterator();
|
Iterator iterator = this.a.keySet().iterator();
|
||||||
|
|
||||||
+ int moblimit = (limit * b.size() / 256) - mobcnt + 1; // Spigot - up to 1 more than limit
|
+ int moblimit = (limit * this.a.size() / 256) - mobcnt + 1; // Spigot - up to 1 more than limit
|
||||||
label110:
|
label110:
|
||||||
- while (iterator.hasNext()) {
|
- while (iterator.hasNext()) {
|
||||||
+ while (iterator.hasNext() && (moblimit > 0)) { // Spigot - while more allowed
|
+ while (iterator.hasNext() && (moblimit > 0)) { // Spigot - while more allowed
|
||||||
|
Loading…
Reference in New Issue
Block a user