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