Class PiglinAi
java.lang.Object
net.minecraft.world.entity.monster.piglin.PiglinAi
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final intprivate static final intprivate static final UniformIntprivate static final UniformIntprivate static final intstatic final Itemprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intstatic final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final floatstatic final intstatic final intprivate static final UniformIntprivate static final UniformIntprivate static final UniformIntprivate static final floatprivate static final floatprivate static final floatprivate static final floatprivate static final floatprivate static final floatprivate static final floatprivate static final floatprotected static final UniformInt -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static voidadmireGoldItem(LivingEntity body) static voidangerNearbyPiglins(ServerLevel level, Player player, boolean onlyIfTheySeeThePlayer) private static BehaviorControl<PathfinderMob> private static BehaviorControl<Piglin> private static BehaviorControl<Piglin> private static BehaviorControl<LivingEntity> protected static voidbroadcastAngerTarget(ServerLevel level, AbstractPiglin body, LivingEntity target) private static voidbroadcastRetreat(Piglin body, LivingEntity target) protected static voidbroadcastUniversalAnger(ServerLevel level, AbstractPiglin body) protected static booleanprotected static voidcancelAdmiring(ServerLevel level, Piglin body) private static RunOne<LivingEntity> private static ImmutableList<com.mojang.datafixers.util.Pair<OneShot<LivingEntity>, Integer>> private static booleanprotected static voidprivate static voidstatic List<AbstractPiglin> findNearbyAdultPiglins(Brain<?> brain) private static Optional<? extends LivingEntity> findNearestValidAttackTarget(ServerLevel level, Piglin body) static List<ActivityData<Piglin>> getActivities(Piglin piglin) private static List<AbstractPiglin> private static Optional<LivingEntity> getAngerTarget(AbstractPiglin body) static Optional<LivingEntity> getAvoidTarget(Piglin body) getBarterResponseItems(Piglin body) private static Vec3getRandomNearbyPos(Piglin body) private static SoundEventgetSoundForActivity(Piglin body, Activity activity) static Optional<SoundEvent> protected static List<AbstractPiglin> getVisibleAdultPiglins(Piglin body) private static booleanhasCrossbow(LivingEntity body) private static booleanhasEatenRecently(Piglin body) private static booleanprivate static voidholdInOffhand(ServerLevel level, Piglin body, ItemStack itemStack) private static ActivityData<Piglin> private static ActivityData<Piglin> private static ActivityData<Piglin> private static ActivityData<Piglin> initFightActivity(Piglin body) private static ActivityData<Piglin> protected static voidinitMemories(Piglin body, RandomSource random) private static ActivityData<Piglin> private static ActivityData<Piglin> private static booleanisAdmiringDisabled(Piglin body) private static booleanisAdmiringItem(Piglin body) private static booleanisBabyRidingBaby(Piglin body) private static booleanisBarterCurrency(ItemStack itemStack) private static booleanprivate static booleanisHoldingItemInOffHand(Piglin body) protected static booleanisIdle(AbstractPiglin body) protected static booleanisLovedItem(ItemStack itemStack) private static booleanisNearAvoidTarget(Piglin body) private static booleanisNearestValidAttackTarget(ServerLevel level, Piglin body, LivingEntity target) private static booleanisNearRepellent(Piglin body) private static booleanisNearZombified(Piglin body) private static booleanstatic booleanisPlayerHoldingLovedItem(LivingEntity entity) static booleanisWearingSafeArmor(LivingEntity livingEntity) static booleanisZombified(Entity entity) protected static voidmaybeRetaliate(ServerLevel level, AbstractPiglin body, LivingEntity attacker) static InteractionResultmobInteract(ServerLevel level, Piglin body, Player player, InteractionHand hand) protected static voidpickUpItem(ServerLevel level, Piglin body, ItemEntity itemEntity) private static booleanprivate static voidputInInventory(Piglin body, ItemStack itemStack) private static ItemStackremoveOneItemFromItemEntity(ItemEntity itemEntity) private static voidretreatFromNearestTarget(Piglin body, LivingEntity newAvoidTarget) private static booleanprotected static voidsetAngerTarget(ServerLevel level, AbstractPiglin body, LivingEntity target) private static voidsetAngerTargetIfCloserThanCurrent(ServerLevel level, AbstractPiglin body, LivingEntity newTarget) private static voidsetAngerTargetToNearestTargetablePlayerIfFound(ServerLevel level, AbstractPiglin body, LivingEntity targetIfNoPlayerFound) private static voidsetAvoidTargetAndDontHuntForAWhile(Piglin body, LivingEntity target) protected static voidstopHoldingOffHandItem(ServerLevel level, Piglin body, boolean barteringEnabled) private static voidstopWalking(Piglin body) private static voidthrowItems(Piglin body, List<ItemStack> itemStacks) private static voidthrowItemsTowardPlayer(Piglin body, Player player, List<ItemStack> itemStacks) private static voidthrowItemsTowardPos(Piglin body, List<ItemStack> itemStacks, Vec3 targetPos) private static voidthrowItemsTowardRandomPos(Piglin body, List<ItemStack> itemStacks) protected static voidupdateActivity(Piglin body) private static booleanwantsToDance(LivingEntity body, LivingEntity killedTarget) protected static booleanwantsToPickup(Piglin body, ItemStack itemStack) private static booleanwantsToStopFleeing(Piglin body) private static booleanwantsToStopRiding(Piglin body, Entity entityBeingRidden) protected static voidwasHurtBy(ServerLevel level, Piglin body, LivingEntity attacker) private static booleanwasHurtRecently(LivingEntity body)
-
Field Details
-
REPELLENT_DETECTION_RANGE_HORIZONTAL
public static final int REPELLENT_DETECTION_RANGE_HORIZONTAL- See Also:
-
REPELLENT_DETECTION_RANGE_VERTICAL
public static final int REPELLENT_DETECTION_RANGE_VERTICAL- See Also:
-
BARTERING_ITEM
-
PLAYER_ANGER_RANGE
private static final int PLAYER_ANGER_RANGE- See Also:
-
ANGER_DURATION
private static final int ANGER_DURATION- See Also:
-
ADMIRE_DURATION
private static final int ADMIRE_DURATION- See Also:
-
MAX_DISTANCE_TO_WALK_TO_ITEM
private static final int MAX_DISTANCE_TO_WALK_TO_ITEM- See Also:
-
MAX_TIME_TO_WALK_TO_ITEM
private static final int MAX_TIME_TO_WALK_TO_ITEM- See Also:
-
HOW_LONG_TIME_TO_DISABLE_ADMIRE_WALKING_IF_CANT_REACH_ITEM
private static final int HOW_LONG_TIME_TO_DISABLE_ADMIRE_WALKING_IF_CANT_REACH_ITEM- See Also:
-
CELEBRATION_TIME
private static final int CELEBRATION_TIME- See Also:
-
MAX_TIME_BETWEEN_HUNTS
public static final int MAX_TIME_BETWEEN_HUNTS- See Also:
-
TIME_BETWEEN_HUNTS
-
BABY_FLEE_DURATION_AFTER_GETTING_HIT
private static final int BABY_FLEE_DURATION_AFTER_GETTING_HIT- See Also:
-
HIT_BY_PLAYER_MEMORY_TIMEOUT
private static final int HIT_BY_PLAYER_MEMORY_TIMEOUT- See Also:
-
MAX_WALK_DISTANCE_TO_START_RIDING
private static final int MAX_WALK_DISTANCE_TO_START_RIDING- See Also:
-
RIDE_START_INTERVAL
-
RIDE_DURATION
-
RETREAT_DURATION
-
MELEE_ATTACK_COOLDOWN
private static final int MELEE_ATTACK_COOLDOWN- See Also:
-
EAT_COOLDOWN
private static final int EAT_COOLDOWN- See Also:
-
DESIRED_DISTANCE_FROM_ENTITY_WHEN_AVOIDING
private static final int DESIRED_DISTANCE_FROM_ENTITY_WHEN_AVOIDING- See Also:
-
MAX_LOOK_DIST
private static final int MAX_LOOK_DIST- See Also:
-
MAX_LOOK_DIST_FOR_PLAYER_HOLDING_LOVED_ITEM
private static final int MAX_LOOK_DIST_FOR_PLAYER_HOLDING_LOVED_ITEM- See Also:
-
INTERACTION_RANGE
private static final int INTERACTION_RANGE- See Also:
-
MIN_DESIRED_DIST_FROM_TARGET_WHEN_HOLDING_CROSSBOW
private static final int MIN_DESIRED_DIST_FROM_TARGET_WHEN_HOLDING_CROSSBOW- See Also:
-
SPEED_WHEN_STRAFING_BACK_FROM_TARGET
private static final float SPEED_WHEN_STRAFING_BACK_FROM_TARGET- See Also:
-
DESIRED_DISTANCE_FROM_ZOMBIFIED
private static final int DESIRED_DISTANCE_FROM_ZOMBIFIED- See Also:
-
AVOID_ZOMBIFIED_DURATION
-
BABY_AVOID_NEMESIS_DURATION
-
PROBABILITY_OF_CELEBRATION_DANCE
private static final float PROBABILITY_OF_CELEBRATION_DANCE- See Also:
-
SPEED_MULTIPLIER_WHEN_AVOIDING
private static final float SPEED_MULTIPLIER_WHEN_AVOIDING- See Also:
-
SPEED_MULTIPLIER_WHEN_RETREATING
private static final float SPEED_MULTIPLIER_WHEN_RETREATING- See Also:
-
SPEED_MULTIPLIER_WHEN_MOUNTING
private static final float SPEED_MULTIPLIER_WHEN_MOUNTING- See Also:
-
SPEED_MULTIPLIER_WHEN_GOING_TO_WANTED_ITEM
private static final float SPEED_MULTIPLIER_WHEN_GOING_TO_WANTED_ITEM- See Also:
-
SPEED_MULTIPLIER_WHEN_GOING_TO_CELEBRATE_LOCATION
private static final float SPEED_MULTIPLIER_WHEN_GOING_TO_CELEBRATE_LOCATION- See Also:
-
SPEED_MULTIPLIER_WHEN_DANCING
private static final float SPEED_MULTIPLIER_WHEN_DANCING- See Also:
-
SPEED_MULTIPLIER_WHEN_IDLING
private static final float SPEED_MULTIPLIER_WHEN_IDLING- See Also:
-
-
Constructor Details
-
PiglinAi
public PiglinAi()
-
-
Method Details
-
getActivities
-
initMemories
-
initCoreActivity
-
initIdleActivity
-
initFightActivity
-
initCelebrateActivity
-
initAdmireItemActivity
-
initRetreatActivity
-
initRideHoglinActivity
-
createLookBehaviors
private static ImmutableList<com.mojang.datafixers.util.Pair<OneShot<LivingEntity>, Integer>> createLookBehaviors() -
createIdleLookBehaviors
-
createIdleMovementBehaviors
-
avoidRepellent
-
babyAvoidNemesis
-
avoidZombified
-
updateActivity
-
isBabyRidingBaby
-
pickUpItem
-
holdInOffhand
-
removeOneItemFromItemEntity
-
stopHoldingOffHandItem
protected static void stopHoldingOffHandItem(ServerLevel level, Piglin body, boolean barteringEnabled) -
cancelAdmiring
-
putInInventory
-
throwItems
-
throwItemsTowardRandomPos
-
throwItemsTowardPlayer
-
throwItemsTowardPos
-
getBarterResponseItems
-
wantsToDance
-
wantsToPickup
-
isLovedItem
-
wantsToStopRiding
-
isNearestValidAttackTarget
private static boolean isNearestValidAttackTarget(ServerLevel level, Piglin body, LivingEntity target) -
isNearZombified
-
findNearestValidAttackTarget
private static Optional<? extends LivingEntity> findNearestValidAttackTarget(ServerLevel level, Piglin body) -
angerNearbyPiglins
public static void angerNearbyPiglins(ServerLevel level, Player player, boolean onlyIfTheySeeThePlayer) -
mobInteract
public static InteractionResult mobInteract(ServerLevel level, Piglin body, Player player, InteractionHand hand) -
canAdmire
-
wasHurtBy
-
maybeRetaliate
-
getSoundForCurrentActivity
-
getSoundForActivity
-
isNearAvoidTarget
-
getVisibleAdultPiglins
-
getAdultPiglins
-
isWearingSafeArmor
-
stopWalking
-
babySometimesRideBabyHoglin
-
broadcastAngerTarget
protected static void broadcastAngerTarget(ServerLevel level, AbstractPiglin body, LivingEntity target) -
broadcastUniversalAnger
-
setAngerTarget
-
setAngerTargetToNearestTargetablePlayerIfFound
private static void setAngerTargetToNearestTargetablePlayerIfFound(ServerLevel level, AbstractPiglin body, LivingEntity targetIfNoPlayerFound) -
setAngerTargetIfCloserThanCurrent
private static void setAngerTargetIfCloserThanCurrent(ServerLevel level, AbstractPiglin body, LivingEntity newTarget) -
getAngerTarget
-
getAvoidTarget
-
getNearestVisibleTargetablePlayer
-
broadcastRetreat
-
retreatFromNearestTarget
-
wantsToStopFleeing
-
piglinsEqualOrOutnumberHoglins
-
hoglinsOutnumberPiglins
-
setAvoidTargetAndDontHuntForAWhile
-
dontKillAnyMoreHoglinsForAWhile
-
eat
-
getRandomNearbyPos
-
hasEatenRecently
-
isIdle
-
hasCrossbow
-
admireGoldItem
-
isAdmiringItem
-
isBarterCurrency
-
isFood
-
isNearRepellent
-
seesPlayerHoldingLovedItem
-
doesntSeeAnyPlayerHoldingLovedItem
-
isPlayerHoldingLovedItem
-
isAdmiringDisabled
-
wasHurtRecently
-
isHoldingItemInOffHand
-
isNotHoldingLovedItemInOffHand
-
isZombified
-
findNearbyAdultPiglins
-