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 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 pPiglin) static voidangerNearbyPiglins(ServerLevel pLevel, Player pPlayer, boolean pRequireLineOfSight) private static BehaviorControl<PathfinderMob> private static BehaviorControl<Piglin> private static BehaviorControl<Piglin> private static BehaviorControl<LivingEntity> protected static voidbroadcastAngerTarget(ServerLevel pLevel, AbstractPiglin pPiglin, LivingEntity pAngerTarget) private static voidbroadcastRetreat(Piglin pPiglin, LivingEntity pTarget) protected static voidbroadcastUniversalAnger(ServerLevel pLevel, AbstractPiglin pPiglin) protected static booleanprotected static voidcancelAdmiring(ServerLevel pLevel, Piglin pPiglin) private static RunOne<LivingEntity> private static ImmutableList<com.mojang.datafixers.util.Pair<OneShot<LivingEntity>, Integer>> private static booleanprotected static voidprivate static voidprivate static Optional<? extends LivingEntity> findNearestValidAttackTarget(ServerLevel pLevel, Piglin pPiglin) private static List<AbstractPiglin> getAdultPiglins(AbstractPiglin pPiglin) private static Optional<LivingEntity> getAngerTarget(AbstractPiglin pPiglin) static Optional<LivingEntity> getAvoidTarget(Piglin pPiglin) getBarterResponseItems(Piglin pPiglin) private static Vec3getRandomNearbyPos(Piglin pPiglin) private static SoundEventgetSoundForActivity(Piglin pPiglin, Activity pActivity) static Optional<SoundEvent> getSoundForCurrentActivity(Piglin pPiglin) protected static List<AbstractPiglin> getVisibleAdultPiglins(Piglin pPiglin) private static booleanhasCrossbow(LivingEntity pPiglin) private static booleanhasEatenRecently(Piglin pPiglin) private static booleanhoglinsOutnumberPiglins(Piglin pPiglin) private static voidholdInOffhand(ServerLevel pLevel, Piglin pPiglin, ItemStack pStack) private static voidinitAdmireItemActivity(Brain<Piglin> pBrain) private static voidinitCelebrateActivity(Brain<Piglin> pBrain) private static voidinitCoreActivity(Brain<Piglin> pBrain) private static voidinitFightActivity(Piglin pPiglin, Brain<Piglin> pBrain) private static voidinitIdleActivity(Brain<Piglin> pBrain) protected static voidinitMemories(Piglin pPiglin, RandomSource pRandom) private static voidinitRetreatActivity(Brain<Piglin> pBrain) private static voidinitRideHoglinActivity(Brain<Piglin> pBrain) private static booleanisAdmiringDisabled(Piglin pPiglin) private static booleanisAdmiringItem(Piglin pPiglin) private static booleanisBabyRidingBaby(Piglin pPassenger) private static booleanisBarterCurrency(ItemStack pStack) private static booleanprivate static booleanisHoldingItemInOffHand(Piglin pPiglin) protected static booleanisIdle(AbstractPiglin pPiglin) protected static booleanisLovedItem(ItemStack pItem) private static booleanisNearAvoidTarget(Piglin pPiglin) private static booleanisNearestValidAttackTarget(ServerLevel pLevel, Piglin pPiglin, LivingEntity pTarget) private static booleanisNearRepellent(Piglin pPiglin) private static booleanisNearZombified(Piglin pPiglin) private static booleanisNotHoldingLovedItemInOffHand(Piglin pPiglin) static booleanisPlayerHoldingLovedItem(LivingEntity pPlayer) static booleanisWearingSafeArmor(LivingEntity pEntity) static booleanisZombified(EntityType<?> pEntityType) protected static Brain<?> protected static voidmaybeRetaliate(ServerLevel pLevel, AbstractPiglin pPiglin, LivingEntity pEntity) static InteractionResultmobInteract(ServerLevel pLevel, Piglin pPiglin, Player pPlayer, InteractionHand pHand) protected static voidpickUpItem(ServerLevel pLevel, Piglin pPiglin, ItemEntity pItemEntity) private static booleanpiglinsEqualOrOutnumberHoglins(Piglin pPiglin) private static voidputInInventory(Piglin pPiglin, ItemStack pStack) private static ItemStackremoveOneItemFromItemEntity(ItemEntity pItemEntity) private static voidretreatFromNearestTarget(Piglin pPiglin, LivingEntity pTarget) private static booleanseesPlayerHoldingLovedItem(LivingEntity pPiglin) protected static voidsetAngerTarget(ServerLevel pLevel, AbstractPiglin pPiglin, LivingEntity pAngerTarget) private static voidsetAngerTargetIfCloserThanCurrent(ServerLevel pLevel, AbstractPiglin pPiglin, LivingEntity pAngerTarget) private static voidsetAngerTargetToNearestTargetablePlayerIfFound(ServerLevel pLevel, AbstractPiglin pPiglin, LivingEntity pEntity) private static voidsetAvoidTargetAndDontHuntForAWhile(Piglin pPiglin, LivingEntity pTarget) protected static voidstopHoldingOffHandItem(ServerLevel pLevel, Piglin pPiglin, boolean pBarter) private static voidstopWalking(Piglin pPiglin) private static voidthrowItems(Piglin pPilgin, List<ItemStack> pStacks) private static voidthrowItemsTowardPlayer(Piglin pPiglin, Player pPlayer, List<ItemStack> pStacks) private static voidthrowItemsTowardPos(Piglin pPiglin, List<ItemStack> pStacks, Vec3 pPos) private static voidthrowItemsTowardRandomPos(Piglin pPiglin, List<ItemStack> pStacks) protected static voidupdateActivity(Piglin pPiglin) private static booleanwantsToDance(LivingEntity pPiglin, LivingEntity pTarget) protected static booleanwantsToPickup(Piglin pPiglin, ItemStack pStack) private static booleanwantsToStopFleeing(Piglin pPiglin) private static booleanwantsToStopRiding(Piglin pPiglin, Entity pVehicle) protected static voidwasHurtBy(ServerLevel pLevel, Piglin pPiglin, LivingEntity pEntity) private static booleanwasHurtRecently(LivingEntity pPiglin)
-
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 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
private static boolean isNearestValidAttackTarget(ServerLevel pLevel, Piglin pPiglin, LivingEntity pTarget) -
isNearZombified
-
findNearestValidAttackTarget
private static Optional<? extends LivingEntity> findNearestValidAttackTarget(ServerLevel pLevel, Piglin pPiglin) -
angerNearbyPiglins
public static void angerNearbyPiglins(ServerLevel pLevel, Player pPlayer, boolean pRequireLineOfSight) -
mobInteract
public static InteractionResult mobInteract(ServerLevel pLevel, Piglin pPiglin, Player pPlayer, InteractionHand pHand) -
canAdmire
-
wasHurtBy
-
maybeRetaliate
protected static void maybeRetaliate(ServerLevel pLevel, AbstractPiglin pPiglin, LivingEntity pEntity) -
getSoundForCurrentActivity
-
getSoundForActivity
-
isNearAvoidTarget
-
getVisibleAdultPiglins
-
getAdultPiglins
-
isWearingSafeArmor
-
stopWalking
-
babySometimesRideBabyHoglin
-
broadcastAngerTarget
protected static void broadcastAngerTarget(ServerLevel pLevel, AbstractPiglin pPiglin, LivingEntity pAngerTarget) -
broadcastUniversalAnger
-
setAngerTarget
protected static void setAngerTarget(ServerLevel pLevel, AbstractPiglin pPiglin, LivingEntity pAngerTarget) -
setAngerTargetToNearestTargetablePlayerIfFound
private static void setAngerTargetToNearestTargetablePlayerIfFound(ServerLevel pLevel, AbstractPiglin pPiglin, LivingEntity pEntity) -
setAngerTargetIfCloserThanCurrent
private static void setAngerTargetIfCloserThanCurrent(ServerLevel pLevel, AbstractPiglin pPiglin, LivingEntity pAngerTarget) -
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
-