mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-19 15:09:25 +00:00
49 lines
2.2 KiB
Diff
49 lines
2.2 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: HaHaWTH <102713261+HaHaWTH@users.noreply.github.com>
|
|
Date: Sat, 26 Oct 2024 00:56:24 +0800
|
|
Subject: [PATCH] Remove stream in BehaviorUtils
|
|
|
|
|
|
diff --git a/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java b/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java
|
|
index e7f74b4f54069ffdf74f029639cbf0756f2db095..b5257eefa04e930b45ffd9d46f28e53026ad728f 100644
|
|
--- a/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java
|
|
+++ b/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java
|
|
@@ -110,10 +110,33 @@ public class BehaviorUtils {
|
|
|
|
public static SectionPos findSectionClosestToVillage(ServerLevel serverLevel, SectionPos sectionPos, int radius) {
|
|
int i = serverLevel.sectionsToVillage(sectionPos);
|
|
- return SectionPos.cube(sectionPos, radius)
|
|
- .filter(pos -> serverLevel.sectionsToVillage(pos) < i)
|
|
- .min(Comparator.comparingInt(serverLevel::sectionsToVillage))
|
|
- .orElse(sectionPos);
|
|
+ // Leaf start - Remove stream in BehaviorUtils
|
|
+ SectionPos closestSection = sectionPos;
|
|
+ int closestDistance = i;
|
|
+
|
|
+ final int lowerX = sectionPos.getX() - radius;
|
|
+ final int lowerY = sectionPos.getY() - radius;
|
|
+ final int lowerZ = sectionPos.getZ() - radius;
|
|
+ final int upperX = sectionPos.getX() + radius;
|
|
+ final int upperY = sectionPos.getY() + radius;
|
|
+ final int upperZ = sectionPos.getZ() + radius;
|
|
+
|
|
+ for (int x = lowerX; x <= upperX; x++) {
|
|
+ for (int z = lowerZ; z <= upperZ; z++) {
|
|
+ for (int y = lowerY; y <= upperY; y++) {
|
|
+ SectionPos pos = SectionPos.of(x, y, z);
|
|
+ int distance = serverLevel.sectionsToVillage(pos);
|
|
+
|
|
+ if (distance < closestDistance) {
|
|
+ closestDistance = distance;
|
|
+ closestSection = pos;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return closestSection;
|
|
+ // Leaf end - Remove stream in BehaviorUtils
|
|
}
|
|
|
|
public static boolean isWithinAttackRange(Mob mob, LivingEntity target, int cooldown) {
|