-
-
Notifications
You must be signed in to change notification settings - Fork 40
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
c29856f
commit 8cf6bf0
Showing
2 changed files
with
51 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 | ||
From: violetc <[email protected]> | ||
Date: Tue, 18 Jul 2023 14:54:36 +0800 | ||
Subject: [PATCH] Store mob counts in an array | ||
|
||
This patch is Powered by Gale(https://github.com/GaleMC/Gale) | ||
|
||
diff --git a/src/main/java/net/minecraft/world/level/LocalMobCapCalculator.java b/src/main/java/net/minecraft/world/level/LocalMobCapCalculator.java | ||
index 84c766e09898cfc07d6e07e80f4b9aa318050a62..a42098cc027ed3c1ec75542b800520514f87608a 100644 | ||
--- a/src/main/java/net/minecraft/world/level/LocalMobCapCalculator.java | ||
+++ b/src/main/java/net/minecraft/world/level/LocalMobCapCalculator.java | ||
@@ -48,15 +48,28 @@ public class LocalMobCapCalculator { | ||
|
||
static class MobCounts { | ||
private final Object2IntMap<MobCategory> counts = new Object2IntOpenHashMap<>(MobCategory.values().length); | ||
+ public final int[] arrCounts = new int[MobCategory.values().length]; // Leaves - store mob counts in an array | ||
|
||
public void add(MobCategory spawnGroup) { | ||
- this.counts.computeInt(spawnGroup, (group, density) -> { | ||
- return density == null ? 1 : density + 1; | ||
- }); | ||
+ // Leaves start - store mob counts in an array | ||
+ if (!top.leavesmc.leaves.LeavesConfig.storeMobCountsInArray) { | ||
+ this.counts.computeInt(spawnGroup, (group, density) -> { | ||
+ return density == null ? 1 : density + 1; | ||
+ }); | ||
+ } else { | ||
+ this.arrCounts[spawnGroup.ordinal()]++; | ||
+ } | ||
+ // Leaves end - store mob counts in an array | ||
} | ||
|
||
public boolean canSpawn(MobCategory spawnGroup) { | ||
- return this.counts.getOrDefault(spawnGroup, 0) < spawnGroup.getMaxInstancesPerChunk(); | ||
+ // Leaves start - store mob counts in an array | ||
+ if (!top.leavesmc.leaves.LeavesConfig.storeMobCountsInArray) { | ||
+ return this.counts.getOrDefault(spawnGroup, 0) < spawnGroup.getMaxInstancesPerChunk(); | ||
+ } else { | ||
+ return this.arrCounts[spawnGroup.ordinal()] < spawnGroup.getMaxInstancesPerChunk(); | ||
+ } | ||
+ // Leaves end - store mob counts in an array | ||
} | ||
} | ||
} |