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
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& operator=(AttributeInstance const&);
51
52public:
53 // virtual functions
54 // NOLINTBEGIN
55 // vIndex: 0
56 virtual ~AttributeInstance();
57
58 // vIndex: 1
59 virtual void tick(::AttributeModificationContext context);
60 // NOLINTEND
61
62public:
63 // member functions
64 // NOLINTBEGIN
66
67 MCAPI float _calculateValue();
68
69 MCAPI float _sanitizeValue(float value);
70
71 MCAPI void addBuff(::AttributeBuff const& buff, ::AttributeModificationContext context);
72
73 MCAPI void addModifier(::AttributeModifier const& modifier, ::AttributeModificationContext context);
74
75 MCAPI ::std::vector<::AttributeModifier> getModifiers() const;
76
77 MCAPI bool hasModifier(::AttributeModifier const& modifier) const;
78
79 MCAPI bool hasModifier(::std::shared_ptr<::AttributeModifier> modifier) const;
80
81 MCAPI void removeBuff(::AttributeBuff const& buff);
82
83 MCAPI void removeModifier(::AttributeModifier const& modifier, ::AttributeModificationContext context);
84
85 MCAPI void removeModifiers(::AttributeModificationContext context);
86
87 MCAPI void setRange(float min, float defaultValue, float max, ::AttributeModificationContext context);
88
89 MCAPI void updateModifier(::AttributeModifier const& takeOver, ::AttributeModificationContext context);
90 // NOLINTEND
91
92public:
93 // constructor thunks
94 // NOLINTBEGIN
95 MCAPI void* $ctor(::AttributeInstance const&);
96 // NOLINTEND
97
98public:
99 // destructor thunk
100 // NOLINTBEGIN
101 MCAPI void $dtor();
102 // NOLINTEND
103
104public:
105 // virtual function thunks
106 // NOLINTBEGIN
107 MCAPI void $tick(::AttributeModificationContext context);
108 // NOLINTEND
109
110public:
111 // vftables
112 // NOLINTBEGIN
113 MCNAPI static void** $vftable();
114 // NOLINTEND
115};
Definition AttributeBuff.h:14
Definition AttributeInstanceDelegate.h:15
Definition AttributeInstanceHandle.h:5
Definition AttributeInstance.h:16
static MCAPI void ** $vftable()
Definition AttributeModifier.h:10
Definition Attribute.h:9
Definition TemporalAttributeBuff.h:14
Definition AttributeModificationContext.h:10
Definition context.h:5