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
79 // NOLINTEND
80
81public:
82 // prevent constructor by default
83 WitherBoss& operator=(WitherBoss const&);
84 WitherBoss(WitherBoss const&);
85 WitherBoss();
86
87public:
88 // virtual functions
89 // NOLINTBEGIN
90 // vIndex: 2
91 virtual void reloadHardcoded(::ActorInitializationMethod method, ::VariantParameterList const& params) /*override*/;
92
93 // vIndex: 3
94 virtual void reloadHardcodedClient(::ActorInitializationMethod method) /*override*/;
95
96 // vIndex: 145
97 virtual void aiStep() /*override*/;
98
99 // vIndex: 175
100 virtual void newServerAiStep() /*override*/;
101
102 // vIndex: 85
103 virtual bool canFreeze() const /*override*/;
104
105 // vIndex: 105
106 virtual bool canBeAffected(uint effectId) const /*override*/;
107
108 // vIndex: 106
109 virtual bool canBeAffectedByArrow(::MobEffectInstance const& effect) const /*override*/;
110
111 // vIndex: 144
112 virtual void hurtEffects(::ActorDamageSource const& source, float damage, bool knock, bool ignite) /*override*/;
113
114 // vIndex: 137
115 virtual void addAdditionalSaveData(::CompoundTag& tag) const /*override*/;
116
117 // vIndex: 136
118 virtual void readAdditionalSaveData(::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper) /*override*/;
119
120 // vIndex: 92
121 virtual float causeFallDamageToActor(float, float, ::ActorDamageSource) /*override*/;
122
123 // vIndex: 155
124 virtual int getArmorValue() const /*override*/;
125
126 // vIndex: 123
127 virtual void die(::ActorDamageSource const& source) /*override*/;
128
129 // vIndex: 11
130 virtual void remove() /*override*/;
131
132 // vIndex: 27
133 virtual bool startRiding(::Actor& vehicle, bool forceRiding) /*override*/;
134
135 // vIndex: 69
136 virtual void handleEntityEvent(::ActorEvent id, int data) /*override*/;
137
138 // vIndex: 64
139 virtual bool isInvulnerableTo(::ActorDamageSource const& source) const /*override*/;
140
141 // vIndex: 12
142 virtual ::Vec3 getFiringPos() const /*override*/;
143
144 // vIndex: 135
145 virtual bool _hurt(::ActorDamageSource const& source, float damage, bool knock, bool ignite) /*override*/;
146
147 // vIndex: 8
148 virtual ~WitherBoss() /*override*/ = default;
149 // NOLINTEND
150
151public:
152 // member functions
153 // NOLINTBEGIN
154 MCAPI WitherBoss(
155 ::ActorDefinitionGroup* definitions,
156 ::ActorDefinitionIdentifier const& definitionName,
157 ::EntityContext& entityContext
158 );
159
160 MCAPI void _destroyBlocks(
161 ::Level& level,
162 ::AABB const& bb,
163 ::BlockSource& region,
164 int range,
165 ::WitherBoss::WitherAttackType attackType
166 );
167
168 MCAPI void _performRangedAttack(int headID, ::Actor& target);
169
170 MCAPI void _performRangedAttack(int headID, ::Vec3 const& targetPos, bool dangerous);
171
172 MCAPI bool canShoot();
173
174 MCAPI bool getAerialAttack() const;
175
176 MCAPI ::ActorUniqueID getAlternativeTarget(int headIndex);
177
178 MCAPI ::Vec3 getHeadPos(int headID) const;
179
180 MCAPI int getInvulnerableTicks() const;
181
182 MCAPI bool hasAerialAttack() const;
183
184 MCAPI void postAiStep();
185
186 MCAPI ::WitherBossPreAIStepResult preAiStep();
187
188 MCAPI void setAerialAttack(bool aerialAttack);
189
190 MCAPI void setAlternativeTarget(int headIndex, ::ActorUniqueID entityId);
191
192 MCAPI void setInvulnerableTicks(int invulnerableTicks);
193 // NOLINTEND
194
195public:
196 // static variables
197 // NOLINTBEGIN
198 MCAPI static ::mce::UUID const& MAX_HEALTH_CAP_UUID();
199 // NOLINTEND
200
201public:
202 // constructor thunks
203 // NOLINTBEGIN
204 MCAPI void* $ctor(
205 ::ActorDefinitionGroup* definitions,
206 ::ActorDefinitionIdentifier const& definitionName,
207 ::EntityContext& entityContext
208 );
209 // NOLINTEND
210
211public:
212 // virtual function thunks
213 // NOLINTBEGIN
214 MCAPI void $reloadHardcoded(::ActorInitializationMethod method, ::VariantParameterList const& params);
215
216 MCAPI void $reloadHardcodedClient(::ActorInitializationMethod method);
217
218 MCAPI void $aiStep();
219
220 MCAPI void $newServerAiStep();
221
222 MCFOLD bool $canFreeze() const;
223
224 MCAPI bool $canBeAffected(uint effectId) const;
225
226 MCAPI bool $canBeAffectedByArrow(::MobEffectInstance const& effect) const;
227
228 MCAPI void $hurtEffects(::ActorDamageSource const& source, float damage, bool knock, bool ignite);
229
230 MCAPI void $addAdditionalSaveData(::CompoundTag& tag) const;
231
232 MCAPI void $readAdditionalSaveData(::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper);
233
234 MCFOLD float $causeFallDamageToActor(float, float, ::ActorDamageSource);
235
236 MCAPI int $getArmorValue() const;
237
238 MCAPI void $die(::ActorDamageSource const& source);
239
240 MCAPI void $remove();
241
242 MCFOLD bool $startRiding(::Actor& vehicle, bool forceRiding);
243
244 MCAPI void $handleEntityEvent(::ActorEvent id, int data);
245
246 MCAPI bool $isInvulnerableTo(::ActorDamageSource const& source) const;
247
248 MCAPI ::Vec3 $getFiringPos() const;
249
250 MCAPI bool $_hurt(::ActorDamageSource const& source, float damage, bool knock, bool ignite);
251 // NOLINTEND
252
253public:
254 // vftables
255 // NOLINTBEGIN
256 MCNAPI static void** $vftable();
257 // NOLINTEND
258};
Definition AABB.h:18
Definition ActorDamageSource.h:18
Definition ActorDefinitionGroup.h:29
Definition Actor.h:103
Definition BlockSource.h:67
Definition CompoundTag.h:13
Definition DataLoadHelper.h:20
Definition EntityContext.h:16
Definition Level.h:238
Definition MobEffectInstance.h:15
Definition Monster.h:19
Definition Vec3.h:10
Definition WitherBoss.h:30
static MCAPI void ** $vftable()
Definition ActorDefinitionIdentifier.h:15
Definition ActorUniqueID.h:5
Definition VariantParameterList.h:5
Definition Alias.h:14