mirror of
https://hub.spigotmc.org/stash/scm/spigot/spigot.git
synced 2025-08-05 16:48:51 +00:00
52 lines
2.3 KiB
Diff
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
|
|
|