LeviLamina
Loading...
Searching...
No Matches
MolangVariableMap.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4#include "mc/deps/core/string/HashedString.h"
5#include "mc/util/MolangVariable.h"
6
7// auto generated inclusion list
8#include "mc/util/MolangVariableIndex.h"
9
10// auto generated forward declare list
11// clang-format off
12class HashedString;
13class MolangVariable;
14struct MolangScriptArg;
16// clang-format on
17
18class MolangVariableMap {
19public:
20 // MolangVariableMap inner types define
21 enum class MissingVariableHandling : int {
22 Error = 0,
23 NoError = 1,
24 };
25
26public:
27 // member variables
28 // NOLINTBEGIN
29 ::ll::TypedStorage<8, 24, ::std::vector<short>> mMapFromVariableIndexToVariableArrayOffset;
30 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::MolangVariable>>> mVariables;
31 ::ll::TypedStorage<1, 1, bool> mHasPublicVariables;
32 // NOLINTEND
33
34public:
35#ifdef LL_PLAT_S
36 MolangVariableMap(MolangVariableMap const& rhs) {
37 mMapFromVariableIndexToVariableArrayOffset = rhs.mMapFromVariableIndexToVariableArrayOffset;
38 mVariables = {};
39 for (auto& ptr : *rhs.mVariables) {
40 mVariables->push_back(std::make_unique<MolangVariable>(*ptr));
41 }
42 mHasPublicVariables = rhs.mHasPublicVariables;
43 }
44#else // LL_PLAT_C
45#endif
46
47 void setMolangVariable(HashedString const& variableName, ::MolangScriptArg const& value) {
48 setMolangVariable(variableName.getHash(), variableName.c_str(), value);
49 }
50
51public:
52 // member functions
53 // NOLINTBEGIN
54 MCAPI MolangVariableMap();
55
56 MCAPI MolangVariableMap(::MolangVariableMap&& rhs);
57
58 MCAPI ::MolangVariable* _getMolangVariable(
59 ::MolangVariableIndex molangVariableIndex,
60 ::MolangVariableMap::MissingVariableHandling errorHandling
61 ) const;
62
63 MCAPI ::MolangVariable* _getOrAddMolangVariable(::MolangVariableIndex molangVariableIndex);
64
65 MCAPI ::MolangVariableMap& clear();
66
67 MCAPI ::MolangScriptArg const& getMolangVariable(uint64 variableNameHash, char const*) const;
68
69#ifdef LL_PLAT_C
70 MCAPI ::MolangScriptArg const&
71 getOrAddMolangVariable(::HashedString const& variableName, bool allowSpecialCharacters);
72#endif
73
74 MCAPI ::MolangVariableMap& operator=(::MolangVariableMap&& rhs);
75
76 MCAPI ::MolangVariableMap& operator=(::MolangVariableMap const& rhs);
77
78 MCAPI bool operator==(::MolangVariableMap const& rhs) const;
79
80 MCAPI void setMolangStructMember(
81 ::MolangVariableIndex molangVariableIndex,
82 ::HashedString const& memberNameDepth0,
83 ::MolangScriptArg const& value
84 );
85
86 MCAPI void setMolangVariable(::MolangVariableIndex molangVariableIndex, ::MolangScriptArg const& value);
87
88 MCAPI void setMolangVariable(uint64 variableNameHash, char const* variableName, ::MolangScriptArg const& value);
89
90#ifdef LL_PLAT_C
91 MCAPI void setMolangVariable(
92 uint64 variableNameHash,
93 char const* variableName,
94 ::MolangScriptArg const& value,
95 bool allowSpecialCharacters
96 );
97#endif
98
99 MCAPI void setMolangVariableSettings(::MolangVariableSettings const& settings);
100
101#ifdef LL_PLAT_C
102 MCAPI ::MolangScriptArg const* tryGetMolangVariable(uint64 variableNameHash) const;
103
104 MCAPI void updatePublicVariables();
105#endif
106
107 MCAPI ~MolangVariableMap();
108 // NOLINTEND
109
110public:
111 // constructor thunks
112 // NOLINTBEGIN
113 MCAPI void* $ctor();
114
115 MCAPI void* $ctor(::MolangVariableMap&& rhs);
116
117 MCAPI void* $ctor(::MolangVariableMap const& rhs);
118 // NOLINTEND
119
120public:
121 // destructor thunk
122 // NOLINTBEGIN
123 MCAPI void $dtor();
124 // NOLINTEND
125};
Definition HashedString.h:5
Definition MolangVariable.h:15
Definition MolangScriptArg.h:35
Definition MolangVariableSettings.h:9