55class Mob :
public ::Actor {
57 LLAPI
void refreshInventory();
59 LLAPI static ::Mob* tryGetFromEntity(
::EntityContext& entity,
bool includeRemoved);
61 LLNDAPI
ItemStack const& getItemSlot(::SharedTypes::Legacy::EquipmentSlot slot)
const;
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, 1, ::MobSpawnMethod> mSpawnMethod;
82 ::ll::TypedStorage<1, 1, bool> mCreateAiOnReload;
83 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mCaravanHead;
84 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mCaravanTail;
85 ::ll::TypedStorage<4, 4, float> mOAttackAnim;
86 ::ll::TypedStorage<4, 12, ::BlockPos> mBoundOrigin;
87 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mTargetCaptainId;
100 virtual void reloadHardcodedClient(::ActorInitializationMethod method) ;
106 virtual void knockback(::Actor* source,
float damage,
float xd,
float zd,
::KnockbackParameters const& parameters);
108 virtual void kill() ;
112 virtual bool shouldDropDeathLoot()
const ;
114 virtual void spawnAnim();
116 virtual bool isAlive()
const ;
118 virtual bool isSleeping()
const ;
120 virtual void setSleeping(
bool val) ;
122 virtual bool isBlocking()
const ;
124 virtual void setSprinting(
bool shouldSprint);
126 virtual bool canBePulledIntoVehicle()
const ;
128 virtual float getSpeed()
const;
130 virtual void setSpeed(
float speed);
132 virtual float getYawSpeedInDegreesPerSecond()
const ;
134 virtual void normalTick() ;
136 virtual void baseTick() ;
140 virtual void damageCarriedItemOnAttack(::Actor& target,
float damageDealtToTarget);
142 virtual ::ActorHurtResult doFireHurt(
int amount) ;
144 virtual void aiStep();
146 virtual void pushActors();
148 virtual bool checkSpawnRules(
bool fromSpawner);
150 virtual bool checkSpawnObstruction()
const;
152 virtual void addPassenger(::Actor& newPassenger) ;
154 virtual bool startRiding(::Actor& vehicle,
bool forceRiding) ;
156 virtual void handleEntityEvent(::ActorEvent
id,
int data) ;
158 virtual int getItemUseDuration()
const;
160 virtual float getItemUseStartupProgress()
const;
162 virtual float getItemUseIntervalProgress()
const;
164 virtual bool swing(::ActorSwingSource swingSource) ;
166 virtual float getMaxHeadXRot();
168 virtual bool isImmobile()
const ;
172 virtual void setTarget(::Actor* target) ;
174 virtual ::ActorHurtResult
175 attack(::Actor& target, ::SharedTypes::Legacy::ActorDamageCause
const& cause) ;
177 virtual bool isAlliedTo(::Mob* other);
179 virtual ::ActorHurtResult doHurtTarget(::Actor* target, ::SharedTypes::Legacy::ActorDamageCause
const& cause);
181 virtual ::SharedTypes::Legacy::ActorDamageCause getBlockDamageCause(
::Block const& block)
const ;
183 virtual bool inCaravan()
const ;
185 virtual int getArmorValue()
const;
187 virtual void hurtArmorSlots(
::ActorDamageSource const& source,
int damage, ::std::bitset<5>
const hurtSlots);
189 virtual void setDamagedArmor(::SharedTypes::Legacy::ArmorSlot slot,
::ItemStack const& item);
191 virtual void sendArmorDamage(::std::bitset<5>
const damagedSlots);
193 virtual void sendArmor(::std::bitset<5>
const armorSlots);
195 virtual ::ArmorMaterialType getArmorMaterialTypeInSlot(::SharedTypes::Legacy::ArmorSlot slot)
const ;
197 virtual int getArmorTextureIndexInSlot(::SharedTypes::Legacy::ArmorSlot slot)
const ;
199 virtual float getArmorColorInSlot(::SharedTypes::Legacy::ArmorSlot slot,
int channelRGBA)
const ;
201 virtual ::std::vector<::ItemStack const*> getAllHandEquipment()
const;
203 virtual ::std::vector<::ItemStack const*> getAllEquipment()
const;
205 virtual int getDeathTime()
const ;
209 virtual void dropEquipmentOnDeath();
211 virtual void clearVanishEnchantedItemsOnDeath();
213 virtual void sendInventory(
bool shouldSelectSlot);
215 virtual void buildDebugInfo(::std::string& out)
const ;
217 virtual float getInterpolatedBodyRot(
float a)
const ;
219 virtual float getInterpolatedHeadRot(
float a)
const ;
221 virtual float getInterpolatedBodyYaw(
float a)
const ;
223 virtual bool isSurfaceMob()
const ;
225 virtual float getDamageAfterEnchantReduction(
::ActorDamageSource const& source,
float damage)
const;
227 virtual bool createAIGoals();
229 virtual void onBorn(::Actor&, ::Actor&);
231 virtual bool setItemSlot(::SharedTypes::Legacy::EquipmentSlot slot,
::ItemStack const& item);
233 virtual void setTransitioningSitting(
bool value);
237 virtual bool canChangeDimensionsUsingPortal()
const ;
239 virtual void teleportTo(
241 bool shouldStopRiding,
243 int sourceEntityType,
247 virtual float _getWalkTargetValue(
::BlockPos const& pos);
249 virtual bool canExistWhenDisallowMob()
const;
251 virtual bool canPowerJump()
const ;
253 virtual void setEquippedSlot(::SharedTypes::Legacy::EquipmentSlot slot,
::ItemStack const& item) ;
257 virtual bool canFreeze()
const ;
259 virtual void addAdditionalSaveData(
::CompoundTag& entityTag)
const ;
263 virtual ::std::unique_ptr<::BodyControl> initBodyControl();
265 virtual float causeFallDamageToActor(
float distance,
float multiplier,
::ActorDamageSource source) ;
267 virtual void outOfWorld() ;
269 virtual ::ActorHurtResult
272 virtual void newServerAiStep();
274 virtual void _doInitialMove() ;
276 virtual ::AABB _getAdjustedAABBForSpawnCheck(
::AABB const& aabb,
::Vec3 const& mobPos)
const;
284 MCAPI ::BuiltInMobComponents _addBuiltInMobComponents();
286 MCAPI
void _doSprintParticleEffect();
288 MCAPI
bool _initHardCodedComponents(
bool isClientSide);
290 MCAPI
void _initialize(
::EntityContext& entityContext,
bool isClientSide);
292 MCAPI
bool _isDoingMaceSmashAttack()
const;
294 MCAPI
void _processSoulSpeed();
297 addSpeedModifier(
::mce::UUID const& attributeID, ::std::string
const& attributeName,
float speedModifier);
299 MCAPI
float calcMoveRelativeSpeed(::TravelType travelType);
303 MCAPI ::std::optional<float> checkTotemDeathProtection(
::ActorDamageSource const& killingDamage);
305 MCAPI
void clearMainHandSlot();
307 MCAPI
void containerChanged(
int iSlot);
309 MCAPI
void createAI(::std::vector<::LegacyGoalDefinition> goals);
311 MCAPI
void dropContainer();
313 MCAPI
void emitJumpPreventedEvent(
::BlockPos const& pos);
315 MCAPI
void frostWalk();
318 MCAPI ::std::vector<int> getAllArmorID()
const;
321 MCAPI
int getArmorTypeHash();
323 MCAPI
int getCarriedItemKnockbackBonus()
const;
325 MCAPI
float getDamageAfterArmorReduction(
::ActorDamageSource const& source,
float damage)
const;
327 MCAPI
float getDamageAfterDamageSensorComponentAdjustments(
::ActorDamageSource const& source,
float damage);
329 MCAPI ::SharedTypes::Legacy::LevelSoundEvent getHurtSound(::SharedTypes::Legacy::ActorDamageCause cause)
const;
331 MCAPI
float getJumpEffectAmplifierValue();
333 MCAPI
float getJumpMultiplier();
335 MCAPI ::JumpPreventionResult getJumpPrevention();
338 MCAPI
int getJumpTicks()
const;
341 MCAPI
int getModifiedSwingDuration()
const;
343 MCAPI
int getNoActionTime()
const;
346 MCAPI
float getPassengerLockedBodyRot()
const;
348 MCAPI
float getPassengerRotLimit()
const;
351 MCAPI ::SharedTypes::Legacy::LevelSoundEvent getSpawnSound()
const;
354 MCAPI
float getSwimSpeedMultiplier()
const;
357 MCAPI
int getToughnessValue()
const;
359 MCAPI ::TravelType getTravelType();
361 MCAPI
float getYBodyRotation()
const;
364 MCAPI ::InterpolationPair getYBodyRotationsNewOld()
const;
369 MCAPI
bool isAbleToMove()
const;
371 MCAPI
bool isTransitioningSitting()
const;
373 MCAPI
void joinCaravan(::Mob* head);
375 MCAPI
void jumpFromGround();
377 MCAPI
void leaveCaravan();
379 MCAPI
void lookAt(::Actor* lookAt,
float yMax,
float xMax);
383 MCAPI
void removeSpeedModifier(
::mce::UUID const& attributeID);
385 MCAPI
void resetAttributes();
387 MCAPI
void resetNoActionTime();
389 MCAPI ::std::unique_ptr<::ListTag> saveOffhand(
::SaveContext const& saveContext)
const;
391 MCAPI
void setJumpTicks(
int ticks);
393 MCAPI
void setSpeedModifier(
float speed);
395 MCAPI
void setYBodyRotation(
float rotation);
397 MCAPI
void setYBodyRotations(
float rotation,
float oldRotation);
399 MCAPI
bool shouldApplyWaterGravity();
401 MCAPI
void snapToYBodyRot(
float yBodyRot);
403 MCAPI
void updateEquipment();
405 MCAPI
void updateGlidingDurability();
431 MCAPI
void $initializeComponents(::ActorInitializationMethod method,
::VariantParameterList const& params);
433 MCAPI
void $reloadHardcodedClient(::ActorInitializationMethod method);
437 MCAPI
void $knockback(::Actor* source,
float damage,
float xd,
float zd,
::KnockbackParameters const& parameters);
443 MCAPI
bool $shouldDropDeathLoot()
const;
445 MCFOLD
void $spawnAnim();
447 MCAPI
bool $isAlive()
const;
449 MCAPI
bool $isSleeping()
const;
451 MCAPI
void $setSleeping(
bool val);
453 MCAPI
bool $isBlocking()
const;
455 MCAPI
void $setSprinting(
bool shouldSprint);
457 MCFOLD
bool $canBePulledIntoVehicle()
const;
459 MCAPI
float $getSpeed()
const;
461 MCAPI
void $setSpeed(
float speed);
463 MCAPI
float $getYawSpeedInDegreesPerSecond()
const;
465 MCAPI
void $normalTick();
467 MCAPI
void $baseTick();
471 MCAPI
void $damageCarriedItemOnAttack(::Actor& target,
float damageDealtToTarget);
473 MCAPI ::ActorHurtResult $doFireHurt(
int amount);
475 MCAPI
void $aiStep();
477 MCAPI
void $pushActors();
479 MCAPI
bool $checkSpawnRules(
bool fromSpawner);
481 MCAPI
bool $checkSpawnObstruction()
const;
483 MCAPI
void $addPassenger(::Actor& newPassenger);
485 MCAPI
bool $startRiding(::Actor& vehicle,
bool forceRiding);
487 MCAPI
void $handleEntityEvent(::ActorEvent
id,
int data);
489 MCFOLD
int $getItemUseDuration()
const;
491 MCFOLD
float $getItemUseStartupProgress()
const;
493 MCFOLD
float $getItemUseIntervalProgress()
const;
495 MCAPI
bool $swing(::ActorSwingSource swingSource);
497 MCAPI
float $getMaxHeadXRot();
499 MCAPI
bool $isImmobile()
const;
503 MCAPI
void $setTarget(::Actor* target);
505 MCAPI ::ActorHurtResult $attack(::Actor& target, ::SharedTypes::Legacy::ActorDamageCause
const& cause);
507 MCFOLD
bool $isAlliedTo(::Mob* other);
509 MCAPI ::ActorHurtResult $doHurtTarget(::Actor* target, ::SharedTypes::Legacy::ActorDamageCause
const& cause);
511 MCAPI ::SharedTypes::Legacy::ActorDamageCause $getBlockDamageCause(
::Block const& block)
const;
513 MCAPI
bool $inCaravan()
const;
515 MCAPI
int $getArmorValue()
const;
517 MCAPI
void $hurtArmorSlots(
::ActorDamageSource const& source,
int damage, ::std::bitset<5>
const hurtSlots);
519 MCAPI
void $setDamagedArmor(::SharedTypes::Legacy::ArmorSlot slot,
::ItemStack const& item);
521 MCFOLD
void $sendArmorDamage(::std::bitset<5>
const damagedSlots);
523 MCAPI
void $sendArmor(::std::bitset<5>
const armorSlots);
525 MCAPI ::ArmorMaterialType $getArmorMaterialTypeInSlot(::SharedTypes::Legacy::ArmorSlot slot)
const;
527 MCAPI
int $getArmorTextureIndexInSlot(::SharedTypes::Legacy::ArmorSlot slot)
const;
529 MCAPI
float $getArmorColorInSlot(::SharedTypes::Legacy::ArmorSlot slot,
int channelRGBA)
const;
531 MCAPI ::std::vector<::ItemStack const*> $getAllHandEquipment()
const;
533 MCAPI ::std::vector<::ItemStack const*> $getAllEquipment()
const;
535 MCAPI
int $getDeathTime()
const;
539 MCAPI
void $dropEquipmentOnDeath();
541 MCAPI
void $clearVanishEnchantedItemsOnDeath();
543 MCAPI
void $sendInventory(
bool shouldSelectSlot);
545 MCAPI
void $buildDebugInfo(::std::string& out)
const;
547 MCAPI
float $getInterpolatedBodyRot(
float a)
const;
549 MCAPI
float $getInterpolatedHeadRot(
float a)
const;
551 MCAPI
float $getInterpolatedBodyYaw(
float a)
const;
553 MCAPI
bool $isSurfaceMob()
const;
555 MCAPI
float $getDamageAfterEnchantReduction(
::ActorDamageSource const& source,
float damage)
const;
557 MCAPI
bool $createAIGoals();
559 MCFOLD
void $onBorn(::Actor&, ::Actor&);
561 MCAPI
bool $setItemSlot(::SharedTypes::Legacy::EquipmentSlot slot,
::ItemStack const& item);
563 MCAPI
void $setTransitioningSitting(
bool value);
567 MCAPI
bool $canChangeDimensionsUsingPortal()
const;
570 $teleportTo(
::Vec3 const& pos,
bool shouldStopRiding,
int cause,
int sourceEntityType,
bool keepVelocity);
572 MCFOLD
float $_getWalkTargetValue(
::BlockPos const& pos);
574 MCAPI
bool $canExistWhenDisallowMob()
const;
576 MCAPI
bool $canPowerJump()
const;
578 MCAPI
void $setEquippedSlot(::SharedTypes::Legacy::EquipmentSlot slot,
::ItemStack const& item);
582 MCAPI
bool $canFreeze()
const;
584 MCAPI
void $addAdditionalSaveData(
::CompoundTag& entityTag)
const;
588 MCAPI ::std::unique_ptr<::BodyControl> $initBodyControl();
590 MCAPI
float $causeFallDamageToActor(
float distance,
float multiplier,
::ActorDamageSource source);
592 MCAPI
void $outOfWorld();
594 MCAPI ::ActorHurtResult
597 MCAPI
void $newServerAiStep();
599 MCAPI
void $_doInitialMove();
601 MCAPI ::AABB $_getAdjustedAABBForSpawnCheck(
::AABB const& aabb,
::Vec3 const& mobPos)
const;
609 MCAPI
static void** $vftable();