LeviLamina
Loading...
Searching...
No Matches
WitherBoss.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/entity/components/WitherBossPreAIStepResult.h"
7#include "mc/world/actor/ActorEvent.h"
8#include "mc/world/actor/ActorInitializationMethod.h"
9#include "mc/world/actor/monster/Monster.h"
10
11// auto generated forward declare list
12// clang-format off
13class AABB;
14class Actor;
17class BlockSource;
18class CompoundTag;
19class DataLoadHelper;
20class EntityContext;
21class Level;
23class Vec3;
25struct ActorUniqueID;
27namespace mce { class UUID; }
28// clang-format on
29
30class WitherBoss : public ::Monster {
31public:
32 // WitherBoss inner types define
33 enum class WitherAttackType : int {
34 Charge = 0,
35 HurtExplosion = 1,
36 Projectile = 2,
37 };
38
39public:
40 // member variables
41 // NOLINTBEGIN
83 // NOLINTEND
84
85public:
86 // prevent constructor by default
87 WitherBoss& operator=(WitherBoss const&);
88 WitherBoss(WitherBoss const&);
89 WitherBoss();
90
91public:
92 // virtual functions
93 // NOLINTBEGIN
94 // vIndex: 2
95 virtual void reloadHardcoded(::ActorInitializationMethod method, ::VariantParameterList const& params) /*override*/;
96
97 // vIndex: 3
98 virtual void reloadHardcodedClient(::ActorInitializationMethod method) /*override*/;
99
100 // vIndex: 145
101 virtual void aiStep() /*override*/;
102
103 // vIndex: 175
104 virtual void newServerAiStep() /*override*/;
105
106 // vIndex: 85
107 virtual bool canFreeze() const /*override*/;
108
109 // vIndex: 105
110 virtual bool canBeAffected(uint effectId) const /*override*/;
111
112 // vIndex: 106
113 virtual bool canBeAffectedByArrow(::MobEffectInstance const& effect) const /*override*/;
114
115 // vIndex: 144
116 virtual void hurtEffects(::ActorDamageSource const& source, float damage, bool knock, bool ignite) /*override*/;
117
118 // vIndex: 137
119 virtual void addAdditionalSaveData(::CompoundTag& tag) const /*override*/;
120
121 // vIndex: 136
122 virtual void readAdditionalSaveData(::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper) /*override*/;
123
124 // vIndex: 92
125 virtual float causeFallDamageToActor(float, float, ::ActorDamageSource) /*override*/;
126
127 // vIndex: 155
128 virtual int getArmorValue() const /*override*/;
129
130 // vIndex: 123
131 virtual void die(::ActorDamageSource const& source) /*override*/;
132
133 // vIndex: 11
134 virtual void remove() /*override*/;
135
136 // vIndex: 27
137 virtual bool startRiding(::Actor& vehicle, bool forceRiding) /*override*/;
138
139 // vIndex: 69
140 virtual void handleEntityEvent(::ActorEvent eventId, int data) /*override*/;
141
142 // vIndex: 64
143 virtual bool isInvulnerableTo(::ActorDamageSource const& source) const /*override*/;
144
145 // vIndex: 12
146 virtual ::Vec3 getFiringPos() const /*override*/;
147
148 // vIndex: 135
149 virtual bool _hurt(::ActorDamageSource const& source, float damage, bool knock, bool ignite) /*override*/;
150
151 // vIndex: 8
152 virtual ~WitherBoss() /*override*/ = default;
153 // NOLINTEND
154
155public:
156 // member functions
157 // NOLINTBEGIN
158 MCAPI WitherBoss(
159 ::ActorDefinitionGroup* definitions,
160 ::ActorDefinitionIdentifier const& definitionName,
161 ::EntityContext& entityContext
162 );
163
164 MCAPI void _destroyBlocks(
165 ::Level& level,
166 ::AABB const& bb,
167 ::BlockSource& region,
168 int range,
169 ::WitherBoss::WitherAttackType attackType
170 );
171
172 MCAPI void _performRangedAttack(int headID, ::Actor& target);
173
174 MCAPI void _performRangedAttack(int headID, ::Vec3 const& targetPos, bool dangerous);
175
176 MCAPI bool canShoot();
177
178 MCAPI bool getAerialAttack() const;
179
180 MCAPI ::ActorUniqueID getAlternativeTarget(int headIndex);
181
182 MCAPI ::Vec3 getHeadPos(int headID) const;
183
184 MCAPI int getInvulnerableTicks() const;
185
186 MCAPI bool hasAerialAttack() const;
187
188 MCAPI void postAiStep();
189
190 MCAPI ::WitherBossPreAIStepResult preAiStep();
191
192 MCAPI void setAerialAttack(bool aerialAttack);
193
194 MCAPI void setAlternativeTarget(int headIndex, ::ActorUniqueID entityId);
195
196 MCAPI void setInvulnerableTicks(int invulnerableTicks);
197 // NOLINTEND
198
199public:
200 // static variables
201 // NOLINTBEGIN
202 MCAPI static ::mce::UUID const& MAX_HEALTH_CAP_UUID();
203 // NOLINTEND
204
205public:
206 // constructor thunks
207 // NOLINTBEGIN
208 MCAPI void* $ctor(
209 ::ActorDefinitionGroup* definitions,
210 ::ActorDefinitionIdentifier const& definitionName,
211 ::EntityContext& entityContext
212 );
213 // NOLINTEND
214
215public:
216 // destructor thunk
217 // NOLINTBEGIN
218
219 // NOLINTEND
220
221public:
222 // virtual function thunks
223 // NOLINTBEGIN
224 MCAPI void $reloadHardcoded(::ActorInitializationMethod method, ::VariantParameterList const& params);
225
226 MCAPI void $reloadHardcodedClient(::ActorInitializationMethod method);
227
228 MCAPI void $aiStep();
229
230 MCAPI void $newServerAiStep();
231
232 MCFOLD bool $canFreeze() const;
233
234 MCAPI bool $canBeAffected(uint effectId) const;
235
236 MCAPI bool $canBeAffectedByArrow(::MobEffectInstance const& effect) const;
237
238 MCAPI void $hurtEffects(::ActorDamageSource const& source, float damage, bool knock, bool ignite);
239
240 MCAPI void $addAdditionalSaveData(::CompoundTag& tag) const;
241
242 MCAPI void $readAdditionalSaveData(::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper);
243
244 MCFOLD float $causeFallDamageToActor(float, float, ::ActorDamageSource);
245
246 MCAPI int $getArmorValue() const;
247
248 MCAPI void $die(::ActorDamageSource const& source);
249
250 MCAPI void $remove();
251
252 MCFOLD bool $startRiding(::Actor& vehicle, bool forceRiding);
253
254 MCAPI bool $isInvulnerableTo(::ActorDamageSource const& source) const;
255
256 MCAPI ::Vec3 $getFiringPos() const;
257
258 MCAPI bool $_hurt(::ActorDamageSource const& source, float damage, bool knock, bool ignite);
259 // NOLINTEND
260
261public:
262 // vftables
263 // NOLINTBEGIN
264 MCAPI static void** $vftable();
265 // NOLINTEND
266};
Definition AABB.h:16
Definition ActorDamageSource.h:18
Definition ActorDefinitionGroup.h:27
Definition Actor.h:104
Definition BlockSource.h:67
Definition CompoundTag.h:13
Definition DataLoadHelper.h:20
Definition EntityContext.h:16
Definition Level.h:234
Definition MobEffectInstance.h:15
Definition Monster.h:19
Definition Vec3.h:10
Definition WitherBoss.h:30
Definition ActorDefinitionIdentifier.h:13
Definition ActorUniqueID.h:5
Definition VariantParameterList.h:5
Definition Alias.h:14