LeviLamina
Loading...
Searching...
No Matches
AttributeInstance.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated forward declare list
6// clang-format off
7class Attribute;
8class AttributeBuff;
14// clang-format on
15
16class AttributeInstance {
17public:
18 // AttributeInstance inner types define
19 using ModifierVector = ::std::vector<::AttributeModifier>;
20
21public:
22 // member variables
23 // NOLINTBEGIN
24 ::ll::TypedStorage<8, 8, ::Attribute const*> mAttribute;
25 ::ll::TypedStorage<8, 24, ::std::vector<::AttributeModifier>> mModifierList;
26 ::ll::TypedStorage<8, 24, ::std::vector<::TemporalAttributeBuff>> mTemporalBuffs;
27 ::ll::TypedStorage<8, 24, ::std::vector<::AttributeInstanceHandle>> mListeners;
28 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::AttributeInstanceDelegate>> mDelegate;
29 union {
30 ::ll::TypedStorage<4, 12, float[3]> mDefaultValues;
31 struct {
32 ::ll::TypedStorage<4, 4, float> mDefaultMinValue;
33 ::ll::TypedStorage<4, 4, float> mDefaultMaxValue;
34 ::ll::TypedStorage<4, 4, float> mDefaultValue;
35 };
36 };
37 union {
38 ::ll::TypedStorage<4, 12, float[3]> mCurrentValues;
39 struct {
40 ::ll::TypedStorage<4, 4, float> mCurrentMinValue;
41 ::ll::TypedStorage<4, 4, float> mCurrentMaxValue;
42 ::ll::TypedStorage<4, 4, float> mCurrentValue;
43 };
44 };
45 // NOLINTEND
46
47public:
48 // prevent constructor by default
49 AttributeInstance();
50
51public:
52 // virtual functions
53 // NOLINTBEGIN
54 virtual ~AttributeInstance();
55
56 virtual void tick(::AttributeModificationContext context);
57 // NOLINTEND
58
59public:
60 // member functions
61 // NOLINTBEGIN
62 MCAPI AttributeInstance(::AttributeInstance const&);
63
64 MCAPI float _calculateValue();
65
66 MCAPI float _sanitizeValue(float value);
67
68 MCAPI void addBuff(::AttributeBuff const& buff, ::AttributeModificationContext context);
69
70 MCAPI void addModifier(::AttributeModifier const& modifier, ::AttributeModificationContext context);
71
72 MCAPI ::std::vector<::AttributeModifier> getModifiers() const;
73
74 MCAPI bool hasModifier(::std::shared_ptr<::AttributeModifier> modifier) const;
75
76 MCAPI ::AttributeInstance& operator=(::AttributeInstance const&);
77
78 MCAPI void removeBuff(::AttributeBuff const& buff);
79
80 MCAPI void removeModifier(::AttributeModifier const& modifier, ::AttributeModificationContext context);
81
82 MCAPI void removeModifiers(::AttributeModificationContext context);
83
84 MCAPI void setRange(float min, float defaultValue, float max, ::AttributeModificationContext context);
85
86 MCAPI void updateModifier(::AttributeModifier const& takeOver, ::AttributeModificationContext context);
87 // NOLINTEND
88
89public:
90 // constructor thunks
91 // NOLINTBEGIN
92 MCAPI void* $ctor(::AttributeInstance const&);
93 // NOLINTEND
94
95public:
96 // destructor thunk
97 // NOLINTBEGIN
98 MCAPI void $dtor();
99 // NOLINTEND
100
101public:
102 // virtual function thunks
103 // NOLINTBEGIN
104 MCAPI void $tick(::AttributeModificationContext context);
105
106
107 // NOLINTEND
108
109public:
110 // vftables
111 // NOLINTBEGIN
112 MCAPI static void** $vftable();
113 // NOLINTEND
114};
Definition AttributeBuff.h:14
Definition AttributeInstanceDelegate.h:15
Definition AttributeInstanceHandle.h:5
Definition AttributeModifier.h:10
Definition Attribute.h:9
Definition TemporalAttributeBuff.h:14
Definition AttributeModificationContext.h:10
Definition context.h:5