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
58 // NOLINTEND
59
60public:
61 // prevent constructor by default
62 EnderDragon& operator=(EnderDragon const&);
65
66public:
67 // virtual functions
68 // NOLINTBEGIN
69 // vIndex: 8
70 virtual ~EnderDragon() /*override*/;
71
72 // vIndex: 2
73 virtual void reloadHardcoded(::ActorInitializationMethod method, ::VariantParameterList const& params) /*override*/;
74
75 // vIndex: 11
76 virtual void remove() /*override*/;
77
78 // vIndex: 56
79 virtual void setSitting(bool value) /*override*/;
80
81 // vIndex: 105
82 virtual bool canBeAffected(uint id) const /*override*/;
83
84 // vIndex: 40
85 virtual bool isImmobile() const /*override*/;
86
87 // vIndex: 69
88 virtual void handleEntityEvent(::ActorEvent eventId, int data) /*override*/;
89
90 // vIndex: 36
91 virtual ::Vec3 getHeadLookVector(float a) const /*override*/;
92
93 // vIndex: 123
94 virtual void die(::ActorDamageSource const& source) /*override*/;
95
96 // vIndex: 35
97 virtual float getShadowRadius() const /*override*/;
98
99 // vIndex: 64
100 virtual bool isInvulnerableTo(::ActorDamageSource const& source) const /*override*/;
101
102 // vIndex: 96
103 virtual bool canBePulledIntoVehicle() const /*override*/;
104
105 // vIndex: 173
106 virtual void tickDeath() /*override*/;
107
108 // vIndex: 135
109 virtual bool _hurt(::ActorDamageSource const& source, float damage, bool knock, bool ignite) /*override*/;
110 // NOLINTEND
111
112public:
113 // member functions
114 // NOLINTBEGIN
115 MCAPI EnderDragon(
116 ::ActorDefinitionGroup* definitions,
117 ::ActorDefinitionIdentifier const& definitionName,
118 ::EntityContext& entityContext
119 );
120
121 MCAPI void _checkCrystals();
122
123 MCAPI bool _checkWalls(::AABB bb);
124
125 MCAPI float _getHeadYOffset(float a) const;
126
127 MCAPI bool _hurt(::AABB* part, ::ActorDamageSource const& source, float damage);
128
129 MCAPI void _hurtEntities(::gsl::span<::gsl::not_null<::Actor*>> actors) const;
130
131 MCAPI void _knockBack(::gsl::span<::gsl::not_null<::Actor*>> actors) const;
132
133 MCAPI ::std::unique_ptr<::Path>
134 _reconstructPath(::PathfinderNode& to, ::PathfinderNode& completionType, ::PathCompletionType from);
135
136 MCAPI void dieNaturally();
137
138 MCAPI int findClosestNode();
139
140 MCAPI int findClosestNode(::Vec3 const& pos);
141
142 MCAPI ::std::unique_ptr<::Path> findPath(int startIndex, int endIndex, ::PathfinderNode* finalNode);
143
144 MCAPI ::std::vector<float> const getLatencyPos(int step, float a) const;
145
146 MCAPI void onCrystalDestroyed(::EnderCrystal const& crystal, ::BlockPos pos, ::ActorDamageSource const& source);
147
148 MCAPI void postAiStep();
149 // NOLINTEND
150
151public:
152 // static variables
153 // NOLINTBEGIN
154 MCAPI static int& GROWL_INTERVAL_MAX();
155
156 MCAPI static int& GROWL_INTERVAL_MIN();
157
158 MCAPI static int& MAX_PATH_RADIUS();
159
160 MCAPI static float& SITTING_ALLOWED_DAMAGE_PERCENTAGE();
161 // NOLINTEND
162
163public:
164 // constructor thunks
165 // NOLINTBEGIN
166 MCAPI void* $ctor(
167 ::ActorDefinitionGroup* definitions,
168 ::ActorDefinitionIdentifier const& definitionName,
169 ::EntityContext& entityContext
170 );
171 // NOLINTEND
172
173public:
174 // destructor thunk
175 // NOLINTBEGIN
176 MCAPI void $dtor();
177 // NOLINTEND
178
179public:
180 // virtual function thunks
181 // NOLINTBEGIN
182 MCFOLD void $reloadHardcoded(::ActorInitializationMethod method, ::VariantParameterList const& params);
183
184 MCAPI void $remove();
185
186 MCAPI void $setSitting(bool value);
187
188 MCFOLD bool $canBeAffected(uint id) const;
189
190 MCFOLD bool $isImmobile() const;
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 MCAPI static void** $vftable();
211 // NOLINTEND
212};
Definition AABB.h:16
Definition ActorDamageSource.h:18
Definition ActorDefinitionGroup.h:27
Definition Actor.h:104
Definition BlockPos.h:18
Definition EnderCrystal.h:18
Definition EnderDragon.h:27
Definition EntityContext.h:16
Definition Monster.h:19
Definition Path.h:16
Definition PathfinderNode.h:5
Definition Vec3.h:10
Definition ActorDefinitionIdentifier.h:13
Definition VariantParameterList.h:5
Definition Alias.h:14