From fb4067a731bf860392ea5f0b7ab48efadf51c685 Mon Sep 17 00:00:00 2001 From: hayanesuru Date: Sun, 20 Jul 2025 04:55:49 +0900 Subject: [PATCH] fix BehaviorControlArraySet#equals --- .../0156-Replace-brain-with-optimized-collection.patch | 7 ++++--- .../main/java/org/dreeam/leaf/util/map/ActivityBitSet.java | 2 +- .../org/dreeam/leaf/util/map/BehaviorControlArraySet.java | 6 ------ 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/leaf-server/minecraft-patches/features/0156-Replace-brain-with-optimized-collection.patch b/leaf-server/minecraft-patches/features/0156-Replace-brain-with-optimized-collection.patch index 6b99656f..cdbfe153 100644 --- a/leaf-server/minecraft-patches/features/0156-Replace-brain-with-optimized-collection.patch +++ b/leaf-server/minecraft-patches/features/0156-Replace-brain-with-optimized-collection.patch @@ -7,7 +7,7 @@ Co-authored-by: Taiyou06 Co-authored-by: hayanesuru diff --git a/net/minecraft/world/entity/ai/Brain.java b/net/minecraft/world/entity/ai/Brain.java -index 29fdf94db0308031edfe7915fc587a2aa5a1a18a..c1fa839b69626e0694c091fd91ea1502088845f5 100644 +index 29fdf94db0308031edfe7915fc587a2aa5a1a18a..d423f325adbdfd524d05af28f1a1097891ea1c40 100644 --- a/net/minecraft/world/entity/ai/Brain.java +++ b/net/minecraft/world/entity/ai/Brain.java @@ -45,14 +45,21 @@ public class Brain { @@ -119,7 +119,7 @@ index 29fdf94db0308031edfe7915fc587a2aa5a1a18a..c1fa839b69626e0694c091fd91ea1502 } } } -@@ -452,34 +480,94 @@ public class Brain { +@@ -452,34 +480,95 @@ public class Brain { public void stopAll(ServerLevel level, E owner) { long gameTime = owner.level().getGameTime(); @@ -165,9 +165,10 @@ index 29fdf94db0308031edfe7915fc587a2aa5a1a18a..c1fa839b69626e0694c091fd91ea1502 + if (activeBehaviors == EMPTY_BEHAVIOR_ARRAY || aact.unsetDirty()) { + var list = it.unimi.dsi.fastutil.objects.ReferenceArrayList.wrap(activeBehaviors); + list.clear(); ++ int activeSet = aact.bitSet(); + for (Map>> map : availableBehaviorsByPriorityArray) { + for (int index = 0; index < org.dreeam.leaf.util.RegistryTypeManager.ACTIVITY_SIZE; index++) { -+ if ((aact.bitset & (1 << index)) == 0) { ++ if ((activeSet & (1 << index)) == 0) { + continue; + } + var ele = ((org.dreeam.leaf.util.map.ActivityArrayMap>>) map).getValue(index); diff --git a/leaf-server/src/main/java/org/dreeam/leaf/util/map/ActivityBitSet.java b/leaf-server/src/main/java/org/dreeam/leaf/util/map/ActivityBitSet.java index ebe7ca06..45305222 100644 --- a/leaf-server/src/main/java/org/dreeam/leaf/util/map/ActivityBitSet.java +++ b/leaf-server/src/main/java/org/dreeam/leaf/util/map/ActivityBitSet.java @@ -11,7 +11,7 @@ import java.util.*; public final class ActivityBitSet extends AbstractObjectSet { - public int bitset = 0; + private int bitset = 0; private boolean dirty = true; public boolean unsetDirty() { diff --git a/leaf-server/src/main/java/org/dreeam/leaf/util/map/BehaviorControlArraySet.java b/leaf-server/src/main/java/org/dreeam/leaf/util/map/BehaviorControlArraySet.java index 066e6b2f..eda256fe 100644 --- a/leaf-server/src/main/java/org/dreeam/leaf/util/map/BehaviorControlArraySet.java +++ b/leaf-server/src/main/java/org/dreeam/leaf/util/map/BehaviorControlArraySet.java @@ -101,7 +101,6 @@ public final class BehaviorControlArraySet extends Abstr @Override public @NotNull Object[] toArray() { - final int size = size(); if (size == 0) return it.unimi.dsi.fastutil.objects.ObjectArrays.EMPTY_ARRAY; return java.util.Arrays.copyOf(a, size, Object[].class); @@ -150,9 +149,4 @@ public final class BehaviorControlArraySet extends Abstr java.util.Arrays.fill(a, 0, size, null); size = 0; } - - @Override - public boolean equals(Object o) { - return false; - } }