spigot/CraftBukkit-Patches/0010-Fix-Mob-Spawning-Relative-to-View-Distance.patch
2018-07-22 12:00:00 +10:00

52 lines
2.3 KiB
Diff

From 57f02a5f69eb4b3257901cf2b67e1bbcefc3dea6 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Fri, 21 Jun 2013 17:29:54 +1000
Subject: [PATCH] Fix Mob Spawning Relative to View Distance
Changes the mob spawning algorithm to properly account for view distance and the range around players.
Needs better documentation.
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
index da3229cec..e54dcaa99 100644
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
@@ -42,10 +42,15 @@ public final class SpawnerCreature {
j = MathHelper.floor(entityhuman.locZ / 16.0D);
boolean flag3 = true;
-
- for (int i1 = -8; i1 <= 8; ++i1) {
- for (k = -8; k <= 8; ++k) {
- boolean flag4 = i1 == -8 || i1 == 8 || k == -8 || k == 8;
+ // Spigot Start
+ byte b0 = worldserver.spigotConfig.mobSpawnRange;
+ b0 = ( b0 > worldserver.spigotConfig.viewDistance ) ? (byte) worldserver.spigotConfig.viewDistance : b0;
+ b0 = ( b0 > 8 ) ? 8 : b0;
+
+ for (int i1 = -b0; i1 <= b0; ++i1) {
+ for (k = -b0; k <= b0; ++k) {
+ boolean flag4 = i1 == -b0 || i1 == b0 || k == -b0 || k == b0;
+ // Spigot End
ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(i1 + l, k + j);
// CraftBukkit start - use LongHash and LongHashSet
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
index f5096e3a4..3dee3ff5e 100644
--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
@@ -126,4 +126,11 @@ public class SpigotWorldConfig
viewDistance = getInt( "view-distance", Bukkit.getViewDistance() );
log( "View Distance: " + viewDistance );
}
+
+ public byte mobSpawnRange;
+ private void mobSpawnRange()
+ {
+ mobSpawnRange = (byte) getInt( "mob-spawn-range", 4 );
+ log( "Mob Spawn Range: " + mobSpawnRange );
+ }
}
--
2.17.1