java.lang.Object
net.minecraft.world.entity.monster.piglin.PiglinAi

public class PiglinAi extends Object
  • 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

      public static final Item 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:
    • TIME_BETWEEN_HUNTS

      protected static final UniformInt 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

      private static final UniformInt RIDE_START_INTERVAL
    • RIDE_DURATION

      private static final UniformInt RIDE_DURATION
    • RETREAT_DURATION

      private static final UniformInt 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

      private static final UniformInt AVOID_ZOMBIFIED_DURATION
    • BABY_AVOID_NEMESIS_DURATION

      private static final UniformInt 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

    • makeBrain

      protected static Brain<?> makeBrain(Piglin pPiglin, Brain<Piglin> pBrain)
    • initMemories

      protected static void initMemories(Piglin pPiglin, RandomSource pRandom)
    • initCoreActivity

      private static void initCoreActivity(Brain<Piglin> pBrain)
    • initIdleActivity

      private static void initIdleActivity(Brain<Piglin> pBrain)
    • initFightActivity

      private static void initFightActivity(Piglin pPiglin, Brain<Piglin> pBrain)
    • initCelebrateActivity

      private static void initCelebrateActivity(Brain<Piglin> pBrain)
    • initAdmireItemActivity

      private static void initAdmireItemActivity(Brain<Piglin> pBrain)
    • initRetreatActivity

      private static void initRetreatActivity(Brain<Piglin> pBrain)
    • initRideHoglinActivity

      private static void initRideHoglinActivity(Brain<Piglin> pBrain)
    • createLookBehaviors

      private static com.google.common.collect.ImmutableList<com.mojang.datafixers.util.Pair<OneShot<LivingEntity>,Integer>> createLookBehaviors()
    • createIdleLookBehaviors

      private static RunOne<LivingEntity> createIdleLookBehaviors()
    • createIdleMovementBehaviors

      private static RunOne<Piglin> createIdleMovementBehaviors()
    • avoidRepellent

      private static BehaviorControl<PathfinderMob> avoidRepellent()
    • babyAvoidNemesis

      private static BehaviorControl<Piglin> babyAvoidNemesis()
    • avoidZombified

      private static BehaviorControl<Piglin> avoidZombified()
    • updateActivity

      protected static void updateActivity(Piglin pPiglin)
    • isBabyRidingBaby

      private static boolean isBabyRidingBaby(Piglin pPassenger)
    • pickUpItem

      protected static void pickUpItem(Piglin pPiglin, ItemEntity pItemEntity)
    • holdInOffhand

      private static void holdInOffhand(Piglin pPiglin, ItemStack pStack)
    • removeOneItemFromItemEntity

      private static ItemStack removeOneItemFromItemEntity(ItemEntity pItemEntity)
    • stopHoldingOffHandItem

      protected static void stopHoldingOffHandItem(Piglin pPiglin, boolean pShouldBarter)
    • cancelAdmiring

      protected static void cancelAdmiring(Piglin pPiglin)
    • putInInventory

      private static void putInInventory(Piglin pPiglin, ItemStack pStack)
    • throwItems

      private static void throwItems(Piglin pPilgin, List<ItemStack> pStacks)
    • throwItemsTowardRandomPos

      private static void throwItemsTowardRandomPos(Piglin pPiglin, List<ItemStack> pStacks)
    • throwItemsTowardPlayer

      private static void throwItemsTowardPlayer(Piglin pPiglin, Player pPlayer, List<ItemStack> pStacks)
    • throwItemsTowardPos

      private static void throwItemsTowardPos(Piglin pPiglin, List<ItemStack> pStacks, Vec3 pPos)
    • getBarterResponseItems

      private static List<ItemStack> getBarterResponseItems(Piglin pPiglin)
    • wantsToDance

      private static boolean wantsToDance(LivingEntity p_34811_, LivingEntity p_34812_)
    • wantsToPickup

      protected static boolean wantsToPickup(Piglin pPiglin, ItemStack pStack)
    • isLovedItem

      protected static boolean isLovedItem(ItemStack p_149966_)
    • wantsToStopRiding

      private static boolean wantsToStopRiding(Piglin p_34835_, Entity p_34836_)
    • isNearestValidAttackTarget

      private static boolean isNearestValidAttackTarget(Piglin pPiglin, LivingEntity pTarget)
    • isNearZombified

      private static boolean isNearZombified(Piglin p_34999_)
    • findNearestValidAttackTarget

      private static Optional<? extends LivingEntity> findNearestValidAttackTarget(Piglin p_35001_)
    • angerNearbyPiglins

      public static void angerNearbyPiglins(Player pPlayer, boolean pAngerOnlyIfCanSee)
    • mobInteract

      public static InteractionResult mobInteract(Piglin pPiglin, Player pPlayer, InteractionHand pHand)
    • canAdmire

      protected static boolean canAdmire(Piglin pPiglin, ItemStack pStack)
    • wasHurtBy

      protected static void wasHurtBy(Piglin pPiglin, LivingEntity pTarget)
    • maybeRetaliate

      protected static void maybeRetaliate(AbstractPiglin pPiglin, LivingEntity pTarget)
    • getSoundForCurrentActivity

      public static Optional<SoundEvent> getSoundForCurrentActivity(Piglin pPiglin)
    • getSoundForActivity

      private static SoundEvent getSoundForActivity(Piglin pPiglin, Activity pActivity)
    • isNearAvoidTarget

      private static boolean isNearAvoidTarget(Piglin pPiglin)
    • getVisibleAdultPiglins

      protected static List<AbstractPiglin> getVisibleAdultPiglins(Piglin pPiglin)
    • getAdultPiglins

      private static List<AbstractPiglin> getAdultPiglins(AbstractPiglin pPiglin)
    • isWearingGold

      public static boolean isWearingGold(LivingEntity pLivingEntity)
    • stopWalking

      private static void stopWalking(Piglin pPiglin)
    • babySometimesRideBabyHoglin

      private static BehaviorControl<LivingEntity> babySometimesRideBabyHoglin()
    • broadcastAngerTarget

      protected static void broadcastAngerTarget(AbstractPiglin pPiglin, LivingEntity pTarget)
    • broadcastUniversalAnger

      protected static void broadcastUniversalAnger(AbstractPiglin pPiglin)
    • setAngerTarget

      protected static void setAngerTarget(AbstractPiglin pPiglin, LivingEntity pTarget)
    • setAngerTargetToNearestTargetablePlayerIfFound

      private static void setAngerTargetToNearestTargetablePlayerIfFound(AbstractPiglin pPiglin, LivingEntity pCurrentTarget)
    • setAngerTargetIfCloserThanCurrent

      private static void setAngerTargetIfCloserThanCurrent(AbstractPiglin pPiglin, LivingEntity pCurrentTarget)
    • getAngerTarget

      private static Optional<LivingEntity> getAngerTarget(AbstractPiglin pPiglin)
    • getAvoidTarget

      public static Optional<LivingEntity> getAvoidTarget(Piglin pPiglin)
    • getNearestVisibleTargetablePlayer

      public static Optional<Player> getNearestVisibleTargetablePlayer(AbstractPiglin pPiglin)
    • broadcastRetreat

      private static void broadcastRetreat(Piglin pPiglin, LivingEntity pTarget)
    • retreatFromNearestTarget

      private static void retreatFromNearestTarget(Piglin pPiglin, LivingEntity pTarget)
    • wantsToStopFleeing

      private static boolean wantsToStopFleeing(Piglin p_35009_)
    • piglinsEqualOrOutnumberHoglins

      private static boolean piglinsEqualOrOutnumberHoglins(Piglin pPiglin)
    • hoglinsOutnumberPiglins

      private static boolean hoglinsOutnumberPiglins(Piglin pPiglin)
    • setAvoidTargetAndDontHuntForAWhile

      private static void setAvoidTargetAndDontHuntForAWhile(Piglin pPiglin, LivingEntity pTarget)
    • dontKillAnyMoreHoglinsForAWhile

      protected static void dontKillAnyMoreHoglinsForAWhile(AbstractPiglin pPiglin)
    • eat

      private static void eat(Piglin pPiglin)
    • getRandomNearbyPos

      private static Vec3 getRandomNearbyPos(Piglin pPiglin)
    • hasEatenRecently

      private static boolean hasEatenRecently(Piglin pPiglin)
    • isIdle

      protected static boolean isIdle(AbstractPiglin p_34943_)
    • hasCrossbow

      private static boolean hasCrossbow(LivingEntity p_34919_)
    • admireGoldItem

      private static void admireGoldItem(LivingEntity pPiglin)
    • isAdmiringItem

      private static boolean isAdmiringItem(Piglin pPiglin)
    • isBarterCurrency

      private static boolean isBarterCurrency(ItemStack pStack)
    • isFood

      private static boolean isFood(ItemStack pStack)
    • isNearRepellent

      private static boolean isNearRepellent(Piglin pPiglin)
    • seesPlayerHoldingLovedItem

      private static boolean seesPlayerHoldingLovedItem(LivingEntity pPiglin)
    • doesntSeeAnyPlayerHoldingLovedItem

      private static boolean doesntSeeAnyPlayerHoldingLovedItem(LivingEntity p_34983_)
    • isPlayerHoldingLovedItem

      public static boolean isPlayerHoldingLovedItem(LivingEntity p_34884_)
    • isAdmiringDisabled

      private static boolean isAdmiringDisabled(Piglin pPiglin)
    • wasHurtRecently

      private static boolean wasHurtRecently(LivingEntity pPiglin)
    • isHoldingItemInOffHand

      private static boolean isHoldingItemInOffHand(Piglin pPiglin)
    • isNotHoldingLovedItemInOffHand

      private static boolean isNotHoldingLovedItemInOffHand(Piglin p_35029_)
    • isZombified

      public static boolean isZombified(EntityType<?> pEntityType)