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