LeviLamina
Loading...
Searching...
No Matches
BaseAttributeMap.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/platform/brstd/flat_map.h"
7
8// auto generated forward declare list
9// clang-format off
10class Attribute;
15class HashedString;
16struct AttributeData;
19// clang-format on
20
21class BaseAttributeMap {
22public:
23 // BaseAttributeMap inner types define
24 using UnderlyingMapContainer = ::brstd::
25 flat_map<uint, ::AttributeInstance, ::std::less<uint>, ::std::vector<uint>, ::std::vector<::AttributeInstance>>;
26
27public:
28 // member variables
29 // NOLINTBEGIN
30 ::ll::TypedStorage<
31 8,
32 48,
34 uint,
36 ::std::less<uint>,
37 ::std::vector<uint>,
38 ::std::vector<::AttributeInstance>>>
39 mInstanceMap;
40 ::ll::TypedStorage<8, 24, ::std::vector<::AttributeInstanceHandle>> mDirtyAttributes;
41 ::ll::TypedStorage<8, 8, void (BaseAttributeMap::*)(::AttributeInstance const&)> mOnAttributeModified;
42 // NOLINTEND
43
44public:
45 LLAPI void setDirty(AttributeInstance const& attribute);
46 LLNDAPI bool setCurrentValue(Attribute const& attribute, float value);
47 LLNDAPI bool setMaxValue(Attribute const& attribute, float value);
48 LLNDAPI bool setDefaultValue(Attribute const& attribute, float value);
49
50public:
51 // prevent constructor by default
52 BaseAttributeMap& operator=(BaseAttributeMap const&);
53 BaseAttributeMap();
54
55public:
56 // member functions
57 // NOLINTBEGIN
58 MCAPI BaseAttributeMap(::BaseAttributeMap const&);
59
60 MCAPI void _onAttributeModified(::AttributeInstance const& attributeInstance);
61
62#ifdef LL_PLAT_C
63 MCFOLD void _onAttributeModifiedDisabled(::AttributeInstance const&);
64#endif
65
66 MCAPI ::AttributeInstanceConstRef getInstance(::Attribute const& attribute) const;
67
68#ifdef LL_PLAT_C
69 MCAPI ::AttributeInstanceRef getMutableInstance(::Attribute const& attribute);
70#endif
71
72#ifdef LL_PLAT_S
73 MCAPI ::AttributeInstanceRef getMutableInstance(::HashedString const& name);
74
75 MCAPI ::MutableAttributeWithContext getMutableInstanceWithContext(::Attribute const& attribute);
76#endif
77
78 MCAPI ::AttributeInstanceRef registerAttribute(::Attribute const& baseAttribute);
79 // NOLINTEND
80
81public:
82 // static functions
83 // NOLINTBEGIN
84 MCAPI static void updateAttribute(
85 ::AttributeData const& attributeData,
86 ::AttributeInstanceRef attributeRef,
88 );
89 // NOLINTEND
90
91public:
92 // static variables
93 // NOLINTBEGIN
94 MCAPI static ::std::string const& DIFF_ATTRIBUTES_SIZE();
95
96 MCAPI static ::std::string const& DIFF_DIRTY_ATTRIBUTES();
97
98 MCAPI static ::std::string const& DIFF_DIRTY_ATTRIBUTES_SIZE();
99
100 MCAPI static ::std::string const& DIFF_NO_ATTRIBUTES();
101
102 MCAPI static ::AttributeInstance& mInvalidInstance();
103 // NOLINTEND
104
105public:
106 // constructor thunks
107 // NOLINTBEGIN
108 MCAPI void* $ctor(::BaseAttributeMap const&);
109 // NOLINTEND
110};
Definition AttributeInstanceConstRef.h:13
Definition AttributeInstanceHandle.h:5
Definition AttributeInstanceRef.h:13
Definition AttributeInstance.h:17
Definition Attribute.h:9
Definition HashedString.h:5
Definition flat_map.h:15
Definition AttributeData.h:17
Definition AttributeModificationContext.h:10
Definition MutableAttributeWithContext.h:9
Definition context.h:5