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 MolangVariableMap(MolangVariableMap const& rhs) {
35 mMapFromVariableIndexToVariableArrayOffset = rhs.mMapFromVariableIndexToVariableArrayOffset;
36 mVariables = {};
37 for (auto& ptr : *rhs.mVariables) {
38 mVariables->push_back(std::make_unique<MolangVariable>(*ptr));
39 }
40 mHasPublicVariables = rhs.mHasPublicVariables;
41 }
42
43 void setMolangVariable(HashedString const& variableName, ::MolangScriptArg const& value) {
44 setMolangVariable(variableName.getHash(), variableName.c_str(), value);
45 }
46
47public:
48 // member functions
49 // NOLINTBEGIN
50 MCAPI MolangVariableMap();
51
52 MCAPI ::MolangVariable* _getOrAddMolangVariable(::MolangVariableIndex molangVariableIndex);
53
54 MCAPI ::MolangVariableMap& clear();
55
56 MCAPI ::MolangScriptArg const& getMolangVariable(uint64 variableNameHash, char const*) const;
57
58 MCAPI ::MolangVariableMap& operator=(::MolangVariableMap&&);
59
60 MCAPI ::MolangVariableMap& operator=(::MolangVariableMap const& rhs);
61
62 MCAPI bool operator==(::MolangVariableMap const& rhs) const;
63
64 MCAPI void setMolangStructMember(
65 ::MolangVariableIndex molangVariableIndex,
66 ::HashedString const& memberNameDepth0,
67 ::MolangScriptArg const& value
68 );
69
70 MCAPI void setMolangVariable(::MolangVariableIndex molangVariableIndex, ::MolangScriptArg const& value);
71
72 MCAPI void setMolangVariable(uint64 variableNameHash, char const* variableName, ::MolangScriptArg const& value);
73
74 MCAPI_C void updatePublicVariables();
75
76 MCAPI ~MolangVariableMap();
77 // NOLINTEND
78
79public:
80 // constructor thunks
81 // NOLINTBEGIN
82 MCAPI void* $ctor();
83
84 MCAPI_C void* $ctor(::MolangVariableMap&&);
85
86 MCAPI_C void* $ctor(::MolangVariableMap const& rhs);
87 // NOLINTEND
88
89public:
90 // destructor thunk
91 // NOLINTBEGIN
92 MCAPI void $dtor();
93 // NOLINTEND
94};
Definition HashedString.h:5
Definition MolangVariable.h:15
Definition MolangScriptArg.h:33