LeviLamina
Loading...
Searching...
No Matches
Actor.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/math/Color.h"
7#include "mc/deps/core/math/Vec3.h"
8#include "mc/deps/core/string/HashedString.h"
9#include "mc/deps/core/utility/AutomaticID.h"
10#include "mc/deps/core/utility/optional_ref.h"
11#include "mc/deps/ecs/gamerefs_entity/EntityContext.h"
12#include "mc/deps/game_refs/WeakRef.h"
13#include "mc/deps/input/InputMode.h"
14#include "mc/deps/shared_types/legacy/EquipmentSlot.h"
15#include "mc/deps/shared_types/legacy/LevelSoundEvent.h"
16#include "mc/deps/shared_types/legacy/actor/ActorDamageCause.h"
17#include "mc/deps/shared_types/legacy/actor/ActorLocation.h"
18#include "mc/deps/shared_types/legacy/actor/ArmorSlot.h"
19#include "mc/input/NewInteractionModel.h"
20#include "mc/legacy/ActorUniqueID.h"
21#include "mc/server/commands/CommandPermissionLevel.h"
22#include "mc/util/MolangVariableMap.h"
23#include "mc/util/VariantParameterList.h"
24#include "mc/world/actor/ActorCategory.h"
25#include "mc/world/actor/ActorDefinitionPtr.h"
26#include "mc/world/actor/ActorEvent.h"
27#include "mc/world/actor/ActorFlags.h"
28#include "mc/world/actor/ActorInitializationMethod.h"
29#include "mc/world/actor/ActorResetRule.h"
30#include "mc/world/actor/ActorSwingSource.h"
31#include "mc/world/actor/ActorTerrainInterlockData.h"
32#include "mc/world/actor/ActorType.h"
33#include "mc/world/actor/ArmorMaterialType.h"
34#include "mc/world/actor/BuiltInActorComponents.h"
35#include "mc/world/actor/SpawnRuleEnum.h"
36#include "mc/world/actor/SynchedActorDataEntityWrapper.h"
37#include "mc/world/actor/animation/AnimationComponentGroupType.h"
38#include "mc/world/item/HandSlot.h"
39#include "mc/world/item/ItemUseMethod.h"
40#include "mc/world/level/ShapeType.h"
41#include "mc/world/level/material/MaterialType.h"
42
43// auto generated forward declare list
44// clang-format off
45class AABB;
46class ActionEvent;
47class ActionQueue;
53class ActorRuntimeID;
55class Attribute;
58class Block;
59class BlockPos;
60class BlockSource;
62class CompoundTag;
63class DataLoadHelper;
64class Dimension;
66class EntityRegistry;
67class GameEvent;
70class ILevel;
71class IOptionsReader;
72class ItemActor;
73class ItemDescriptor;
74class ItemStack;
75class ItemStackBase;
76class ListTag;
77class LootTable;
78class Matrix;
80class Mob;
81class MobEffect;
83class Packet;
84class Player;
85class Random;
86class RenderParams;
88class RopeSystem;
92class Vec2;
94struct ActorLink;
96struct EquipmentTable;
98namespace Bedrock::Safety { class RedactableString; }
99namespace MovementDataExtractionUtility { class SnapshotAccessor; }
100namespace VehicleUtils { struct VehicleRootInfo; }
101// clang-format on
102
103class Level;
104
105class Actor {
106public:
107 // Actor inner types define
108 using EntityBlockCollisionCallback =
109 ::std::function<void(::BlockSource&, ::Block const&, ::BlockPos const&, ::Actor&)>;
110
111public:
112 LLNDAPI class EntityContext& getEntityContext() { return mEntityContext; }
113 LLNDAPI class EntityContext const& getEntityContext() const { return mEntityContext; }
114
115 LLAPI void refresh();
116
117 LLAPI optional_ref<Actor> clone(Vec3 const& pos, std::optional<DimensionType> dimId = std::nullopt) const;
118
119 LLNDAPI std::string const& getTypeName() const;
120
121 LLNDAPI class Vec3 getFeetPos() const;
122
123 LLNDAPI class Vec3 getHeadPos() const;
124
125 LLNDAPI class BlockPos getFeetBlockPos() const;
126
127 LLNDAPI bool isSimulatedPlayer() const;
128
129 LLNDAPI bool isOnGround() const;
130
131 LLAPI void setOnFire(int time, bool isEffect = true);
132 LLAPI void stopFire();
133
134 LLNDAPI Vec3 getVelocity() const;
135 LLNDAPI float getPosDeltaPerSecLength() const;
136
137 LLAPI bool hurtByCause(
138 float damage,
139 ::SharedTypes::Legacy::ActorDamageCause cause = ::SharedTypes::Legacy::ActorDamageCause::Override,
140 optional_ref<Actor> attacker = std::nullopt
141 );
142
143 LLNDAPI class HitResult traceRay(
144 float tMax = 5.5f,
145 bool includeActor = true,
146 bool includeBlock = true,
147 std::function<bool(class BlockSource const&, class Block const&, bool)> const& blockCheckFunction =
148 [](auto&&...) -> bool { return true; }
149 ) const;
150
151 LLAPI void teleport(class Vec3 const& pos, DimensionType dimId, class Vec2 const& rotation);
152 LLAPI void teleport(class Vec3 const& pos, DimensionType dimId);
153
154 LLAPI void setName(std::string const& name);
155
156 LLNDAPI float evalMolang(std::string const& expression);
157
158 LLNDAPI AABB const& getAABB() const { return mBuiltInComponents->mAABBShapeComponent->mAABB; }
159
160 LLAPI static ::Actor* tryGetFromEntity(::EntityContext& entity, bool includeRemoved);
161
162 [[nodiscard]] Level& getLevel() const { return *reinterpret_cast<Level*>(mLevel); }
163
164 [[nodiscard]] Vec3 const& getPosition() const { return mBuiltInComponents->mStateVectorComponent->mPos; }
165
166 [[nodiscard]] Vec3 const& getPosDelta() const { return mBuiltInComponents->mStateVectorComponent->mPosDelta; }
167
168 [[nodiscard]] Vec2 const& getRotation() const {
169 return mBuiltInComponents->mActorRotationComponent->mRotationDegree;
170 }
171
172 [[nodiscard]] bool hasCategory(ActorCategory category) const { return (mCategories & category) == category; }
173
174 LLNDAPI ::DimensionType getDimensionId() const;
175
176public:
177 // member variables
178 // NOLINTBEGIN
179 ::ll::TypedStorage<8, 24, ::EntityContext> mEntityContext;
180 ::ll::TypedStorage<8, 72, ::VariantParameterList> mInitParams;
181 ::ll::TypedStorage<8, 32, ::std::string> mCustomInitEventName;
182 ::ll::TypedStorage<1, 1, ::ActorInitializationMethod> mInitMethod;
183 ::ll::TypedStorage<1, 1, bool> mForceInitMethodToSpawnOnReload;
184 ::ll::TypedStorage<1, 1, bool> mAdded;
185 ::ll::TypedStorage<8, 8, ::ActorDefinitionGroup*> mDefinitions;
186 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ActorDefinitionDescriptor>> mCurrentDescription;
187 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::RopeSystem>> mLeashRopeSystem;
188 ::ll::TypedStorage<8, 32, ::std::string> mAlias;
189 ::ll::TypedStorage<4, 68, ::std::optional<::glm::mat4x4>> mPreviousRenderTransform;
190 ::ll::TypedStorage<4, 4, int> mLastHurtByPlayerTime;
191 ::ll::TypedStorage<8, 16, ::std::map<::HashedString, ::std::vector<::std::vector<::glm::mat4x4>>>>
192 mPreviousBoneMatrices;
193 ::ll::TypedStorage<8, 48, ::SynchedActorDataEntityWrapper> mEntityData;
194 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SpatialActorNetworkData>> mNetworkData;
195 ::ll::TypedStorage<4, 12, ::Vec3> mSentDelta;
196 ::ll::TypedStorage<4, 4, float> mScale;
197 ::ll::TypedStorage<4, 4, float> mScalePrev;
198 ::ll::TypedStorage<1, 1, bool> mIgnoreLighting;
199 ::ll::TypedStorage<1, 1, bool> mFilterLighting;
200 ::ll::TypedStorage<4, 4, float> mStepSoundVolume;
201 ::ll::TypedStorage<4, 4, float> mStepSoundPitch;
202 ::ll::TypedStorage<8, 8, ::AABB*> mLastHitBB;
203 ::ll::TypedStorage<8, 8, uint64> mNameTagHash;
204 ::ll::TypedStorage<4, 4, float> mShadowOffset;
205 ::ll::TypedStorage<4, 4, float> mPushThrough;
206 ::ll::TypedStorage<4, 4, int> mTickCount;
207 ::ll::TypedStorage<4, 4, int> mInvulnerableTime;
208 ::ll::TypedStorage<4, 4, int> mLastHealth;
209 ::ll::TypedStorage<1, 1, bool> mInvulnerable;
210 ::ll::TypedStorage<4, 4, int> mFlameTexFrameIndex;
211 ::ll::TypedStorage<4, 4, float> mFlameFrameIncrementTime;
212 ::ll::TypedStorage<1, 1, bool> mAlwaysFireImmune;
213 ::ll::TypedStorage<1, 1, bool> mInheritRotationWhenRiding;
214 ::ll::TypedStorage<1, 1, bool> mForcedLoading;
215 ::ll::TypedStorage<1, 1, bool> mForceSendMotionPacket;
216 ::ll::TypedStorage<1, 1, bool> mHighlightedThisFrame;
217 ::ll::TypedStorage<1, 1, bool> mInitialized;
218 ::ll::TypedStorage<1, 1, bool> mProcessedOnChunkDiscard;
219 ::ll::TypedStorage<4, 4, float> mSoundVolume;
220 ::ll::TypedStorage<4, 4, int> mShakeTime;
221 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mLegacyUniqueID;
222 ::ll::TypedStorage<8, 16, ::WeakRef<::Dimension>> mDimension;
223 ::ll::TypedStorage<8, 8, ::ILevel*> mLevel;
224 ::ll::TypedStorage<8, 48, ::HashedString> mActorRendererId;
225 ::ll::TypedStorage<4, 4, ::ActorCategory> mCategories;
226 ::ll::TypedStorage<8, 32, ::BuiltInActorComponents> mBuiltInComponents;
227 ::ll::TypedStorage<8, 48, ::HashedString> mActorRendererIdThatAnimationComponentWasInitializedWith;
228 ::ll::TypedStorage<1, 1, bool> mChanged;
229 ::ll::TypedStorage<1, 1, bool> mRemoved;
230 ::ll::TypedStorage<1, 1, bool> mMovedToLimbo;
231 ::ll::TypedStorage<1, 1, bool> mMovedToUnloadedChunk;
232 ::ll::TypedStorage<1, 1, bool> mBlocksBuilding;
233 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::AnimationComponent>> mAnimationComponent;
234 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::AnimationComponent>> mUIAnimationComponent;
235 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mTargetId;
236 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mInLovePartner;
237 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::CompoundTag>> mPersistingTradeOffers;
238 ::ll::TypedStorage<4, 4, int> mPersistingTradeRiches;
239 ::ll::TypedStorage<1, 1, bool> mPersistingTrade;
240 ::ll::TypedStorage<1, 1, bool> mEffectsDirty;
241 ::ll::TypedStorage<1, 1, bool> mLootDropped;
242 ::ll::TypedStorage<1, 1, bool> mLoadedFromNBTThisFrame;
243 ::ll::TypedStorage<4, 16, ::mce::Color> mHurtColor;
244 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ActorDefinitionDiffList>> mDefinitionList;
245 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::CompoundTag>> mLoadedActorPropertyTag;
246 ::ll::TypedStorage<8, 16, ::ActorDefinitionPtr> mActorDefinitionPtr;
247 ::ll::TypedStorage<8, 32, ::std::string> mFilteredNameTag;
248 ::ll::TypedStorage<8, 24, ::ActorTerrainInterlockData> mTerrainInterlockData;
249 ::ll::TypedStorage<1, 1, bool> mWasHurtThisTick;
250 ::ll::TypedStorage<1, 1, bool> mWasHurtLastTick;
251 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mLastHurtMobId;
252 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mLastHurtByMobId;
253 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mLastHurtByPlayerId;
254 ::ll::TypedStorage<8, 8, uint64> mLastHurtTimestamp;
255 ::ll::TypedStorage<4, 4, ::SharedTypes::Legacy::ActorDamageCause> mLastHurtCause;
256 ::ll::TypedStorage<4, 4, float> mLastHurt;
257 ::ll::TypedStorage<4, 4, int> mLastHurtMobTimestamp;
258 ::ll::TypedStorage<4, 4, int> mLastHurtByMobTime;
259 ::ll::TypedStorage<4, 4, int> mLastHurtByMobTimestamp;
260 ::ll::TypedStorage<1, 1, bool> mIsPredictableProjectile;
261 ::ll::TypedStorage<1, 1, bool> mIsRenderingInUI;
262#ifdef LL_PLAT_C
263 ::ll::TypedStorage<1, 1, bool> mIsOnScreen;
264 ::ll::TypedStorage<1, 1, bool> mUpdateBonesAndEffects;
265#endif
266 ::ll::TypedStorage<1, 1, bool> mUpdateEffects;
267 ::ll::TypedStorage<1, 1, bool> mCanPickupItems;
268 ::ll::TypedStorage<1, 1, bool> mHasSetCanPickupItems;
269 ::ll::TypedStorage<1, 1, bool> mChainedDamageEffects;
270 ::ll::TypedStorage<4, 4, int> mAffectedByWaterBottleTicksToEffect;
271 ::ll::TypedStorage<4, 4, ::SpawnRuleEnum> mSpawnRulesEnum;
272 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ActionQueue>> mActionQueue;
273 ::ll::TypedStorage<8, 56, ::MolangVariableMap> mMolangVariables;
274 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mFishingHookID;
275 // NOLINTEND
276
277public:
278 // prevent constructor by default
279 Actor();
280
281public:
282 // virtual functions
283 // NOLINTBEGIN
284 virtual bool hasComponent(::HashedString const& name) const;
285
286 virtual void outOfWorld();
287
288 virtual void reloadHardcoded(::ActorInitializationMethod, ::VariantParameterList const&);
289
290 virtual void reloadHardcodedClient(::ActorInitializationMethod);
291
292 virtual void initializeComponents(::ActorInitializationMethod method, ::VariantParameterList const&);
293
294 virtual void reloadComponents(::ActorInitializationMethod, ::VariantParameterList const&);
295
296 virtual void _serverInitItemStackIds();
297
298 virtual void _doInitialMove();
299
300 virtual ~Actor();
301
302 virtual void resetUserPos(::ActorResetRule);
303
304 virtual ::ActorType getOwnerEntityType();
305
306 virtual void remove();
307
308 virtual ::Vec3 getFiringPos() const;
309
310 virtual float getInterpolatedBodyRot(float a = 0.0f) const;
311
312 virtual float getInterpolatedHeadRot(float = 0.0f) const;
313
314 virtual float getInterpolatedBodyYaw(float = 0.0f) const;
315
316 virtual float getYawSpeedInDegreesPerSecond() const;
317
318 virtual ::Vec3 getInterpolatedRidingOffset(float, int const) const;
319
320 virtual bool isFireImmune() const;
321
322 virtual void blockedByShield(::ActorDamageSource const& source, ::Actor& blocker);
323
324 virtual bool canDisableShield();
325
326 virtual void teleportTo(::Vec3 const& pos, bool shouldStopRiding, int, int, bool keepVelocity);
327
328 virtual void lerpMotion(::Vec3 const& delta);
329
330 virtual ::std::unique_ptr<::Packet> tryCreateAddActorPacket();
331
332 virtual void normalTick();
333
334 virtual void baseTick();
335
336 virtual void passengerTick();
337
338 virtual bool startRiding(::Actor& vehicle, bool forceRiding);
339
340 virtual void addPassenger(::Actor& passenger);
341
342 virtual ::std::string getExitTip(::std::string const& kind, ::InputMode mode, ::NewInteractionModel scheme) const;
343
344 virtual ::std::string getEntityLocNameString() const;
345
346 virtual bool isInvisible() const;
347
348 virtual bool canShowNameTag() const;
349
350 virtual ::std::string getFormattedNameTag() const;
351
352 virtual ::mce::Color getNameTagTextColor() const;
353
354 virtual float getShadowRadius() const;
355
356 virtual ::Vec3 getHeadLookVector(float a = 0.0f) const;
357
358 virtual bool canInteractWithOtherEntitiesInGame() const;
359
360 virtual float getBrightness(float a, ::IConstBlockSource const& region) const;
361
362 virtual void playerTouch(::Player&);
363
364 virtual bool isImmobile() const;
365
366 virtual bool isSilentObserver() const;
367
368 virtual bool isSleeping() const;
369
370 virtual void setSleeping(bool);
371
372 virtual void setSneaking(bool value);
373
374 virtual bool isBlocking() const;
375
376 virtual bool isDamageBlocked(::ActorDamageSource const&) const;
377
378 virtual bool isAlive() const;
379
380 virtual bool isOnFire() const;
381
382 virtual bool isSurfaceMob() const;
383
384 virtual bool isTargetable() const;
385
386 virtual void setTarget(::Actor* entity);
387
388 virtual bool isValidTarget(::Actor*) const;
389
390 virtual bool attack(::Actor& target, ::SharedTypes::Legacy::ActorDamageCause const&);
391
392 virtual void performRangedAttack(::Actor& target, float);
393
394 virtual void setOwner(::ActorUniqueID const ownerId);
395
396 virtual void setSitting(bool value);
397
398 virtual void onTame();
399
400 virtual void onFailedTame();
401
402 virtual void setStanding(bool value);
403
404 virtual bool canPowerJump() const;
405
406 virtual bool isEnchanted() const;
407
408 virtual void playAmbientSound();
409
410 virtual ::SharedTypes::Legacy::LevelSoundEvent getAmbientSound() const;
411
412 virtual bool isInvulnerableTo(::ActorDamageSource const& source) const;
413
414 virtual ::SharedTypes::Legacy::ActorDamageCause getBlockDamageCause(::Block const& block) const;
415
416 virtual bool doFireHurt(int amount);
417
418 virtual void onLightningHit();
419
420 virtual void feed(int itemId);
421
422 virtual void handleEntityEvent(::ActorEvent eventId, int data);
423
424 virtual ::HashedString const& getActorRendererId() const;
425
426 virtual void despawn();
427
428 virtual void setArmor(::SharedTypes::Legacy::ArmorSlot slot, ::ItemStack const& item);
429
430 virtual ::ArmorMaterialType getArmorMaterialTypeInSlot(::SharedTypes::Legacy::ArmorSlot) const;
431
432 virtual int getArmorTextureIndexInSlot(::SharedTypes::Legacy::ArmorSlot) const;
433
434 virtual float getArmorColorInSlot(::SharedTypes::Legacy::ArmorSlot, int) const;
435
436 virtual void setEquippedSlot(::SharedTypes::Legacy::EquipmentSlot, ::ItemStack const&);
437
438 virtual void setCarriedItem(::ItemStack const& item);
439
440 virtual ::ItemStack const& getCarriedItem() const;
441
442 virtual void setOffhandSlot(::ItemStack const& item);
443
444 virtual ::ItemStack const& getEquippedTotem() const;
445
446 virtual bool consumeTotem();
447
448 virtual bool load(::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper);
449
450 virtual ::HashedString const& queryEntityRenderer() const;
451
452 virtual ::ActorUniqueID getSourceUniqueID() const;
453
454 virtual bool canFreeze() const;
455
456 virtual ::AABB getLiquidAABB(::MaterialType const liquidType) const;
457
458 virtual void handleInsidePortal(::BlockPos const& portalPos);
459
460 virtual bool canChangeDimensionsUsingPortal() const;
461
462 virtual void changeDimension(::DimensionType toId);
463
464 virtual void changeDimension(::ChangeDimensionPacket const&);
465
466 virtual ::ActorUniqueID getControllingPlayer() const;
467
468 virtual float causeFallDamageToActor(float, float, ::ActorDamageSource);
469
470 virtual void onSynchedDataUpdate(int dataId);
471
472 virtual bool canAddPassenger(::Actor& passenger) const;
473
474 virtual bool canPickupItem(::ItemStack const&) const;
475
476 virtual bool canBePulledIntoVehicle() const;
477
478 virtual bool inCaravan() const;
479
480 virtual void sendMotionPacketIfNeeded();
481
482 virtual bool canSynchronizeNewEntity() const;
483
484 virtual void startSwimming();
485
486 virtual void stopSwimming();
487
488 virtual void buildDebugInfo(::std::string&) const;
489
490 virtual ::CommandPermissionLevel getCommandPermissionLevel() const;
491
492 virtual int getDeathTime() const;
493
494 virtual bool canBeAffected(uint id) const;
495
496 virtual bool canBeAffectedByArrow(::MobEffectInstance const& effect) const;
497
498 virtual void onEffectRemoved(::MobEffectInstance& effect);
499
500 virtual bool canObstructSpawningAndBlockPlacement() const;
501
502 virtual ::AnimationComponent& getAnimationComponent();
503
504 virtual void openContainerComponent(::Player& player);
505
506 virtual bool swing(::ActorSwingSource);
507
508 virtual void useItem(::ItemStackBase& item, ::ItemUseMethod itemUseMethod, bool consumeItem);
509
510 virtual void getDebugText(::std::vector<::std::string>& outputInfo);
511
512 virtual float getMapDecorationRotation() const;
513
514 virtual float getPassengerYRotation(::Actor const& passenger) const;
515
516 virtual bool add(::ItemStack& item);
517
518 virtual bool drop(::ItemStack const& item, bool const randomly);
519
520 virtual bool getInteraction(::Player& player, ::ActorInteraction& interaction, ::Vec3 const&);
521
522 virtual bool canDestroyBlock(::Block const&) const;
523
524 virtual void setAuxValue(int);
525
526 virtual void renderDebugServerState(::IOptionsReader const&);
527
528 virtual void kill();
529
530 virtual void die(::ActorDamageSource const& source);
531
532 virtual bool shouldDropDeathLoot() const;
533
534 virtual void applySnapshot(
535 ::EntityContext const& snapshotEntity,
536 ::MovementDataExtractionUtility::SnapshotAccessor const& originalSnapshotEntity
537 );
538
539 virtual void onPush(::Actor&);
540
541 virtual ::std::optional<::BlockPos> getLastDeathPos() const;
542
543 virtual ::std::optional<::DimensionType> getLastDeathDimension() const;
544
545 virtual bool hasDiedBefore() const;
546
547 virtual void doEnterWaterSplashEffect();
548
549 virtual void doExitWaterSplashEffect();
550
551 virtual void doWaterSplashEffect();
552
553 virtual bool _shouldProvideFeedbackOnHandContainerItemSet(::HandSlot handSlot, ::ItemStack const& item) const;
554
555 virtual bool _shouldProvideFeedbackOnArmorSet(::SharedTypes::Legacy::ArmorSlot slot, ::ItemStack const& item) const;
556
557 virtual bool _hurt(::ActorDamageSource const& source, float damage, bool, bool);
558
559 virtual void readAdditionalSaveData(::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper);
560
561 virtual void addAdditionalSaveData(::CompoundTag& tag) const;
562 // NOLINTEND
563
564public:
565 // member functions
566 // NOLINTBEGIN
567 MCAPI Actor(::ILevel& level, ::EntityContext& entityContext);
568
569 MCAPI Actor(
570 ::ActorDefinitionGroup* definitions,
571 ::ActorDefinitionIdentifier const& definitionName,
572 ::EntityContext& entityContext
573 );
574
575 MCAPI ::BuiltInActorComponents _addActorBuiltInComponents();
576
577 MCAPI void _addActorNonBuiltInComponents();
578
579 MCAPI ::ItemActor const* _drop(::ItemStack const& item, bool randomly);
580
581 MCFOLD ::std::vector<::MobEffectInstance>& _getAllEffectsNonConst();
582
583 MCAPI ::AnimationComponent& _getAnimationComponent(
584 ::std::shared_ptr<::AnimationComponent>& animationComponent,
585 ::AnimationComponentGroupType group
586 );
587
588 MCAPI void _initializeLeashRopeSystem(::Actor* holder);
589
590 MCAPI bool _isHeadInWater() const;
591
592 MCAPI bool _isItemStackNetManagerEnabled() const;
593
594 MCAPI void _sendDirtyActorData();
595
596 MCAPI void _serializeComponents(::CompoundTag& tag) const;
597
598 MCAPI void _setActorTypeId(::ActorType type);
599
600 MCAPI void _setDimensionTransitionComponent(::DimensionType fromId, ::DimensionType toId, int portalCooldown);
601
602 MCAPI void _setHandContainerItem(::ItemStack const& item, ::HandSlot handSlot);
603
604 MCAPI void _setHeightOffset(float heightOffset);
605
606 MCAPI void _setupServerAnimationComponent();
607
608 MCAPI void _syncTickCountIfAnimationComponentShared();
609
610 MCAPI void _tryPlantWitherRose();
611
612 MCAPI void _updateComposition(bool reload);
613
614 MCAPI void addEffect(::MobEffectInstance const& effect);
615
616 MCAPI bool addTag(::std::string const& tag);
617
618 MCAPI void applyImpulse(::Vec3 const& impulse);
619
620 MCAPI void buildDebugGroupInfo(::std::string& out) const;
621
622 MCAPI void burn(int damage, bool inFire);
623
624 MCAPI bool canAttack(::Actor const& entity) const;
625
626 MCAPI bool canBeginOrContinueClimbingLadder() const;
627
628 MCAPI bool canCurrentlySwim() const;
629
630 MCAPI bool canFly() const;
631
632 MCAPI bool canMate(::Actor const& partner) const;
633
634 MCAPI bool canReceiveMobEffectsFromGameplay() const;
635
636 MCAPI bool canSee(::Actor const& target, ::ShapeType obstructionType) const;
637
638 MCAPI bool canSee(::Vec3 const& targetPos, ::ShapeType obstructionType) const;
639
640 MCAPI bool canSeeDaylight() const;
641
642 MCAPI void celebrateHunt(int duration, bool special);
643
644 MCAPI void checkFallDamage(float ya, bool onGround, bool recheckLiquid);
645
646 MCAPI void chorusFruitTeleport(::Vec3 const& range);
647
648 MCAPI bool closerThan(::Actor const& e, float distanceXZ, float distanceY) const;
649
650 MCAPI void consumeItem(::ItemActor& itemActor, int count);
651
652 MCAPI ::UpdateEquipPacket createUpdateEquipPacket(int containerID);
653
654 MCAPI void dropTowards(::ItemStack const& item, ::Vec3 towards);
655
656 MCAPI void equip(::EquipmentTable const& equipmentTable);
657
658 MCAPI void equip(::std::string const& lootTableFilePath);
659
660 MCAPI void equipFromEquipmentDefinition();
661
662 MCAPI float evaluateSeatRotation(::RideableComponent const& rideable, bool useVehicleRenderParams);
663
664 MCAPI void exitVehicle(bool exitFromPassenger, bool actorIsBeingDestroyed, bool wasEjectedByActivatorRail);
665
666 MCAPI ::std::vector<::DistanceSortedActor> fetchNearbyActorsSorted(::Vec3 const& distance, ::ActorType actorTypeId);
667
668 MCAPI ::ActorDefinitionIdentifier const& getActorIdentifier() const;
669
670 MCAPI_C ::Matrix getActorToWorldTransform(float frameAlpha, bool useActorRotation, ::Vec3 const& offset) const;
671
672 MCFOLD_C ::std::vector<::MobEffectInstance> const& getAllEffects() const;
673
674 MCAPI ::ItemStack const& getArmor(::SharedTypes::Legacy::ArmorSlot slot) const;
675
676 MCAPI ::Vec3 getAttachPos(::SharedTypes::Legacy::ActorLocation location) const;
677
678 MCAPI ::Vec3 getAttachPos(::SharedTypes::Legacy::ActorLocation location, float alpha) const;
679
680 MCAPI ::AttributeInstanceConstRef getAttribute(::Attribute const& attribute) const;
681
682 MCAPI ::gsl::not_null<::BaseAttributeMap const*> getAttributes() const;
683
684 MCAPI ::BlockPos getBlockPosCurrentlyStandingOn(::Actor const* actor) const;
685
686 MCAPI float getBrightness(float a = 0.0f) const;
687
688 MCAPI ::ItemStack const& getCarriedItemInSlotPreferredBy(::ItemStack const& item) const;
689
690 MCAPI int getChestSlots() const;
691
692 MCAPI float getCurrentSwimAmount() const;
693
694 MCAPI bool getDamageNearbyMobs() const;
695
696 MCFOLD ::Dimension& getDimension() const;
697
698 MCFOLD ::BlockSource& getDimensionBlockSource() const;
699
700 MCFOLD ::BlockSource const& getDimensionBlockSourceConst() const;
701
702 MCFOLD ::Dimension const& getDimensionConst() const;
703
704 MCAPI ::MobEffectInstance const* getEffect(::MobEffect const& effect) const;
705
706 MCAPI ::ActorType getEntityTypeId() const;
707
708 MCAPI int getEquipSlots() const;
709
710 MCAPI ::SharedTypes::Legacy::EquipmentSlot getEquipmentSlotForItem(::ItemStack const& item) const;
711
712 MCAPI ::ItemStack const& getEquippedSlot(::SharedTypes::Legacy::EquipmentSlot slot) const;
713
714 MCAPI ::Vec3 getEyePos() const;
715
716 MCAPI float getFallDistance() const;
717
718 MCAPI ::Actor* getFirstPassenger() const;
719
720 MCAPI int getHealth() const;
721
722 MCAPI ::Vec3 getInterpolatedPosition(float a = 0.0f) const;
723
724 MCAPI ::Vec3 getInterpolatedRidingPosition(float a = 0.0f) const;
725
726 MCAPI_C ::Vec2 getInterpolatedRotation(float a) const;
727
728 MCAPI bool getIsExperienceDropEnabled() const;
729
730 MCAPI ::Mob* getLastHurtByMob();
731
732 MCAPI ::Player* getLastHurtByPlayer();
733
734 MCAPI ::ActorUniqueID getLeashHolder() const;
735
736 MCAPI ::std::vector<::ActorLink> getLinks() const;
737
738 MCAPI ::LootTable* getLootTable();
739
740 MCAPI int getMarkVariant() const;
741
742 MCAPI int getMaxHealth() const;
743
744 MCAPI_C int64 getMetadataId() const;
745
746 MCAPI ::std::string const& getNameTag() const;
747
748 MCAPI ::ItemStack const& getOffhandSlot() const;
749
750 MCAPI int getOnDeathExperience();
751
752 MCAPI ::DynamicProperties& getOrAddDynamicProperties();
753
754 MCAPI ::ActorUniqueID const& getOrCreateUniqueID() const;
755
756 MCAPI ::Mob* getOwner() const;
757
758 MCFOLD ::ActorUniqueID const getOwnerId() const;
759
760 MCAPI int getPassengerIndex(::Actor const& passenger) const;
761
762 MCAPI ::std::unique_ptr<::CompoundTag> getPersistingTradeOffers();
763
764 MCAPI ::Player* getPlayerOwner() const;
765
766 MCAPI ::Random& getRandom() const;
767
768 MCAPI ::Bedrock::Safety::RedactableString getRedactableNameTag() const;
769
770 MCAPI float getRidingHeight() const;
771
772 MCAPI ::ActorRuntimeID getRuntimeID() const;
773
774 MCAPI float getSpeedInMetersPerSecond() const;
775
776 MCAPI bool getStatusFlag(::ActorFlags flag) const;
777
778 MCAPI int getStrength() const;
779
780 MCAPI int getStructuralIntegrity() const;
781
782 MCAPI float getSwimAmount(float a) const;
783
784 MCAPI ::Actor* getTarget() const;
785
786 MCAPI ::MerchantRecipeList* getTradeOffers();
787
788 MCAPI ::Player* getTradingPlayer() const;
789
790 MCFOLD int getVariant() const;
791
792 MCAPI ::Actor* getVehicle() const;
793
794 MCAPI ::VehicleUtils::VehicleRootInfo getVehicleRoot() const;
795
796 MCFOLD ::Vec3 getViewVector(float a = 0.0f) const;
797
798 MCAPI_C ::Vec2 getViewVector2(float a) const;
799
800 MCAPI ::WeakRef<::EntityContext> const getWeakEntity() const;
801
802 MCAPI_C ::InterpolationPair getYHeadRotationsNewOld() const;
803
804 MCAPI void handleFallDamage(float fallDistance, float multiplier, ::ActorDamageSource source);
805
806 MCAPI void handleLeftoverFallDamage(float damage, ::ActorDamageSource source);
807
808 MCAPI bool hasDimension() const;
809
810 MCAPI bool hasEffect(::MobEffect const& effect) const;
811
812 MCAPI bool hasFamily(::HashedString const& family) const;
813
814 MCAPI_C bool hasPassenger() const;
815
816 MCAPI bool hasPlayerPassenger() const;
817
818 MCAPI bool hasRuntimeID() const;
819
820 MCAPI bool hasSaddle() const;
821
822 MCAPI bool hasTag(::std::string const& tag) const;
823
824 MCAPI bool hasType(::ActorType types) const;
825
826 MCAPI void heal(int heal);
827
828 MCAPI bool hurt(::ActorDamageSource const& source, float damage, bool knock, bool ignite);
829
830 MCAPI bool inDownwardFlowingLiquid() const;
831
832 MCAPI void initParams(::RenderParams& params);
833
834 MCAPI_C bool
835 isActorLocationInMaterial(::SharedTypes::Legacy::ActorLocation actorLocation, ::MaterialType type) const;
836
837 MCAPI bool isAdventure() const;
838
839 MCAPI bool isAttackableGamemode() const;
840
841 MCAPI bool isAutonomous() const;
842
843 MCAPI bool isBaby() const;
844
845 MCAPI bool isChested() const;
846
847 MCAPI bool isClientSide() const;
848
849 MCAPI bool isCreative() const;
850
851 MCAPI bool isDead() const;
852
853 MCAPI bool isDoorOpener() const;
854
855 MCAPI bool isGlobal() const;
856
857 MCAPI bool isInClouds() const;
858
859 MCAPI bool isInLava() const;
860
861 MCAPI bool isInLove() const;
862
863 MCAPI bool isInPrecipitation() const;
864
865 MCAPI bool isInRain() const;
866
867 MCAPI bool isInSnow() const;
868
869 MCAPI bool isInThunderstorm() const;
870
871 MCAPI bool isInWater() const;
872
873 MCAPI bool isInWaterOrRain() const;
874
875 MCAPI bool isInWorld() const;
876
877 MCAPI bool isInvertedHealAndHarm() const;
878
879 MCAPI bool isJumping() const;
880
881 MCAPI bool isLeashed() const;
882
883 MCFOLD bool isLocalPlayer() const;
884
885 MCAPI bool isOverWater() const;
886
887 MCAPI bool isPassenger(::Actor const& passenger) const;
888
889 MCAPI bool isPersistent() const;
890
891 MCFOLD bool isPlayer() const;
892
893 MCAPI bool isPowered() const;
894
895 MCAPI bool isRemotePlayer() const;
896
897 MCAPI bool isRiding() const;
898
899 MCAPI bool isRiding(::Actor* targetVehicle) const;
900
901 MCAPI bool isSilent() const;
902
903 MCAPI bool isSitting() const;
904
905 MCAPI bool isSneaking() const;
906
907 MCAPI bool isSpectator() const;
908
909 MCAPI bool isSurvival() const;
910
911 MCAPI bool isSwimming() const;
912
913 MCAPI bool isTame() const;
914
915 MCAPI bool isTickingEntity() const;
916
917 MCAPI bool isTouchingDamageBlock() const;
918
919 MCAPI bool isTrading() const;
920
921 MCAPI bool isType(::ActorType type) const;
922
923 MCAPI bool isUnderLiquid(::MaterialType type) const;
924
925 MCAPI bool isWearingLeatherArmor() const;
926
927 MCAPI bool isWorldBuilder() const;
928
929 MCAPI void killed(::Actor& entity);
930
931 MCAPI void lerpTo(::Vec3 const& pos, ::Vec2 const& rot, int steps);
932
933 MCAPI void loadEntityFlags(::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper);
934
935 MCAPI void
936 loadLinks(::CompoundTag const& entityTag, ::std::vector<::ActorLink>& links, ::DataLoadHelper& dataLoadHelper);
937
938 MCAPI void move(::Vec3 const& posDelta);
939
940 MCAPI void moveTo(::Vec3 const& pos, ::Vec2 const& rot);
941
942 MCAPI bool onClimbableBlock() const;
943
944 MCAPI void onEffectAdded(::MobEffectInstance& effect);
945
946 MCAPI void onEffectUpdated(::MobEffectInstance& effect);
947
948 MCAPI_C void onSynchedFlagUpdate(::std::bitset<127> const& changedFlags);
949
950 MCAPI void pickUpItem(::ItemActor& itemActor, int count);
951
952 MCAPI void playSound(::SharedTypes::Legacy::LevelSoundEvent type, ::Vec3 const& pos, int data);
953
954 MCAPI void playSound(
955 ::IConstBlockSource const& region,
956 ::SharedTypes::Legacy::LevelSoundEvent type,
957 ::Vec3 const& pos,
958 int data
959 );
960
961 MCAPI void
962 playSynchronizedSound(::SharedTypes::Legacy::LevelSoundEvent type, ::Vec3 const& pos, int data, bool isGlobal);
963
964 MCAPI_C void positionAllPassengers();
965
966 MCAPI void positionPassenger(::Actor& passenger);
967
968 MCAPI void postGameEvent(::GameEvent const& gameEvent, ::Vec3 const& originPos, ::Block const* affectedBlock);
969
970 MCAPI void postSplashGameEvent();
971
972 MCAPI void pushBackActionEventToActionQueue(::ActionEvent actionEvent);
973
974 MCAPI void pushOutOfBlocks(::Vec3 const& vec);
975
976 MCAPI void refreshComponents();
977
978 MCAPI void reload();
979
980 MCAPI void removeAllEffects();
981
982 MCAPI void removeAllPassengers(bool actorIsBeingDestroyed, bool exitFromPassenger);
983
984 MCAPI void removeEffect(int effectId);
985
986 MCAPI bool removeTag(::std::string const& tag);
987
988 MCAPI bool save(::CompoundTag& entityTag) const;
989
990 MCAPI void saveEntityFlags(::CompoundTag& entityTag) const;
991
992 MCAPI ::std::unique_ptr<::ListTag> saveLinks() const;
993
994 MCAPI void savePersistingTrade(::std::unique_ptr<::CompoundTag> offersTag, int riches);
995
996 MCAPI void saveWithoutId(::CompoundTag& entityTag) const;
997
998 MCAPI void sendActorDefinitionEventTriggered(::std::string const& event);
999
1000 MCAPI void serializationSetHealth(int newHealth);
1001
1002 MCAPI void setActorRendererId(::HashedString actorRendererId);
1003
1004 MCAPI void setAutonomous(bool g);
1005
1006 MCAPI void setBaseDefinition(::ActorDefinitionIdentifier const& sourceId, bool clearDefs, bool update);
1007
1008 MCAPI void setBlockTarget(::BlockPos const& target);
1009
1010 MCAPI void setBreakingObstruction(bool breaking);
1011
1012 MCAPI void setDead(bool isDead);
1013
1014 MCAPI void setDimension(::WeakRef<::Dimension> weakDimension);
1015
1016 MCAPI void setInLove(::Actor* lovePartner);
1017
1018 MCAPI void setInvisible(bool value);
1019
1020 MCAPI void setLastHurtByMob(::Mob* mob);
1021
1022 MCAPI void setLastHurtByPlayer(::Player* player);
1023
1024 MCAPI void setLastHurtMob(::Mob const& target);
1025
1026 MCAPI void setLeashHolder(::ActorUniqueID leashHolder);
1027
1028 MCAPI void setLimitedLifetimeTicks(int lifetimeTicks);
1029
1030 MCAPI void setMarkVariant(int value);
1031
1032 MCAPI void setNameTag(::std::string const& name);
1033
1034 MCAPI void setNameTagVisible(bool visible);
1035
1036 MCAPI void setPersistent();
1037
1038 MCAPI void setPos(::Vec3 const& pos);
1039
1040 MCAPI void setPrevPosRotSetThisTick(bool value);
1041
1042 MCAPI void setRedactableNameTag(::Bedrock::Safety::RedactableString const& name);
1043
1044 MCAPI_C void setRuntimeID(::ActorRuntimeID id);
1045
1046 MCAPI void setSaddle(bool saddled);
1047
1048 MCAPI void setSkinID(int value);
1049
1050 MCAPI void setStatusFlag(::ActorFlags flag, bool value);
1051
1052 MCAPI void setStrength(int strength);
1053
1054 MCAPI void setStrengthMax(int strength);
1055
1056 MCAPI void setStructuralIntegrity(int damage);
1057
1058 MCAPI void setTradingPlayer(::Player* player);
1059
1060 MCAPI_C void setUIRendering(bool isInUI);
1061
1062 MCAPI_C void setUniqueID(::ActorUniqueID id);
1063
1064 MCFOLD void setVariant(int value);
1065
1066 MCAPI void setYHeadRotations(float yHeadRot, float oldYHeadRot);
1067
1068 MCAPI bool shouldOrphan(::BlockSource& source);
1069
1070 MCAPI bool shouldRender() const;
1071
1072 MCAPI ::ItemActor* spawnAtLocation(::ItemStack const& item, float yOffs);
1073
1074 MCAPI void spawnEatParticles(::ItemStack const& itemInUse, int count);
1075
1076 MCAPI void spawnTrailBubbles();
1077
1078 MCAPI void
1079 stopRiding(bool exitFromPassenger, bool actorIsBeingDestroyed, bool switchingVehicles, bool isBeingTeleported);
1080
1081 MCAPI void synchronousSetSize(float w, float h);
1082
1083 MCAPI void teleportPassengersTo(::Vec3 const& pos, int cause, int entityType);
1084
1085 MCAPI bool tick(::BlockSource& region);
1086
1087 MCAPI void tickBlockDamage();
1088
1089 MCAPI void tickLeash();
1090
1091 MCAPI void triggerActorRemovedEvent();
1092
1093 MCAPI ::std::optional<int> tryGetEquippableSlotForItem(::ItemDescriptor item) const;
1094
1095 MCAPI bool tryTeleportTo(::Vec3 const& pos, bool landOnBlock, bool avoidLiquid, int cause, int entityType);
1096
1097 MCAPI void updateDescription();
1098
1099 MCAPI void updateInsideBlock();
1100
1101 MCAPI void updateInvisibilityStatus();
1102
1103 MCAPI void updateTickingData();
1104
1105 MCAPI void wobble();
1106 // NOLINTEND
1107
1108public:
1109 // static functions
1110 // NOLINTBEGIN
1111 MCAPI static void _moveRelative(::Vec3& posDelta, float yRotDegrees, float xa, float ya, float za, float speed);
1112
1113 MCAPI static ::BlockPos getBlockPosCurrentlyStandingOn(
1114 ::Vec3 const& pos,
1115 ::AABB const& aabb,
1116 ::IConstBlockSource const& region,
1117 float ignoreGapBelow,
1119 );
1120
1121 MCAPI static ::std::vector<::BlockPos> getBlocksCurrentlyStandingOn(
1122 ::AABB const& aabb,
1123 ::IConstBlockSource const& region,
1124 float ignoreGapBelow,
1126 );
1127
1128 MCAPI static ::MobEffectInstance const*
1129 getEffect(::std::vector<::MobEffectInstance> const& effects, ::MobEffect const& effect);
1130
1131 MCAPI static ::Vec2 getInterpolatedRotation(::Vec2 const& prevRot, ::Vec2 const& rot, float a);
1132
1133 MCAPI static ::AABB getLiquidAABB(::AABB const& aabb, ::MaterialType liquidType);
1134
1135 MCAPI static ::Vec3 getViewVector(::Vec2 const& prevRot, ::Vec2 const& rot, float a);
1136
1137 MCAPI static bool isImmobile(::EntityContext const& entity);
1138
1139 MCAPI static ::Actor*
1140 tryGetFromEntity(::StrictEntityContext const& entity, ::EntityRegistry& registry, bool includeRemoved);
1141 // NOLINTEND
1142
1143public:
1144 // constructor thunks
1145 // NOLINTBEGIN
1146 MCAPI void* $ctor(::ILevel& level, ::EntityContext& entityContext);
1147
1148 MCAPI void* $ctor(
1149 ::ActorDefinitionGroup* definitions,
1150 ::ActorDefinitionIdentifier const& definitionName,
1151 ::EntityContext& entityContext
1152 );
1153 // NOLINTEND
1154
1155public:
1156 // destructor thunk
1157 // NOLINTBEGIN
1158 MCAPI void $dtor();
1159 // NOLINTEND
1160
1161public:
1162 // virtual function thunks
1163 // NOLINTBEGIN
1164 MCAPI bool $hasComponent(::HashedString const& name) const;
1165
1166 MCAPI void $outOfWorld();
1167
1168 MCFOLD void $reloadHardcoded(::ActorInitializationMethod, ::VariantParameterList const&);
1169
1170 MCFOLD void $reloadHardcodedClient(::ActorInitializationMethod);
1171
1172 MCAPI void $initializeComponents(::ActorInitializationMethod method, ::VariantParameterList const&);
1173
1174 MCAPI void $reloadComponents(::ActorInitializationMethod, ::VariantParameterList const&);
1175
1176 MCAPI void $_serverInitItemStackIds();
1177
1178 MCAPI void $_doInitialMove();
1179
1180 MCFOLD void $resetUserPos(::ActorResetRule);
1181
1182 MCAPI ::ActorType $getOwnerEntityType();
1183
1184 MCAPI void $remove();
1185
1186 MCAPI ::Vec3 $getFiringPos() const;
1187
1188 MCAPI float $getInterpolatedBodyRot(float a) const;
1189
1190 MCFOLD float $getInterpolatedHeadRot(float) const;
1191
1192 MCFOLD float $getInterpolatedBodyYaw(float) const;
1193
1194 MCAPI float $getYawSpeedInDegreesPerSecond() const;
1195
1196 MCFOLD ::Vec3 $getInterpolatedRidingOffset(float, int const) const;
1197
1198 MCAPI bool $isFireImmune() const;
1199
1200 MCAPI void $blockedByShield(::ActorDamageSource const& source, ::Actor& blocker);
1201
1202 MCAPI bool $canDisableShield();
1203
1204 MCAPI void $teleportTo(::Vec3 const& pos, bool shouldStopRiding, int, int, bool keepVelocity);
1205
1206 MCAPI void $lerpMotion(::Vec3 const& delta);
1207
1208 MCAPI ::std::unique_ptr<::Packet> $tryCreateAddActorPacket();
1209
1210 MCAPI void $normalTick();
1211
1212 MCAPI void $baseTick();
1213
1214 MCAPI void $passengerTick();
1215
1216 MCAPI bool $startRiding(::Actor& vehicle, bool forceRiding);
1217
1218 MCAPI void $addPassenger(::Actor& passenger);
1219
1220#ifdef LL_PLAT_S
1221 MCAPI ::std::string $getExitTip(::std::string const& kind, ::InputMode mode, ::NewInteractionModel scheme) const;
1222#endif
1223
1224 MCAPI ::std::string $getEntityLocNameString() const;
1225
1226 MCAPI bool $isInvisible() const;
1227
1228 MCAPI bool $canShowNameTag() const;
1229
1230 MCAPI ::std::string $getFormattedNameTag() const;
1231
1232 MCFOLD ::mce::Color $getNameTagTextColor() const;
1233
1234 MCAPI float $getShadowRadius() const;
1235
1236 MCFOLD ::Vec3 $getHeadLookVector(float a) const;
1237
1238 MCFOLD bool $canInteractWithOtherEntitiesInGame() const;
1239
1240 MCAPI float $getBrightness(float a, ::IConstBlockSource const& region) const;
1241
1242 MCFOLD void $playerTouch(::Player&);
1243
1244 MCFOLD bool $isImmobile() const;
1245
1246 MCAPI bool $isSilentObserver() const;
1247
1248 MCFOLD bool $isSleeping() const;
1249
1250 MCFOLD void $setSleeping(bool);
1251
1252 MCAPI void $setSneaking(bool value);
1253
1254 MCFOLD bool $isBlocking() const;
1255
1256 MCFOLD bool $isDamageBlocked(::ActorDamageSource const&) const;
1257
1258 MCFOLD bool $isAlive() const;
1259
1260 MCFOLD bool $isOnFire() const;
1261
1262 MCFOLD bool $isSurfaceMob() const;
1263
1264 MCFOLD bool $isTargetable() const;
1265
1266 MCAPI void $setTarget(::Actor* entity);
1267
1268 MCFOLD bool $isValidTarget(::Actor*) const;
1269
1270#ifdef LL_PLAT_S
1271 MCAPI bool $attack(::Actor& target, ::SharedTypes::Legacy::ActorDamageCause const&);
1272#endif
1273
1274 MCAPI void $performRangedAttack(::Actor& target, float);
1275
1276 MCAPI void $setOwner(::ActorUniqueID const ownerId);
1277
1278 MCFOLD void $setSitting(bool value);
1279
1280 MCFOLD void $onTame();
1281
1282 MCFOLD void $onFailedTame();
1283
1284 MCAPI void $setStanding(bool value);
1285
1286 MCAPI bool $canPowerJump() const;
1287
1288 MCAPI bool $isEnchanted() const;
1289
1290 MCAPI void $playAmbientSound();
1291
1292 MCAPI ::SharedTypes::Legacy::LevelSoundEvent $getAmbientSound() const;
1293
1294 MCAPI bool $isInvulnerableTo(::ActorDamageSource const& source) const;
1295
1296#ifdef LL_PLAT_S
1297 MCAPI ::SharedTypes::Legacy::ActorDamageCause $getBlockDamageCause(::Block const& block) const;
1298#endif
1299
1300 MCAPI bool $doFireHurt(int amount);
1301
1302 MCAPI void $onLightningHit();
1303
1304 MCAPI void $feed(int itemId);
1305
1306 MCAPI void $handleEntityEvent(::ActorEvent eventId, int data);
1307
1308 MCFOLD ::HashedString const& $getActorRendererId() const;
1309
1310 MCAPI void $despawn();
1311
1312 MCAPI void $setArmor(::SharedTypes::Legacy::ArmorSlot slot, ::ItemStack const& item);
1313
1314 MCFOLD ::ArmorMaterialType $getArmorMaterialTypeInSlot(::SharedTypes::Legacy::ArmorSlot) const;
1315
1316 MCFOLD int $getArmorTextureIndexInSlot(::SharedTypes::Legacy::ArmorSlot) const;
1317
1318 MCFOLD float $getArmorColorInSlot(::SharedTypes::Legacy::ArmorSlot, int) const;
1319
1320 MCFOLD void $setEquippedSlot(::SharedTypes::Legacy::EquipmentSlot, ::ItemStack const&);
1321
1322 MCAPI void $setCarriedItem(::ItemStack const& item);
1323
1324 MCAPI ::ItemStack const& $getCarriedItem() const;
1325
1326 MCAPI void $setOffhandSlot(::ItemStack const& item);
1327
1328 MCAPI ::ItemStack const& $getEquippedTotem() const;
1329
1330 MCAPI bool $consumeTotem();
1331
1332 MCAPI bool $load(::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper);
1333
1334 MCFOLD ::HashedString const& $queryEntityRenderer() const;
1335
1336 MCFOLD ::ActorUniqueID $getSourceUniqueID() const;
1337
1338 MCFOLD bool $canFreeze() const;
1339
1340 MCAPI ::AABB $getLiquidAABB(::MaterialType const liquidType) const;
1341
1342 MCAPI void $handleInsidePortal(::BlockPos const& portalPos);
1343
1344 MCAPI bool $canChangeDimensionsUsingPortal() const;
1345
1346 MCAPI void $changeDimension(::DimensionType toId);
1347
1348 MCFOLD void $changeDimension(::ChangeDimensionPacket const&);
1349
1350 MCFOLD ::ActorUniqueID $getControllingPlayer() const;
1351
1352 MCFOLD float $causeFallDamageToActor(float, float, ::ActorDamageSource);
1353
1354 MCAPI void $onSynchedDataUpdate(int dataId);
1355
1356 MCAPI bool $canAddPassenger(::Actor& passenger) const;
1357
1358 MCFOLD bool $canPickupItem(::ItemStack const&) const;
1359
1360 MCFOLD bool $canBePulledIntoVehicle() const;
1361
1362 MCFOLD bool $inCaravan() const;
1363
1364 MCAPI void $sendMotionPacketIfNeeded();
1365
1366 MCFOLD bool $canSynchronizeNewEntity() const;
1367
1368 MCAPI void $startSwimming();
1369
1370 MCAPI void $stopSwimming();
1371
1372 MCFOLD void $buildDebugInfo(::std::string&) const;
1373
1374 MCAPI ::CommandPermissionLevel $getCommandPermissionLevel() const;
1375
1376 MCFOLD int $getDeathTime() const;
1377
1378 MCAPI bool $canBeAffected(uint id) const;
1379
1380 MCAPI bool $canBeAffectedByArrow(::MobEffectInstance const& effect) const;
1381
1382 MCAPI void $onEffectRemoved(::MobEffectInstance& effect);
1383
1384 MCAPI bool $canObstructSpawningAndBlockPlacement() const;
1385
1386 MCAPI ::AnimationComponent& $getAnimationComponent();
1387
1388 MCAPI void $openContainerComponent(::Player& player);
1389
1390 MCFOLD bool $swing(::ActorSwingSource);
1391
1392 MCAPI void $useItem(::ItemStackBase& item, ::ItemUseMethod itemUseMethod, bool consumeItem);
1393
1394 MCAPI void $getDebugText(::std::vector<::std::string>& outputInfo);
1395
1396 MCAPI float $getMapDecorationRotation() const;
1397
1398 MCAPI float $getPassengerYRotation(::Actor const& passenger) const;
1399
1400 MCAPI bool $add(::ItemStack& item);
1401
1402 MCAPI bool $drop(::ItemStack const& item, bool const randomly);
1403
1404 MCAPI bool $getInteraction(::Player& player, ::ActorInteraction& interaction, ::Vec3 const&);
1405
1406 MCFOLD bool $canDestroyBlock(::Block const&) const;
1407
1408 MCFOLD void $setAuxValue(int);
1409
1410 MCFOLD void $renderDebugServerState(::IOptionsReader const&);
1411
1412 MCAPI void $kill();
1413
1414 MCAPI void $die(::ActorDamageSource const& source);
1415
1416 MCAPI bool $shouldDropDeathLoot() const;
1417
1418 MCAPI void $applySnapshot(
1419 ::EntityContext const& snapshotEntity,
1420 ::MovementDataExtractionUtility::SnapshotAccessor const& originalSnapshotEntity
1421 );
1422
1423 MCFOLD void $onPush(::Actor&);
1424
1425 MCFOLD ::std::optional<::BlockPos> $getLastDeathPos() const;
1426
1427 MCFOLD ::std::optional<::DimensionType> $getLastDeathDimension() const;
1428
1429 MCFOLD bool $hasDiedBefore() const;
1430
1431 MCFOLD void $doEnterWaterSplashEffect();
1432
1433 MCFOLD void $doExitWaterSplashEffect();
1434
1435 MCAPI void $doWaterSplashEffect();
1436
1437 MCAPI bool $_shouldProvideFeedbackOnHandContainerItemSet(::HandSlot handSlot, ::ItemStack const& item) const;
1438
1439 MCAPI bool $_shouldProvideFeedbackOnArmorSet(::SharedTypes::Legacy::ArmorSlot slot, ::ItemStack const& item) const;
1440
1441 MCAPI bool $_hurt(::ActorDamageSource const& source, float damage, bool, bool);
1442
1443 MCAPI void $readAdditionalSaveData(::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper);
1444
1445 MCAPI void $addAdditionalSaveData(::CompoundTag& tag) const;
1446
1447
1448 // NOLINTEND
1449
1450public:
1451 // vftables
1452 // NOLINTBEGIN
1453 MCAPI static void** $vftable();
1454 // NOLINTEND
1455};
Definition AABB.h:18
Definition ActionEvent.h:8
Definition ActionQueue.h:10
Definition ActorDamageSource.h:18
Definition ActorDefinitionDescriptor.h:30
Definition ActorDefinitionDiffList.h:15
Definition ActorDefinitionGroup.h:35
Definition ActorInteraction.h:5
Definition ActorRuntimeID.h:5
Definition AnimationComponent.h:36
Definition AttributeInstanceConstRef.h:13
Definition Attribute.h:9
Definition BaseAttributeMap.h:19
Definition RedactableString.h:10
Definition BlockPos.h:19
Definition BlockSource.h:68
Definition Block.h:43
Definition ChangeDimensionPacket.h:19
Definition CompoundTag.h:23
Definition DataLoadHelper.h:20
Definition Dimension.h:85
Definition DynamicProperties.h:13
Definition EntityContext.h:16
Definition EntityRegistry.h:11
Definition GameEvent.h:8
Definition GetCollisionShapeInterface.h:13
Definition HashedString.h:5
Definition HitResult.h:17
Definition IConstBlockSource.h:25
Definition ILevel.h:214
Definition IOptionsReader.h:16
Definition ItemActor.h:29
Definition ItemDescriptor.h:23
Definition ItemStackBase.h:44
Definition ItemStack.h:26
Definition Level.h:249
Definition ListTag.h:20
Definition LootTable.h:15
Definition Matrix.h:5
Definition MerchantRecipeList.h:13
Definition MobEffectInstance.h:15
Definition MobEffect.h:27
Definition Mob.h:50
Definition SnapshotAccessor.h:12
Definition Packet.h:28
Definition Player.h:125
Definition Random.h:10
Definition RenderParams.h:30
Definition RideableComponent.h:17
Definition RopeSystem.h:14
Definition SpatialActorNetworkData.h:15
Definition StrictEntityContext.h:8
Definition UpdateEquipPacket.h:19
Definition Vec2.h:5
Definition Vec3.h:10
Definition WeakRef.h:8
Definition optional_ref.h:10
Definition ActorDefinitionIdentifier.h:15
Definition ActorUniqueID.h:5
Definition DistanceSortedActor.h:10
Definition EquipmentTable.h:12
Definition InterpolationPair.h:5
Definition VariantParameterList.h:13
Definition VehicleRootInfo.h:12