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