31class EnderDragon :
public ::Monster {
35 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Path>> mPath;
36 ::ll::TypedStorage<4, 768, ::std::array<::std::array<float, 3>, 64>> mPositions;
37 ::ll::TypedStorage<4, 4, int> mPosPointer;
38 ::ll::TypedStorage<8, 8, ::AABB*> mHead;
39 ::ll::TypedStorage<8, 8, ::AABB*> mNeck;
40 ::ll::TypedStorage<8, 8, ::AABB*> mBody;
41 ::ll::TypedStorage<8, 8, ::AABB*> mTail1;
42 ::ll::TypedStorage<8, 8, ::AABB*> mTail2;
43 ::ll::TypedStorage<8, 8, ::AABB*> mTail3;
44 ::ll::TypedStorage<8, 8, ::AABB*> mWing1;
45 ::ll::TypedStorage<8, 8, ::AABB*> mWing2;
46 ::ll::TypedStorage<1, 1, bool> mInWall;
47 ::ll::TypedStorage<4, 4, int> mGrowlTime;
48 ::ll::TypedStorage<4, 4, int> mSittingDamageReceived;
49 ::ll::TypedStorage<4, 4, float> mTurnSpeed;
50 ::ll::TypedStorage<4, 12, ::Vec3> mTargetPos;
51 ::ll::TypedStorage<4, 4, int> mFlameAttackCount;
52 ::ll::TypedStorage<1, 1, bool> mNodesFinalized;
53 ::ll::TypedStorage<8, 24, ::std::vector<::PathfinderNode>> mNodes;
54 ::ll::TypedStorage<8, 24, ::std::vector<int>> mNodeAdjacency;
55 ::ll::TypedStorage<8, 32, ::BinaryHeap> mOpenSet;
56 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mNearestCrystal;
57 ::ll::TypedStorage<4, 4, int> mEnderCrystalsAlive;
58 ::ll::TypedStorage<1, 1, bool> mDragonKilledPreviously;
59 ::ll::TypedStorage<8, 64, ::std::function<void(::EnderDragon&)>> mDragonKilledCallback;
69 virtual ~EnderDragon() =
default;
73 virtual void remove() ;
75 virtual void setSitting(
bool value) ;
77 virtual bool canBeAffected(uint
id)
const ;
79 virtual bool isImmobile()
const ;
81 virtual void handleEntityEvent(::ActorEvent
id,
int data) ;
83 virtual ::Vec3 getHeadLookVector(
float a)
const ;
87 virtual float getShadowRadius()
const ;
91 virtual bool canBePulledIntoVehicle()
const ;
93 virtual ::ActorHurtResult
106 MCAPI
bool _checkWalls(
::AABB bb);
110 MCAPI
void _hurtEntities(::gsl::span<::gsl::not_null<::Actor*>> actors)
const;
112 MCAPI
void _knockBack(::gsl::span<::gsl::not_null<::Actor*>> actors)
const;
114 MCAPI ::std::unique_ptr<::Path>
117 MCAPI
int findClosestNode();
119 MCAPI ::std::unique_ptr<::Path> findPath(
int startIndex,
int endIndex,
::PathfinderNode* finalNode);
121 MCAPI ::std::vector<float>
const getLatencyPos(
int step,
float a)
const;
125 MCAPI
void postAiStep();
127 MCAPI
void setDragonKilledCallback(::std::function<
void(::EnderDragon&)> onKilled);
145 MCAPI
void $remove();
147 MCAPI
void $setSitting(
bool value);
149 MCFOLD
bool $canBeAffected(uint
id)
const;
151 MCAPI
bool $isImmobile()
const;
153 MCAPI
void $handleEntityEvent(::ActorEvent
id,
int data);
155 MCAPI ::Vec3 $getHeadLookVector(
float a)
const;
159 MCAPI
float $getShadowRadius()
const;
163 MCFOLD
bool $canBePulledIntoVehicle()
const;
165 MCAPI ::ActorHurtResult
Definition EntityContext.h:15