Class PiglinAi
java.lang.Object
net.minecraft.world.entity.monster.piglin.PiglinAi
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final int
private static final int
private static final UniformInt
private static final UniformInt
private static final int
static final Item
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final float
static final int
static final int
private static final UniformInt
private static final UniformInt
private static final UniformInt
private static final float
private static final float
private static final float
private static final float
private static final float
private static final float
private static final float
private static final float
protected static final UniformInt
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static void
admireGoldItem
(LivingEntity piglin) static void
angerNearbyPiglins
(Player player, boolean angerOnlyIfCanSee) private static BehaviorControl
<PathfinderMob> private static BehaviorControl
<Piglin> private static BehaviorControl
<Piglin> private static BehaviorControl
<LivingEntity> protected static void
broadcastAngerTarget
(AbstractPiglin piglin, LivingEntity target) private static void
broadcastRetreat
(Piglin piglin, LivingEntity target) protected static void
protected static boolean
protected static void
cancelAdmiring
(Piglin piglin) private static RunOne
<LivingEntity> private static com.google.common.collect.ImmutableList
<com.mojang.datafixers.util.Pair<OneShot<LivingEntity>, Integer>> private static boolean
protected static void
private static void
private static Optional
<? extends LivingEntity> findNearestValidAttackTarget
(Piglin piglin) private static List
<AbstractPiglin> getAdultPiglins
(AbstractPiglin piglin) private static Optional
<LivingEntity> getAngerTarget
(AbstractPiglin piglin) static Optional
<LivingEntity> getAvoidTarget
(Piglin piglin) getBarterResponseItems
(Piglin piglin) private static Vec3
getRandomNearbyPos
(Piglin piglin) private static SoundEvent
getSoundForActivity
(Piglin piglin, Activity activity) static Optional
<SoundEvent> getSoundForCurrentActivity
(Piglin piglin) protected static List
<AbstractPiglin> getVisibleAdultPiglins
(Piglin piglin) private static boolean
hasCrossbow
(LivingEntity piglin) private static boolean
hasEatenRecently
(Piglin piglin) private static boolean
hoglinsOutnumberPiglins
(Piglin piglin) private static void
holdInOffhand
(Piglin piglin, ItemStack stack) private static void
initAdmireItemActivity
(Brain<Piglin> brain) private static void
initCelebrateActivity
(Brain<Piglin> brain) private static void
initCoreActivity
(Brain<Piglin> brain) private static void
initFightActivity
(Piglin piglin, Brain<Piglin> brain) private static void
initIdleActivity
(Brain<Piglin> brain) protected static void
initMemories
(Piglin piglin, RandomSource random) private static void
initRetreatActivity
(Brain<Piglin> brain) private static void
initRideHoglinActivity
(Brain<Piglin> brain) private static boolean
isAdmiringDisabled
(Piglin piglin) private static boolean
isAdmiringItem
(Piglin piglin) private static boolean
isBabyRidingBaby
(Piglin passenger) private static boolean
isBarterCurrency
(ItemStack stack) private static boolean
private static boolean
isHoldingItemInOffHand
(Piglin piglin) protected static boolean
isIdle
(AbstractPiglin piglin) protected static boolean
isLovedItem
(ItemStack item) private static boolean
isNearAvoidTarget
(Piglin piglin) private static boolean
isNearestValidAttackTarget
(Piglin piglin, LivingEntity target) private static boolean
isNearRepellent
(Piglin piglin) private static boolean
isNearZombified
(Piglin piglin) private static boolean
isNotHoldingLovedItemInOffHand
(Piglin piglin) static boolean
isPlayerHoldingLovedItem
(LivingEntity player) static boolean
isWearingGold
(LivingEntity livingEntity) static boolean
isZombified
(EntityType<?> entityType) protected static Brain
<?> protected static void
maybeRetaliate
(AbstractPiglin piglin, LivingEntity target) static InteractionResult
mobInteract
(Piglin piglin, Player player, InteractionHand hand) protected static void
pickUpItem
(Piglin piglin, ItemEntity itemEntity) private static boolean
piglinsEqualOrOutnumberHoglins
(Piglin piglin) private static void
putInInventory
(Piglin piglin, ItemStack stack) private static ItemStack
removeOneItemFromItemEntity
(ItemEntity itemEntity) private static void
retreatFromNearestTarget
(Piglin piglin, LivingEntity target) private static boolean
protected static void
setAngerTarget
(AbstractPiglin piglin, LivingEntity target) private static void
setAngerTargetIfCloserThanCurrent
(AbstractPiglin piglin, LivingEntity currentTarget) private static void
setAngerTargetToNearestTargetablePlayerIfFound
(AbstractPiglin piglin, LivingEntity currentTarget) private static void
setAvoidTargetAndDontHuntForAWhile
(Piglin piglin, LivingEntity target) protected static void
stopHoldingOffHandItem
(Piglin piglin, boolean shouldBarter) private static void
stopWalking
(Piglin piglin) private static void
throwItems
(Piglin pilgin, List<ItemStack> stacks) private static void
throwItemsTowardPlayer
(Piglin piglin, Player player, List<ItemStack> stacks) private static void
throwItemsTowardPos
(Piglin piglin, List<ItemStack> stacks, Vec3 pos) private static void
throwItemsTowardRandomPos
(Piglin piglin, List<ItemStack> stacks) protected static void
updateActivity
(Piglin piglin) private static boolean
wantsToDance
(LivingEntity piglin, LivingEntity target) protected static boolean
wantsToPickup
(Piglin piglin, ItemStack stack) private static boolean
wantsToStopFleeing
(Piglin piglin) private static boolean
wantsToStopRiding
(Piglin piglin, Entity vehicle) protected static void
wasHurtBy
(Piglin piglin, LivingEntity target) private static boolean
wasHurtRecently
(LivingEntity piglin)
-
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:
-
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
-
makeBrain
-
initMemories
-
initCoreActivity
-
initIdleActivity
-
initFightActivity
-
initCelebrateActivity
-
initAdmireItemActivity
-
initRetreatActivity
-
initRideHoglinActivity
-
createLookBehaviors
private static com.google.common.collect.ImmutableList<com.mojang.datafixers.util.Pair<OneShot<LivingEntity>,Integer>> createLookBehaviors() -
createIdleLookBehaviors
-
createIdleMovementBehaviors
-
avoidRepellent
-
babyAvoidNemesis
-
avoidZombified
-
updateActivity
-
isBabyRidingBaby
-
pickUpItem
-
holdInOffhand
-
removeOneItemFromItemEntity
-
stopHoldingOffHandItem
-
cancelAdmiring
-
putInInventory
-
throwItems
-
throwItemsTowardRandomPos
-
throwItemsTowardPlayer
-
throwItemsTowardPos
-
getBarterResponseItems
-
wantsToDance
-
wantsToPickup
-
isLovedItem
-
wantsToStopRiding
-
isNearestValidAttackTarget
-
isNearZombified
-
findNearestValidAttackTarget
-
angerNearbyPiglins
-
mobInteract
-
canAdmire
-
wasHurtBy
-
maybeRetaliate
-
getSoundForCurrentActivity
-
getSoundForActivity
-
isNearAvoidTarget
-
getVisibleAdultPiglins
-
getAdultPiglins
-
isWearingGold
-
stopWalking
-
babySometimesRideBabyHoglin
-
broadcastAngerTarget
-
broadcastUniversalAnger
-
setAngerTarget
-
setAngerTargetToNearestTargetablePlayerIfFound
private static void setAngerTargetToNearestTargetablePlayerIfFound(AbstractPiglin piglin, LivingEntity currentTarget) -
setAngerTargetIfCloserThanCurrent
private static void setAngerTargetIfCloserThanCurrent(AbstractPiglin piglin, LivingEntity currentTarget) -
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
-