57class Mob :
public ::Actor {
59 LLAPI
void refreshInventory();
61 LLAPI static ::Mob* tryGetFromEntity(
::EntityContext& entity,
bool includeRemoved);
66 ::ll::TypedStorage<4, 4, float> mHurtDir;
67 ::ll::TypedStorage<4, 4, float> mOTilt;
68 ::ll::TypedStorage<4, 4, float> mTilt;
69 ::ll::TypedStorage<8, 32, ::CompassSpriteCalculator> mCompassSpriteCalc;
70 ::ll::TypedStorage<8, 32, ::CompassSpriteCalculator> mRecoveryCompassSpriteCalc;
71 ::ll::TypedStorage<4, 12, ::ClockSpriteCalculator> mClockSpriteCalc;
72 ::ll::TypedStorage<4, 4, float> mAttackAnim;
73 ::ll::TypedStorage<4, 4, int> mSwingTime;
74 ::ll::TypedStorage<8, 24, ::BuiltInMobComponents> mBuiltInMobComponents;
75 ::ll::TypedStorage<4, 4, float> mMovementComponentCurrentSpeed;
76 ::ll::TypedStorage<1, 1, bool> mSwinging;
77 ::ll::TypedStorage<1, 1, bool> mSurfaceMob;
78 ::ll::TypedStorage<1, 1, bool> mNaturallySpawned;
79 ::ll::TypedStorage<1, 1, bool> mWantsToBeJockey;
80 ::ll::TypedStorage<1, 1, bool> mHasBoundOrigin;
81 ::ll::TypedStorage<1, 2, ::std::optional<bool>> mActuallyDoKnockbackOrNotReallyBadHackDoNotUse;
82 ::ll::TypedStorage<1, 1, ::MobSpawnMethod> mSpawnMethod;
83 ::ll::TypedStorage<1, 1, bool> mCreateAiOnReload;
84 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mCaravanHead;
85 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mCaravanTail;
86 ::ll::TypedStorage<4, 4, float> mOAttackAnim;
87 ::ll::TypedStorage<4, 12, ::BlockPos> mBoundOrigin;
88 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mTargetCaptainId;
101 virtual void reloadHardcodedClient(::ActorInitializationMethod method) ;
107 virtual void knockback(::Actor* source,
int damage,
float xd,
float zd,
::KnockbackParameters const& parameters);
109 virtual void kill() ;
113 virtual bool shouldDropDeathLoot()
const ;
115 virtual void spawnAnim();
117 virtual bool isAlive()
const ;
119 virtual bool isSleeping()
const ;
121 virtual void setSleeping(
bool val) ;
123 virtual bool isBlocking()
const ;
125 virtual void setSprinting(
bool shouldSprint);
127 virtual bool canBePulledIntoVehicle()
const ;
129 virtual float getSpeed()
const;
131 virtual void setSpeed(
float speed);
133 virtual float getYawSpeedInDegreesPerSecond()
const ;
135 virtual void normalTick() ;
137 virtual void baseTick() ;
141 virtual void damageCarriedItemOnAttack(::Actor& target,
float damageDealtToTarget);
143 virtual ::ActorHurtResult doFireHurt(
int amount) ;
145 virtual void aiStep();
147 virtual void pushActors();
149 virtual bool checkSpawnRules(
bool fromSpawner);
151 virtual bool checkSpawnObstruction()
const;
153 virtual void addPassenger(::Actor& newPassenger) ;
155 virtual bool startRiding(::Actor& vehicle,
bool forceRiding) ;
157 virtual void handleEntityEvent(::ActorEvent
id,
int data) ;
159 virtual int getItemUseDuration()
const;
161 virtual float getItemUseStartupProgress()
const;
163 virtual float getItemUseIntervalProgress()
const;
165 virtual bool swing(::ActorSwingSource swingSource) ;
167 virtual float getMaxHeadXRot();
169 virtual bool isImmobile()
const ;
173 virtual void setTarget(::Actor* target) ;
175 virtual ::ActorHurtResult
176 attack(::Actor& target, ::SharedTypes::Legacy::ActorDamageCause
const& cause) ;
178 virtual bool isAlliedTo(::Mob* other);
180 virtual ::ActorHurtResult doHurtTarget(::Actor* target, ::SharedTypes::Legacy::ActorDamageCause
const& cause);
182 virtual ::SharedTypes::Legacy::ActorDamageCause getBlockDamageCause(
::Block const& block)
const ;
184 virtual bool inCaravan()
const ;
186 virtual int getArmorValue()
const;
188 virtual void hurtArmorSlots(
::ActorDamageSource const& source,
int damage, ::std::bitset<5>
const hurtSlots);
190 virtual void setDamagedArmor(::SharedTypes::Legacy::ArmorSlot slot,
::ItemStack const& item);
192 virtual void sendArmorDamage(::std::bitset<5>
const damagedSlots);
194 virtual void sendArmor(::std::bitset<5>
const armorSlots);
196 virtual ::ArmorMaterialType getArmorMaterialTypeInSlot(::SharedTypes::Legacy::ArmorSlot slot)
const ;
198 virtual int getArmorTextureIndexInSlot(::SharedTypes::Legacy::ArmorSlot slot)
const ;
200 virtual float getArmorColorInSlot(::SharedTypes::Legacy::ArmorSlot slot,
int channelRGBA)
const ;
202 virtual ::std::vector<::ItemStack const*> getAllHandEquipment()
const;
204 virtual ::std::vector<::ItemStack const*> getAllEquipment()
const;
206 virtual int getDeathTime()
const ;
210 virtual void dropEquipmentOnDeath();
212 virtual void clearVanishEnchantedItemsOnDeath();
214 virtual void sendInventory(
bool shouldSelectSlot);
216 virtual void buildDebugInfo(::std::string& out)
const ;
218 virtual float getInterpolatedBodyRot(
float a)
const ;
220 virtual float getInterpolatedHeadRot(
float a)
const ;
222 virtual float getInterpolatedBodyYaw(
float a)
const ;
224 virtual bool isSurfaceMob()
const ;
226 virtual float getDamageAfterEnchantReduction(
::ActorDamageSource const& source,
float damage)
const;
228 virtual bool createAIGoals();
230 virtual void onBorn(::Actor&, ::Actor&);
232 virtual bool setItemSlot(::SharedTypes::Legacy::EquipmentSlot slot,
::ItemStack const& item);
234 virtual void setTransitioningSitting(
bool value);
238 virtual bool canChangeDimensionsUsingPortal()
const ;
240 virtual void teleportTo(
242 bool shouldStopRiding,
244 int sourceEntityType,
248 virtual float _getWalkTargetValue(
::BlockPos const& pos);
250 virtual bool canExistWhenDisallowMob()
const;
252 virtual bool canPowerJump()
const ;
254 virtual void setEquippedSlot(::SharedTypes::Legacy::EquipmentSlot slot,
::ItemStack const& item) ;
258 virtual bool canFreeze()
const ;
260 virtual void addAdditionalSaveData(
::CompoundTag& entityTag)
const ;
264 virtual ::std::unique_ptr<::BodyControl> initBodyControl();
266 virtual float causeFallDamageToActor(
float distance,
float multiplier,
::ActorDamageSource source) ;
268 virtual void outOfWorld() ;
270 virtual ::ActorHurtResult
273 virtual void newServerAiStep();
275 virtual void _doInitialMove() ;
277 virtual ::AABB _getAdjustedAABBForSpawnCheck(
::AABB const& aabb,
::Vec3 const& mobPos)
const;
290 MCAPI ::BuiltInMobComponents _addBuiltInMobComponents();
292 MCAPI
void _doSoulSpeedParticleEffect();
294 MCAPI
void _doSprintParticleEffect();
296 MCAPI
bool _initHardCodedComponents(
bool isClientSide);
298 MCAPI
void _initialize(
::EntityContext& entityContext,
bool isClientSide);
300 MCAPI
bool _isDoingMaceSmashAttack()
const;
302 MCAPI
bool _isFloorDamaging(
::BlockPos const& pos);
304 MCAPI
void _loadArmor(
::ListTag const* listTag);
306 MCAPI
void _logMobComponentInitializationError(
307 ::std::string
const& typeName,
308 ::std::string
const& existingName,
309 char const* descriptionJsonName
312 MCAPI
void _processSoulSpeed();
314 MCAPI
void _registerMobAttributes();
316 MCAPI ::std::unique_ptr<::ListTag> _saveArmor(
::SaveContext const& saveContext)
const;
318 MCAPI
void _updateSprintingState();
320 MCAPI
void _verifyAttributes();
323 addSpeedModifier(
::mce::UUID const& attributeID, ::std::string
const& attributeName,
float speedModifier);
327 MCAPI
float calcMoveRelativeSpeed(::TravelType travelType);
331 MCAPI
bool checkForPostHitDamageImmunity(
float damageDifference,
::ActorDamageSource const& source);
333 MCAPI ::std::optional<float> checkTotemDeathProtection(
::ActorDamageSource const& killingDamage);
335 MCAPI
void clearMainHandSlot();
337 MCAPI
void containerChanged(
int iSlot);
339 MCAPI
void createAI(::std::vector<::LegacyGoalDefinition> goals);
341 MCAPI
void dropBags();
343 MCAPI
void dropContainer();
345 MCAPI
void emitJumpPreventedEvent(
::BlockPos const& pos);
347 MCAPI
void frostWalk();
350 MCAPI ::std::vector<int> getAllArmorID()
const;
353 MCAPI
float getArmorCoverPercentage()
const;
355 MCAPI
int getArmorTypeHash();
358 MCAPI
float getAttackAnim(
float a);
361 MCAPI
int getBaseSwingDuration()
const;
363 MCAPI ::BlockPos getBoundOrigin()
const;
365 MCAPI ::ActorUniqueID getCaravanHead()
const;
367 MCAPI
float getDamageAfterArmorReduction(
::ActorDamageSource const& source,
float damage)
const;
369 MCAPI
float getDamageAfterDamageSensorComponentAdjustments(
::ActorDamageSource const& source,
float damage);
371 MCAPI
float getDamageAfterPostHitDamageImmunityReduction(
::ActorDamageSource const& source,
float damage)
const;
373 MCAPI
float getDamageAfterResistanceEffect(
::ActorDamageSource const& source,
float damage)
const;
375 MCAPI ::SharedTypes::Legacy::ActorDamageCause getDamageCause()
const;
377 MCAPI
int getEatCounter()
const;
379 MCAPI
float getExpectedFallDamage(
float distance,
float multiplier)
const;
381 MCAPI
int getGlidingTicks()
const;
383 MCAPI ::SharedTypes::Legacy::LevelSoundEvent getHurtSound(::SharedTypes::Legacy::ActorDamageCause cause)
const;
386 MCAPI
int getItemIconAnimationFrame(
::ItemStack const& item);
389 MCAPI ::ItemStack
const& getItemSlot(::SharedTypes::Legacy::EquipmentSlot slot)
const;
391 MCAPI
float getJumpEffectAmplifierValue();
393 MCAPI
float getJumpMultiplier();
395 MCAPI ::JumpPreventionResult getJumpPrevention();
397 MCAPI
int getModifiedSwingDuration()
const;
399 MCAPI
float getMovementComponentCurrentSpeed()
const;
401 MCAPI
int getNoActionTime()
const;
404 MCAPI
float getPassengerLockedBodyRot()
const;
406 MCAPI
float getPassengerRotLimit()
const;
409 MCAPI ::SharedTypes::Legacy::LevelSoundEvent getSpawnSound()
const;
412 MCAPI
float getSwimSpeedMultiplier()
const;
415 MCAPI ::ActorUniqueID getTargetCaptain()
const;
417 MCAPI
int getToughnessValue()
const;
419 MCAPI ::TravelType getTravelType();
421 MCAPI
float getYBodyRotation()
const;
424 MCAPI ::InterpolationPair getYBodyRotationsNewOld()
const;
427 MCAPI
bool hasBoundOrigin()
const;
429 MCAPI
bool hasCaravanTail()
const;
433 MCAPI
bool isAbleToMove()
const;
435 MCAPI
bool isEating()
const;
437 MCAPI
bool isGliding()
const;
439 MCAPI
bool isLayingEgg()
const;
441 MCAPI
bool isPregnant()
const;
443 MCAPI
bool isSprinting()
const;
445 MCAPI
bool isTransitioningSitting()
const;
447 MCAPI
void joinCaravan(::Mob* head);
449 MCAPI
void jumpFromGround();
451 MCAPI
void leaveCaravan();
453 MCAPI
void loadMainhand(
::ListTag const* listTag);
455 MCAPI
void loadOffhand(
::ListTag const* listTag);
457 MCAPI
void lookAt(::Actor* lookAt,
float yMax,
float xMax);
461 MCAPI
void removeSpeedModifier(
::mce::UUID const& attributeID);
463 MCAPI
void resetAttributes();
465 MCAPI
void resetNoActionTime();
467 MCAPI ::std::unique_ptr<::ListTag> saveMainhand(
::SaveContext const& saveContext)
const;
469 MCAPI ::std::unique_ptr<::ListTag> saveOffhand(
::SaveContext const& saveContext)
const;
471 MCAPI
void sendArmorDamageSlot(::SharedTypes::Legacy::ArmorSlot slot);
473 MCAPI
void sendArmorSlot(::SharedTypes::Legacy::ArmorSlot slot);
475 MCAPI
void setDeathTime(
int ticks);
477 MCAPI
void setEatCounter(
int value);
479 MCAPI
void setEating(
bool value);
481 MCAPI
void setIsLayingEgg(
bool layingEgg);
483 MCAPI
void setIsPregnant(
bool pregnant);
485 MCAPI
void setJumpTicks(
int ticks);
487 MCAPI
void setMovementComponentCurrentSpeed(
float movementComponentCurrentSpeed);
489 MCAPI
void setNaturallySpawned(
bool naturallySpawned);
491 MCAPI
void setSpawnMethod(::MobSpawnMethod method);
493 MCAPI
void setSpeedModifier(
float speed);
495 MCAPI
void setSurfaceMob(
bool isSurfaceMob);
499 MCAPI
void setYBodyRotation(
float rotation);
501 MCAPI
void setYBodyRotations(
float rotation,
float oldRotation);
503 MCAPI
bool shouldApplyWaterGravity();
505 MCAPI
void snapToYBodyRot(
float yBodyRot);
507 MCAPI
void snapToYHeadRot(
float yHeadRot);
511 MCAPI
void tickMobEffectsVisuals();
513 MCAPI
void tryFrostWalk();
515 MCAPI
void tryProcessSoulSpeed();
517 MCAPI
void tryUpdateAI();
519 MCAPI
void updateAttackAnim();
521 MCAPI
void updateEquipment();
523 MCAPI
void updateGlidingDurability();
529 MCAPI
static char const* _getDescriptionJsonName(
::Description const* description);
537 MCAPI
static float const& ASCEND_BLOCK_BY_JUMPING_SPEED();
539 MCAPI
static float const& GLIDING_FALL_RESET_DELTA();
541 MCAPI
static int const& REMOVE_PASSENGERS_DELAY();
543 MCAPI
static int const& SPAWN_XP_DELAY();
567 MCAPI
void $initializeComponents(::ActorInitializationMethod method,
::VariantParameterList const& params);
569 MCAPI
void $reloadHardcodedClient(::ActorInitializationMethod method);
573 MCAPI
void $knockback(::Actor* source,
int damage,
float xd,
float zd,
::KnockbackParameters const& parameters);
579 MCAPI
bool $shouldDropDeathLoot()
const;
581 MCFOLD
void $spawnAnim();
583 MCAPI
bool $isAlive()
const;
585 MCAPI
bool $isSleeping()
const;
587 MCAPI
void $setSleeping(
bool val);
589 MCAPI
bool $isBlocking()
const;
591 MCAPI
void $setSprinting(
bool shouldSprint);
593 MCFOLD
bool $canBePulledIntoVehicle()
const;
595 MCAPI
float $getSpeed()
const;
597 MCAPI
void $setSpeed(
float speed);
599 MCAPI
float $getYawSpeedInDegreesPerSecond()
const;
601 MCAPI
void $normalTick();
603 MCAPI
void $baseTick();
607 MCAPI
void $damageCarriedItemOnAttack(::Actor& target,
float damageDealtToTarget);
609 MCAPI ::ActorHurtResult $doFireHurt(
int amount);
611 MCAPI
void $aiStep();
613 MCAPI
void $pushActors();
615 MCAPI
bool $checkSpawnRules(
bool fromSpawner);
617 MCAPI
bool $checkSpawnObstruction()
const;
619 MCAPI
void $addPassenger(::Actor& newPassenger);
621 MCAPI
bool $startRiding(::Actor& vehicle,
bool forceRiding);
623 MCAPI
void $handleEntityEvent(::ActorEvent
id,
int data);
625 MCFOLD
int $getItemUseDuration()
const;
627 MCFOLD
float $getItemUseStartupProgress()
const;
629 MCFOLD
float $getItemUseIntervalProgress()
const;
631 MCAPI
bool $swing(::ActorSwingSource swingSource);
633 MCAPI
float $getMaxHeadXRot();
635 MCAPI
bool $isImmobile()
const;
639 MCAPI
void $setTarget(::Actor* target);
641 MCAPI ::ActorHurtResult $attack(::Actor& target, ::SharedTypes::Legacy::ActorDamageCause
const& cause);
643 MCFOLD
bool $isAlliedTo(::Mob* other);
645 MCAPI ::ActorHurtResult $doHurtTarget(::Actor* target, ::SharedTypes::Legacy::ActorDamageCause
const& cause);
647 MCAPI ::SharedTypes::Legacy::ActorDamageCause $getBlockDamageCause(
::Block const& block)
const;
649 MCAPI
bool $inCaravan()
const;
651 MCAPI
int $getArmorValue()
const;
653 MCAPI
void $hurtArmorSlots(
::ActorDamageSource const& source,
int damage, ::std::bitset<5>
const hurtSlots);
655 MCAPI
void $setDamagedArmor(::SharedTypes::Legacy::ArmorSlot slot,
::ItemStack const& item);
657 MCFOLD
void $sendArmorDamage(::std::bitset<5>
const damagedSlots);
659 MCAPI
void $sendArmor(::std::bitset<5>
const armorSlots);
661 MCAPI ::ArmorMaterialType $getArmorMaterialTypeInSlot(::SharedTypes::Legacy::ArmorSlot slot)
const;
663 MCAPI
int $getArmorTextureIndexInSlot(::SharedTypes::Legacy::ArmorSlot slot)
const;
665 MCAPI
float $getArmorColorInSlot(::SharedTypes::Legacy::ArmorSlot slot,
int channelRGBA)
const;
667 MCAPI ::std::vector<::ItemStack const*> $getAllHandEquipment()
const;
669 MCAPI ::std::vector<::ItemStack const*> $getAllEquipment()
const;
671 MCAPI
int $getDeathTime()
const;
675 MCAPI
void $dropEquipmentOnDeath();
677 MCAPI
void $clearVanishEnchantedItemsOnDeath();
679 MCAPI
void $sendInventory(
bool shouldSelectSlot);
681 MCAPI
void $buildDebugInfo(::std::string& out)
const;
683 MCAPI
float $getInterpolatedBodyRot(
float a)
const;
685 MCAPI
float $getInterpolatedHeadRot(
float a)
const;
687 MCAPI
float $getInterpolatedBodyYaw(
float a)
const;
689 MCAPI
bool $isSurfaceMob()
const;
691 MCAPI
float $getDamageAfterEnchantReduction(
::ActorDamageSource const& source,
float damage)
const;
693 MCAPI
bool $createAIGoals();
695 MCFOLD
void $onBorn(::Actor&, ::Actor&);
697 MCAPI
bool $setItemSlot(::SharedTypes::Legacy::EquipmentSlot slot,
::ItemStack const& item);
699 MCAPI
void $setTransitioningSitting(
bool value);
703 MCAPI
bool $canChangeDimensionsUsingPortal()
const;
706 $teleportTo(
::Vec3 const& pos,
bool shouldStopRiding,
int cause,
int sourceEntityType,
bool keepVelocity);
708 MCFOLD
float $_getWalkTargetValue(
::BlockPos const& pos);
710 MCAPI
bool $canExistWhenDisallowMob()
const;
712 MCAPI
bool $canPowerJump()
const;
714 MCAPI
void $setEquippedSlot(::SharedTypes::Legacy::EquipmentSlot slot,
::ItemStack const& item);
718 MCAPI
bool $canFreeze()
const;
720 MCAPI
void $addAdditionalSaveData(
::CompoundTag& entityTag)
const;
724 MCAPI ::std::unique_ptr<::BodyControl> $initBodyControl();
726 MCAPI
float $causeFallDamageToActor(
float distance,
float multiplier,
::ActorDamageSource source);
728 MCAPI
void $outOfWorld();
730 MCAPI ::ActorHurtResult $_hurt(
::ActorDamageSource const& source,
float damage,
bool knock,
bool ignite);
732 MCAPI
void $newServerAiStep();
734 MCAPI
void $_doInitialMove();
736 MCAPI ::AABB $_getAdjustedAABBForSpawnCheck(
::AABB const& aabb,
::Vec3 const& mobPos)
const;
744 MCAPI
static void** $vftable();