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