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;
15// clang-format on
16
17class MolangVariableMap {
18public:
19 // MolangVariableMap inner types define
20 enum class MissingVariableHandling : int {
21 Error = 0,
22 NoError = 1,
23 };
24
25public:
26 // member variables
27 // NOLINTBEGIN
28 ::ll::TypedStorage<8, 24, ::std::vector<short>> mMapFromVariableIndexToVariableArrayOffset;
29 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::MolangVariable>>> mVariables;
30 ::ll::TypedStorage<1, 1, bool> mHasPublicVariables;
31 // NOLINTEND
32
33public:
34#ifdef LL_PLAT_S
35 MolangVariableMap(MolangVariableMap const& rhs) {
36 mMapFromVariableIndexToVariableArrayOffset = rhs.mMapFromVariableIndexToVariableArrayOffset;
37 mVariables = {};
38 for (auto& ptr : *rhs.mVariables) {
39 mVariables->push_back(std::make_unique<MolangVariable>(*ptr));
40 }
41 mHasPublicVariables = rhs.mHasPublicVariables;
42 }
43#else // LL_PLAT_C
44#endif
45
46 void setMolangVariable(HashedString const& variableName, ::MolangScriptArg const& value) {
47 setMolangVariable(variableName.getHash(), variableName.c_str(), value);
48 }
49
50public:
51 // member functions
52 // NOLINTBEGIN
53 MCAPI MolangVariableMap();
54
55#ifdef LL_PLAT_C
56 MCAPI MolangVariableMap(::MolangVariableMap&&);
57
58 MCAPI MolangVariableMap(::MolangVariableMap const& rhs);
59#endif
60
61 MCAPI ::MolangVariable* _getOrAddMolangVariable(::MolangVariableIndex molangVariableIndex);
62
63 MCAPI ::MolangVariableMap& clear();
64
65 MCAPI ::MolangScriptArg const& getMolangVariable(uint64 variableNameHash, char const*) const;
66
67 MCAPI ::MolangVariableMap& operator=(::MolangVariableMap&&);
68
69 MCAPI ::MolangVariableMap& operator=(::MolangVariableMap const& rhs);
70
71 MCAPI bool operator==(::MolangVariableMap const& rhs) const;
72
73 MCAPI void setMolangStructMember(
74 ::MolangVariableIndex molangVariableIndex,
75 ::HashedString const& memberNameDepth0,
76 ::MolangScriptArg const& value
77 );
78
79 MCAPI void setMolangVariable(::MolangVariableIndex molangVariableIndex, ::MolangScriptArg const& value);
80
81 MCAPI void setMolangVariable(uint64 variableNameHash, char const* variableName, ::MolangScriptArg const& value);
82
83#ifdef LL_PLAT_C
84 MCAPI void updatePublicVariables();
85#endif
86
87 MCAPI ~MolangVariableMap();
88 // NOLINTEND
89
90public:
91 // constructor thunks
92 // NOLINTBEGIN
93 MCAPI void* $ctor();
94
95#ifdef LL_PLAT_C
96 MCAPI void* $ctor(::MolangVariableMap&&);
97
98 MCAPI void* $ctor(::MolangVariableMap const& rhs);
99#endif
100 // NOLINTEND
101
102public:
103 // destructor thunk
104 // NOLINTBEGIN
105 MCAPI void $dtor();
106 // NOLINTEND
107};
Definition HashedString.h:5
Definition MolangVariable.h:15
Definition MolangScriptArg.h:33