30class EnderDragon :
public ::Monster {
34 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Path>> mPath;
35 ::ll::TypedStorage<4, 768, ::std::array<::std::array<float, 3>, 64>> mPositions;
36 ::ll::TypedStorage<4, 4, int> mPosPointer;
37 ::ll::TypedStorage<8, 8, ::AABB*> mHead;
38 ::ll::TypedStorage<8, 8, ::AABB*> mNeck;
39 ::ll::TypedStorage<8, 8, ::AABB*> mBody;
40 ::ll::TypedStorage<8, 8, ::AABB*> mTail1;
41 ::ll::TypedStorage<8, 8, ::AABB*> mTail2;
42 ::ll::TypedStorage<8, 8, ::AABB*> mTail3;
43 ::ll::TypedStorage<8, 8, ::AABB*> mWing1;
44 ::ll::TypedStorage<8, 8, ::AABB*> mWing2;
45 ::ll::TypedStorage<1, 1, bool> mInWall;
46 ::ll::TypedStorage<4, 4, int> mGrowlTime;
47 ::ll::TypedStorage<4, 4, int> mSittingDamageReceived;
48 ::ll::TypedStorage<4, 4, float> mTurnSpeed;
49 ::ll::TypedStorage<4, 12, ::Vec3> mTargetPos;
50 ::ll::TypedStorage<4, 4, int> mFlameAttackCount;
51 ::ll::TypedStorage<1, 1, bool> mNodesFinalized;
52 ::ll::TypedStorage<8, 24, ::std::vector<::PathfinderNode>> mNodes;
53 ::ll::TypedStorage<8, 24, ::std::vector<int>> mNodeAdjacency;
54 ::ll::TypedStorage<8, 32, ::BinaryHeap> mOpenSet;
55 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mNearestCrystal;
56 ::ll::TypedStorage<4, 4, int> mEnderCrystalsAlive;
57 ::ll::TypedStorage<1, 1, bool> mDragonKilledPreviously;
58 ::ll::TypedStorage<8, 64, ::std::function<void(::EnderDragon&)>> mDragonKilledCallback;
68 virtual ~EnderDragon() ;
72 virtual void remove() ;
74 virtual void setSitting(
bool value) ;
76 virtual bool canBeAffected(uint
id)
const ;
78 virtual bool isImmobile()
const ;
80 virtual void handleEntityEvent(::ActorEvent
id,
int data) ;
82 virtual ::Vec3 getHeadLookVector(
float a)
const ;
86 virtual float getShadowRadius()
const ;
90 virtual bool canBePulledIntoVehicle()
const ;
92 virtual ::ActorHurtResult
105 MCAPI
void _checkCrystals();
107 MCAPI
bool _checkWalls(
::AABB bb);
109 MCAPI
float _getHeadYOffset(
float a)
const;
113 MCAPI
void _hurtEntities(::gsl::span<::gsl::not_null<::Actor*>> actors)
const;
115 MCAPI
void _knockBack(::gsl::span<::gsl::not_null<::Actor*>> actors)
const;
117 MCAPI ::std::unique_ptr<::Path>
120 MCAPI
void dieNaturally();
122 MCAPI
int findClosestNode();
124 MCAPI
int findClosestNode(
::Vec3 const& pos);
126 MCAPI ::std::unique_ptr<::Path> findPath(
int startIndex,
int endIndex,
::PathfinderNode* finalNode);
128 MCAPI ::std::vector<float>
const getLatencyPos(
int step,
float a)
const;
132 MCAPI
void postAiStep();
156 MCAPI
void $remove();
158 MCAPI
void $setSitting(
bool value);
160 MCFOLD
bool $canBeAffected(uint
id)
const;
162 MCFOLD
bool $isImmobile()
const;
164 MCAPI
void $handleEntityEvent(::ActorEvent
id,
int data);
166 MCAPI ::Vec3 $getHeadLookVector(
float a)
const;
170 MCAPI
float $getShadowRadius()
const;
174 MCFOLD
bool $canBePulledIntoVehicle()
const;
176 MCAPI ::ActorHurtResult $_hurt(
::ActorDamageSource const& source,
float damage,
bool knock,
bool ignite);
184 MCAPI
static void** $vftable();
Definition EntityContext.h:16