9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2026-01-04 15:41:40 +00:00

fix BehaviorControlArraySet#equals

This commit is contained in:
hayanesuru
2025-07-20 04:55:49 +09:00
parent dbfd54780a
commit fb4067a731
3 changed files with 5 additions and 10 deletions

View File

@@ -7,7 +7,7 @@ Co-authored-by: Taiyou06 <kaandindar21@gmail.com>
Co-authored-by: hayanesuru <hayanesuru@outlook.jp>
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<E extends LivingEntity> {
@@ -119,7 +119,7 @@ index 29fdf94db0308031edfe7915fc587a2aa5a1a18a..c1fa839b69626e0694c091fd91ea1502
}
}
}
@@ -452,34 +480,94 @@ public class Brain<E extends LivingEntity> {
@@ -452,34 +480,95 @@ public class Brain<E extends LivingEntity> {
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<Activity, Set<BehaviorControl<? super E>>> 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<Set<BehaviorControl<? super E>>>) map).getValue(index);

View File

@@ -11,7 +11,7 @@ import java.util.*;
public final class ActivityBitSet extends AbstractObjectSet<Activity> {
public int bitset = 0;
private int bitset = 0;
private boolean dirty = true;
public boolean unsetDirty() {

View File

@@ -101,7 +101,6 @@ public final class BehaviorControlArraySet<E extends LivingEntity> 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<E extends LivingEntity> extends Abstr
java.util.Arrays.fill(a, 0, size, null);
size = 0;
}
@Override
public boolean equals(Object o) {
return false;
}
}