29class EnderDragon :
public ::Monster {
33 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Path>> mPath;
34 ::ll::TypedStorage<4, 768, ::std::array<::std::array<float, 3>, 64>> mPositions;
35 ::ll::TypedStorage<4, 4, int> mPosPointer;
36 ::ll::TypedStorage<8, 8, ::AABB*> mHead;
37 ::ll::TypedStorage<8, 8, ::AABB*> mNeck;
38 ::ll::TypedStorage<8, 8, ::AABB*> mBody;
39 ::ll::TypedStorage<8, 8, ::AABB*> mTail1;
40 ::ll::TypedStorage<8, 8, ::AABB*> mTail2;
41 ::ll::TypedStorage<8, 8, ::AABB*> mTail3;
42 ::ll::TypedStorage<8, 8, ::AABB*> mWing1;
43 ::ll::TypedStorage<8, 8, ::AABB*> mWing2;
44 ::ll::TypedStorage<1, 1, bool> mInWall;
45 ::ll::TypedStorage<4, 4, int> mGrowlTime;
46 ::ll::TypedStorage<4, 4, int> mSittingDamageReceived;
47 ::ll::TypedStorage<4, 4, float> mTurnSpeed;
48 ::ll::TypedStorage<4, 12, ::Vec3> mTargetPos;
49 ::ll::TypedStorage<4, 4, int> mFlameAttackCount;
50 ::ll::TypedStorage<1, 1, bool> mNodesFinalized;
51 ::ll::TypedStorage<8, 24, ::std::vector<::PathfinderNode>> mNodes;
52 ::ll::TypedStorage<8, 24, ::std::vector<int>> mNodeAdjacency;
53 ::ll::TypedStorage<8, 32, ::BinaryHeap> mOpenSet;
54 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mNearestCrystal;
55 ::ll::TypedStorage<4, 4, int> mEnderCrystalsAlive;
56 ::ll::TypedStorage<1, 1, bool> mDragonKilledPreviously;
57 ::ll::TypedStorage<8, 64, ::std::function<void(::EnderDragon&)>> mDragonKilledCallback;
67 virtual ~EnderDragon() ;
71 virtual void remove() ;
73 virtual void setSitting(
bool value) ;
75 virtual bool canBeAffected(uint
id)
const ;
77 virtual bool isImmobile()
const ;
79 virtual void handleEntityEvent(::ActorEvent
id,
int data) ;
81 virtual ::Vec3 getHeadLookVector(
float a)
const ;
85 virtual float getShadowRadius()
const ;
89 virtual bool canBePulledIntoVehicle()
const ;
91 virtual bool _hurt(
::ActorDamageSource const& source,
float damage,
bool knock,
bool ignite) ;
103 MCAPI
void _checkCrystals();
105 MCAPI
bool _checkWalls(
::AABB bb);
107 MCAPI
float _getHeadYOffset(
float a)
const;
111 MCAPI
void _hurtEntities(::gsl::span<::gsl::not_null<::Actor*>> actors)
const;
113 MCAPI
void _knockBack(::gsl::span<::gsl::not_null<::Actor*>> actors)
const;
115 MCAPI ::std::unique_ptr<::Path>
118 MCAPI
void dieNaturally();
120 MCAPI
int findClosestNode();
122 MCAPI
int findClosestNode(
::Vec3 const& pos);
124 MCAPI ::std::unique_ptr<::Path> findPath(
int startIndex,
int endIndex,
::PathfinderNode* finalNode);
126 MCAPI ::std::vector<float>
const getLatencyPos(
int step,
float a)
const;
130 MCAPI
void postAiStep();
136 MCAPI
static int& GROWL_INTERVAL_MAX();
138 MCAPI
static int& GROWL_INTERVAL_MIN();
140 MCAPI
static int& MAX_PATH_RADIUS();
142 MCAPI
static float& SITTING_ALLOWED_DAMAGE_PERCENTAGE();
166 MCAPI
void $remove();
168 MCAPI
void $setSitting(
bool value);
170 MCFOLD
bool $canBeAffected(uint
id)
const;
172 MCFOLD
bool $isImmobile()
const;
174 MCAPI
void $handleEntityEvent(::ActorEvent
id,
int data);
176 MCAPI ::Vec3 $getHeadLookVector(
float a)
const;
180 MCAPI
float $getShadowRadius()
const;
184 MCFOLD
bool $canBePulledIntoVehicle()
const;
186 MCAPI
bool $_hurt(
::ActorDamageSource const& source,
float damage,
bool knock,
bool ignite);
194 MCAPI
static void** $vftable();
Definition EntityContext.h:16