LeviLamina
Loading...
Searching...
No Matches
MobEffectInstance.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/shared_types/legacy/Difficulty.h"
7#include "mc/world/effect/EffectDuration.h"
8#include "mc/world/effect/MobEffect.h"
9
10// auto generated forward declare list
11// clang-format off
12class Actor;
15class CompoundTag;
16class HashedString;
17namespace mce { class Color; }
18// clang-format on
19
20class MobEffectInstance {
21public:
22 // member variables
23 // NOLINTBEGIN
24 ::ll::TypedStorage<4, 4, uint> mId;
25 ::ll::TypedStorage<4, 4, ::EffectDuration> mDuration;
26 ::ll::TypedStorage<4, 8, ::std::optional<::EffectDuration>> mDurationEasy;
27 ::ll::TypedStorage<4, 8, ::std::optional<::EffectDuration>> mDurationNormal;
28 ::ll::TypedStorage<4, 8, ::std::optional<::EffectDuration>> mDurationHard;
29 ::ll::TypedStorage<4, 4, int> mAmplifier;
30 ::ll::TypedStorage<1, 1, bool> mDisplayOnScreenTextureAnimation;
31 ::ll::TypedStorage<1, 1, bool> mIsCounterPausedThisTick;
32 ::ll::TypedStorage<1, 1, bool> mAmbient;
33 ::ll::TypedStorage<1, 1, bool> mEffectVisible;
34 ::ll::TypedStorage<8, 96, ::MobEffect::FactorCalculationData> mFactorCalculationData;
35 // NOLINTEND
36
37public:
38 // prevent constructor by default
39 MobEffectInstance();
40
41public:
42 // member functions
43 // NOLINTBEGIN
44 MCAPI explicit MobEffectInstance(uint id);
45
46 MCAPI MobEffectInstance(uint id, ::EffectDuration duration);
47
48 MCAPI MobEffectInstance(uint id, ::EffectDuration duration, int amplifier);
49
50 MCAPI MobEffectInstance(
51 uint id,
52 ::EffectDuration duration,
53 int amplifier,
54 bool ambient,
55 bool effectVisible,
56 bool displayAnimation
57 );
58
59 MCAPI void applyEffects(::Actor& mob) const;
60
61#ifdef LL_PLAT_C
62 MCAPI void applyModsAndBuffs(::BaseAttributeMap& attributeMapToRemoveFrom) const;
63#endif
64
65 MCFOLD bool displaysOnScreenTextureAnimation() const;
66
67 MCFOLD int getAmplifier() const;
68
69 MCAPI ::HashedString const& getComponentName() const;
70
71 MCAPI ::std::string const& getDescriptionId() const;
72
73 MCAPI ::EffectDuration getDifficultyDuration(::SharedTypes::Legacy::Difficulty difficulty) const;
74
75 MCAPI ::std::string getDisplayName() const;
76
77 MCAPI ::EffectDuration getDuration() const;
78
79 MCFOLD uint getId() const;
80
81 MCAPI ::EffectDuration getLingerDuration() const;
82
83 MCAPI ::std::string const& getResourceName() const;
84
85 MCAPI ::EffectDuration getSplashDuration() const;
86
87 MCAPI ::MobEffectInstance getSplashEffect() const;
88
89 MCAPI bool isAmbient() const;
90
91 MCAPI bool isEffectVisible() const;
92
93 MCAPI void onActorDied(::Actor& mob) const;
94
95 MCAPI void onActorHurt(::Actor& mob, ::ActorDamageSource const& source, float damage) const;
96
97 MCAPI void onEffectsExpired(::Actor& mob) const;
98
99 MCAPI bool operator!=(::MobEffectInstance const& obj) const;
100
101#ifdef LL_PLAT_C
102 MCFOLD bool operator==(::MobEffectInstance const& obj) const;
103#endif
104
105 MCAPI void pauseCounterThisTick();
106
107 MCAPI void removeEffects(::BaseAttributeMap& attributeMapToRemoveFrom) const;
108
109 MCAPI ::std::unique_ptr<::CompoundTag> save() const;
110
111 MCAPI void setDifficultyDuration(::SharedTypes::Legacy::Difficulty difficulty, ::EffectDuration duration);
112
113 MCFOLD void setDuration(::EffectDuration dur);
114
115 MCAPI void splitDurations(int splitValue);
116
117 MCAPI bool tick();
118
119 MCAPI void tryInitializeMobEffectData();
120
121 MCAPI void update(::MobEffectInstance const& takeOver);
122
123 MCAPI void updateEffects(::Actor& mob) const;
124
125#ifdef LL_PLAT_C
126 MCAPI void updateModsAndBuffs(::BaseAttributeMap& attributeMapToRemoveFrom) const;
127#endif
128 // NOLINTEND
129
130public:
131 // static functions
132 // NOLINTBEGIN
133 MCAPI static ::mce::Color getAverageColorValue(::std::vector<::MobEffectInstance> const& effects);
134
135 MCAPI static ::MobEffectInstance load(::CompoundTag const& tag);
136 // NOLINTEND
137
138public:
139 // static variables
140 // NOLINTBEGIN
141 MCAPI static ::MobEffectInstance const& NO_EFFECT();
142
143 MCAPI static float& splashDurationMultiplier();
144 // NOLINTEND
145
146public:
147 // constructor thunks
148 // NOLINTBEGIN
149 MCAPI void* $ctor(uint id);
150
151 MCAPI void* $ctor(uint id, ::EffectDuration duration);
152
153 MCAPI void* $ctor(uint id, ::EffectDuration duration, int amplifier);
154
155 MCAPI void*
156 $ctor(uint id, ::EffectDuration duration, int amplifier, bool ambient, bool effectVisible, bool displayAnimation);
157 // NOLINTEND
158};
Definition ActorDamageSource.h:18
Definition Actor.h:125
Definition BaseAttributeMap.h:21
Definition CompoundTag.h:23
Definition HashedString.h:5
Definition Color.h:13
Definition EffectDuration.h:5