36 lines
2.2 KiB
Diff
36 lines
2.2 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: NanaChiyo0721 <nanachiyo0721@163.com>
|
|
Date: Sat, 25 Jul 2026 21:30:26 +0800
|
|
Subject: [PATCH] Lithium Optimizes Piglin repellent search.
|
|
|
|
|
|
diff --git a/net/minecraft/world/entity/ai/sensing/PiglinSpecificSensor.java b/net/minecraft/world/entity/ai/sensing/PiglinSpecificSensor.java
|
|
index 060a53da799a3036a343cc6f1d73e3e5ca4b7af9..7e5accce5a9183165e7604ca5e144e600b6f503d 100644
|
|
--- a/net/minecraft/world/entity/ai/sensing/PiglinSpecificSensor.java
|
|
+++ b/net/minecraft/world/entity/ai/sensing/PiglinSpecificSensor.java
|
|
@@ -26,6 +26,15 @@ import net.minecraft.world.level.block.CampfireBlock;
|
|
import net.minecraft.world.level.block.state.BlockState;
|
|
|
|
public class PiglinSpecificSensor extends Sensor<LivingEntity> {
|
|
+ // Shiroha start - Lithium Optimizes Piglin repellent search.
|
|
+ private static final java.util.function.Predicate<BlockState> IS_VALID_REPELLENT_PREDICATE =
|
|
+ PiglinSpecificSensor::lithium$isValidRepellent;
|
|
+ private static boolean lithium$isValidRepellent(BlockState blockState){
|
|
+ final boolean isPiglinRepellent = blockState.is(BlockTags.PIGLIN_REPELLENTS);
|
|
+ return isPiglinRepellent && blockState.is(Blocks.SOUL_CAMPFIRE) ?
|
|
+ CampfireBlock.isLitCampfire(blockState) : isPiglinRepellent;
|
|
+ }
|
|
+ // Shiroha end - Lithium Optimizes Piglin repellent search.
|
|
@Override
|
|
public Set<MemoryModuleType<?>> requires() {
|
|
return ImmutableSet.of(
|
|
@@ -47,7 +56,7 @@ public class PiglinSpecificSensor extends Sensor<LivingEntity> {
|
|
@Override
|
|
protected void doTick(final ServerLevel level, final LivingEntity body) {
|
|
Brain<?> brain = body.getBrain();
|
|
- brain.setMemory(MemoryModuleType.NEAREST_REPELLENT, findNearestRepellent(level, body));
|
|
+ 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 Piglin repellent search.
|
|
Optional<Mob> nemesis = Optional.empty();
|
|
Optional<Hoglin> huntableHoglin = Optional.empty();
|
|
Optional<Hoglin> babyHoglin = Optional.empty();
|