mirror of
https://github.com/LeavesMC/Leaves.git
synced 2025-12-23 08:59:31 +00:00
48 lines
2.5 KiB
Diff
48 lines
2.5 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: violetc <58360096+s-yh-china@users.noreply.github.com>
|
|
Date: Sat, 13 Aug 2022 17:27:18 +0800
|
|
Subject: [PATCH] Optimize mob spawning
|
|
|
|
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
|
|
index 15d266fc97eb73338f4f6fb2cfe25d6861e79810..70773c525bcf33d4d4764ce4a16dedddc423b02b 100644
|
|
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
|
|
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
|
|
@@ -173,7 +173,7 @@ public final class NaturalSpawner {
|
|
}
|
|
difference = (minDiff == Integer.MAX_VALUE) ? 0 : minDiff;
|
|
}
|
|
- if ((spawnAnimals || !enumcreaturetype.isFriendly()) && (spawnMonsters || enumcreaturetype.isFriendly()) && (rareSpawn || !enumcreaturetype.isPersistent()) && difference > 0) {
|
|
+ if ((spawnAnimals || !enumcreaturetype.isFriendly()) && (spawnMonsters || enumcreaturetype.isFriendly()) && (rareSpawn || !enumcreaturetype.isPersistent()) && difference > 0 && (!world.paperConfig().entities.spawning.perPlayerMobSpawns || info.canSpawnForCategory(enumcreaturetype, chunk.getPos(), limit))) { // Leaves - be vanilla
|
|
// Paper end
|
|
// CraftBukkit end
|
|
Objects.requireNonNull(info);
|
|
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
|
index 937e84214223e978b3b6bc6107974c61e2d0f558..af84cbaf93392d90b4c74ef5a0eb7bd163b76ce5 100644
|
|
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
|
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
|
@@ -226,7 +226,21 @@ public final class LeavesConfig {
|
|
}
|
|
noChatSign = getBoolean("settings.misc.no-chat-sign", noChatSign);
|
|
}
|
|
-
|
|
+
|
|
+ public static boolean asyncMobSpawning = false;
|
|
+ private static boolean asyncMobSpawningLock = false;
|
|
+ private static void asyncMobSpawning() {
|
|
+ if (!asyncMobSpawningLock) {
|
|
+ asyncMobSpawning = getBoolean("settings.performance.async-mob-spawning", asyncMobSpawning);
|
|
+ asyncMobSpawningLock = true;
|
|
+ }
|
|
+
|
|
+ if (asyncMobSpawning) {
|
|
+ asyncMobSpawning = false;
|
|
+ LeavesLogger.LOGGER.severe("Async MobSpawning is updating, it can't work");
|
|
+ }
|
|
+ }
|
|
+
|
|
public static final class WorldConfig {
|
|
|
|
public final String worldName;
|