37 lines
2.1 KiB
Diff
37 lines
2.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: NanaChiyo0721 <nanachiyo0721@163.com>
|
|
Date: Sat, 25 Jul 2026 21:16:19 +0800
|
|
Subject: [PATCH] Lithium Optimizes Hoglin repellent search.
|
|
|
|
|
|
diff --git a/net/minecraft/world/entity/ai/sensing/HoglinSpecificSensor.java b/net/minecraft/world/entity/ai/sensing/HoglinSpecificSensor.java
|
|
index 7022679c84e184999b416e06d1af2cc2500cb12b..ac8f4acc2aaee8ca9f7598d842ecf29f2ad73be3 100644
|
|
--- a/net/minecraft/world/entity/ai/sensing/HoglinSpecificSensor.java
|
|
+++ b/net/minecraft/world/entity/ai/sensing/HoglinSpecificSensor.java
|
|
@@ -16,6 +16,14 @@ import net.minecraft.world.entity.monster.hoglin.Hoglin;
|
|
import net.minecraft.world.entity.monster.piglin.Piglin;
|
|
|
|
public class HoglinSpecificSensor extends Sensor<Hoglin> {
|
|
+ // Shiroha start - Lithium Optimizes Hoglin repellent search.
|
|
+ private static final java.util.function.Predicate<net.minecraft.world.level.block.state.BlockState> IS_VALID_REPELLENT_PREDICATE =
|
|
+ HoglinSpecificSensor::lithium$isValidRepellent;
|
|
+
|
|
+ private static boolean lithium$isValidRepellent(net.minecraft.world.level.block.state.BlockState blockState) {
|
|
+ return blockState.is(BlockTags.HOGLIN_REPELLENTS);
|
|
+ }
|
|
+ // Shiroha end - Lithium Optimizes Hoglin repellent search.
|
|
@Override
|
|
public Set<MemoryModuleType<?>> requires() {
|
|
return ImmutableSet.of(
|
|
@@ -30,8 +38,8 @@ public class HoglinSpecificSensor extends Sensor<Hoglin> {
|
|
|
|
@Override
|
|
protected void doTick(final ServerLevel level, final Hoglin body) {
|
|
- Brain<?> brain = body.getBrain();
|
|
- brain.setMemory(MemoryModuleType.NEAREST_REPELLENT, this.findNearestRepellent(level, body));
|
|
+ Brain<?> brain = body.getBrain();;
|
|
+ brain.setMemory(MemoryModuleType.NEAREST_REPELLENT, net.caffeinemc.mods.lithium.common.ai.non_poi_block_search.CommonBlockSearchesCheckAndCache.blockPosFindClosestMatch(level, body, 8, 4, IS_VALID_REPELLENT_PREDICATE, true)); // Shiroha - Lithium Optimizes Hoglin repellent search.
|
|
Optional<Piglin> adultPiglin = Optional.empty();
|
|
int adultPiglinCount = 0;
|
|
List<Hoglin> adultHoglins = Lists.newArrayList();
|