From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: NanaChiyo0721 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 { + // Shiroha start - Lithium Optimizes Hoglin repellent search. + private static final java.util.function.Predicate 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> requires() { return ImmutableSet.of( @@ -30,8 +38,8 @@ public class HoglinSpecificSensor extends Sensor { @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 adultPiglin = Optional.empty(); int adultPiglinCount = 0; List adultHoglins = Lists.newArrayList();