LeviLamina
Loading...
Searching...
No Matches
EnderDragon.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/actor/ActorEvent.h"
7#include "mc/world/actor/ActorInitializationMethod.h"
8#include "mc/world/actor/monster/Monster.h"
9#include "mc/world/level/pathfinder/PathCompletionType.h"
10
11// auto generated forward declare list
12// clang-format off
13class AABB;
14class Actor;
17class BlockPos;
18class EnderCrystal;
19class EntityContext;
20class Path;
21class PathfinderNode;
22class Vec3;
25// clang-format on
26
27class EnderDragon : public ::Monster {
28public:
29 // member variables
30 // NOLINTBEGIN
56 // NOLINTEND
57
58public:
59 // prevent constructor by default
60 EnderDragon& operator=(EnderDragon const&);
63
64public:
65 // virtual functions
66 // NOLINTBEGIN
67 // vIndex: 8
68 virtual ~EnderDragon() /*override*/;
69
70 // vIndex: 2
71 virtual void reloadHardcoded(::ActorInitializationMethod method, ::VariantParameterList const& params) /*override*/;
72
73 // vIndex: 11
74 virtual void remove() /*override*/;
75
76 // vIndex: 56
77 virtual void setSitting(bool value) /*override*/;
78
79 // vIndex: 105
80 virtual bool canBeAffected(uint id) const /*override*/;
81
82 // vIndex: 40
83 virtual bool isImmobile() const /*override*/;
84
85 // vIndex: 69
86 virtual void handleEntityEvent(::ActorEvent eventId, int data) /*override*/;
87
88 // vIndex: 36
89 virtual ::Vec3 getHeadLookVector(float a) const /*override*/;
90
91 // vIndex: 123
92 virtual void die(::ActorDamageSource const& source) /*override*/;
93
94 // vIndex: 35
95 virtual float getShadowRadius() const /*override*/;
96
97 // vIndex: 64
98 virtual bool isInvulnerableTo(::ActorDamageSource const& source) const /*override*/;
99
100 // vIndex: 96
101 virtual bool canBePulledIntoVehicle() const /*override*/;
102
103 // vIndex: 173
104 virtual void tickDeath() /*override*/;
105
106 // vIndex: 135
107 virtual bool _hurt(::ActorDamageSource const& source, float damage, bool knock, bool ignite) /*override*/;
108 // NOLINTEND
109
110public:
111 // member functions
112 // NOLINTBEGIN
113 MCAPI EnderDragon(
114 ::ActorDefinitionGroup* definitions,
115 ::ActorDefinitionIdentifier const& definitionName,
116 ::EntityContext& entityContext
117 );
118
119 MCAPI void _checkCrystals();
120
121 MCAPI bool _checkWalls(::AABB bb);
122
123 MCAPI float _getHeadYOffset(float a) const;
124
125 MCAPI bool _hurt(::AABB* part, ::ActorDamageSource const& source, float damage);
126
127 MCAPI void _hurtEntities(::gsl::span<::gsl::not_null<::Actor*>> actors) const;
128
129 MCAPI void _knockBack(::gsl::span<::gsl::not_null<::Actor*>> actors) const;
130
131 MCAPI ::std::unique_ptr<::Path>
132 _reconstructPath(::PathfinderNode& from, ::PathfinderNode& to, ::PathCompletionType completionType);
133
134 MCAPI void dieNaturally();
135
136 MCAPI int findClosestNode();
137
138 MCAPI int findClosestNode(::Vec3 const& pos);
139
140 MCAPI ::std::unique_ptr<::Path> findPath(int startIndex, int endIndex, ::PathfinderNode* finalNode);
141
142 MCAPI ::std::vector<float> const getLatencyPos(int step, float a) const;
143
144 MCAPI void onCrystalDestroyed(::EnderCrystal const& crystal, ::BlockPos pos, ::ActorDamageSource const& source);
145
146 MCAPI void postAiStep();
147 // NOLINTEND
148
149public:
150 // static variables
151 // NOLINTBEGIN
152 MCAPI static int& GROWL_INTERVAL_MAX();
153
154 MCAPI static int& GROWL_INTERVAL_MIN();
155
156 MCAPI static int& MAX_PATH_RADIUS();
157
158 MCAPI static float& SITTING_ALLOWED_DAMAGE_PERCENTAGE();
159 // NOLINTEND
160
161public:
162 // constructor thunks
163 // NOLINTBEGIN
164 MCAPI void* $ctor(
165 ::ActorDefinitionGroup* definitions,
166 ::ActorDefinitionIdentifier const& definitionName,
167 ::EntityContext& entityContext
168 );
169 // NOLINTEND
170
171public:
172 // destructor thunk
173 // NOLINTBEGIN
174 MCAPI void $dtor();
175 // NOLINTEND
176
177public:
178 // virtual function thunks
179 // NOLINTBEGIN
180 MCFOLD void $reloadHardcoded(::ActorInitializationMethod method, ::VariantParameterList const& params);
181
182 MCAPI void $remove();
183
184 MCAPI void $setSitting(bool value);
185
186 MCFOLD bool $canBeAffected(uint id) const;
187
188 MCFOLD bool $isImmobile() const;
189
190 MCAPI void $handleEntityEvent(::ActorEvent eventId, int data);
191
192 MCAPI ::Vec3 $getHeadLookVector(float a) const;
193
194 MCAPI void $die(::ActorDamageSource const& source);
195
196 MCAPI float $getShadowRadius() const;
197
198 MCAPI bool $isInvulnerableTo(::ActorDamageSource const& source) const;
199
200 MCFOLD bool $canBePulledIntoVehicle() const;
201
202 MCAPI void $tickDeath();
203
204 MCAPI bool $_hurt(::ActorDamageSource const& source, float damage, bool knock, bool ignite);
205 // NOLINTEND
206
207public:
208 // vftables
209 // NOLINTBEGIN
210 MCNAPI static void** $vftable();
211 // NOLINTEND
212};
Definition AABB.h:18
Definition ActorDamageSource.h:18
Definition ActorDefinitionGroup.h:29
Definition Actor.h:103
Definition BlockPos.h:18
Definition EnderCrystal.h:18
Definition EnderDragon.h:27
static MCAPI void ** $vftable()
Definition EntityContext.h:16
Definition Monster.h:19
Definition Path.h:16
Definition PathfinderNode.h:5
Definition Vec3.h:10
Definition ActorDefinitionIdentifier.h:15
Definition VariantParameterList.h:5
Definition Alias.h:14