diff options
Diffstat (limited to 'patches/server/0042-Configurable-mob-spawner-tick-rate.patch')
-rw-r--r-- | patches/server/0042-Configurable-mob-spawner-tick-rate.patch | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/patches/server/0042-Configurable-mob-spawner-tick-rate.patch b/patches/server/0042-Configurable-mob-spawner-tick-rate.patch new file mode 100644 index 0000000000..b33478a7a0 --- /dev/null +++ b/patches/server/0042-Configurable-mob-spawner-tick-rate.patch @@ -0,0 +1,49 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Sudzzy <[email protected]> +Date: Wed, 2 Mar 2016 15:03:53 -0600 +Subject: [PATCH] Configurable mob spawner tick rate + + +diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java +index c5b9b19763fd944b4f31c6d3c9b71d372f8403cf..e5b56a85d76d1417dda2d14b1b03850bbb070f4c 100644 +--- a/src/main/java/net/minecraft/world/level/BaseSpawner.java ++++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java +@@ -42,6 +42,7 @@ public abstract class BaseSpawner { + public int maxNearbyEntities = 6; + public int requiredPlayerRange = 16; + public int spawnRange = 4; ++ private int tickDelay = 0; // Paper + + public BaseSpawner() {} + +@@ -76,13 +77,18 @@ public abstract class BaseSpawner { + } + + public void serverTick(ServerLevel world, BlockPos pos) { ++ // Paper start - Configurable mob spawner tick rate ++ if (spawnDelay > 0 && --tickDelay > 0) return; ++ tickDelay = world.paperConfig().tickRates.mobSpawner; ++ if (tickDelay == -1) { return; } // If disabled ++ // Paper end + if (this.isNearPlayer(world, pos)) { +- if (this.spawnDelay == -1) { ++ if (this.spawnDelay < -tickDelay) { + this.delay(world, pos); + } + + if (this.spawnDelay > 0) { +- --this.spawnDelay; ++ this.spawnDelay -= tickDelay; // Paper + } else { + boolean flag = false; + +@@ -148,8 +154,7 @@ public abstract class BaseSpawner { + ((Mob) entity).finalizeSpawn(world, world.getCurrentDifficultyAt(entity.blockPosition()), MobSpawnType.SPAWNER, (SpawnGroupData) null, (CompoundTag) null); + } + // Spigot Start +- if ( entityinsentient.level.spigotConfig.nerfSpawnerMobs ) +- { ++ if (entityinsentient.level.spigotConfig.nerfSpawnerMobs) { + entityinsentient.aware = false; + } + // Spigot End |