From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: NanaChiyo0721 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 { + // Shiroha start - Lithium Optimizes Piglin repellent search. + private static final java.util.function.Predicate 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> requires() { return ImmutableSet.of( @@ -47,7 +56,7 @@ public class PiglinSpecificSensor extends Sensor { @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 nemesis = Optional.empty(); Optional huntableHoglin = Optional.empty(); Optional babyHoglin = Optional.empty();