LeviLamina
Loading...
Searching...
No Matches
ScriptTickingAreaManager.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/scripting/lifetime_registry/WeakLifetimeScope.h"
7#include "mc/deps/scripting/runtime/Result.h"
8#include "mc/deps/scripting/script_engine/Promise.h"
9#include "mc/platform/UUID.h"
10#include "mc/util/Bounds.h"
11#include "mc/world/events/EventListenerDispatcher.h"
12#include "mc/world/events/EventResult.h"
13#include "mc/world/events/LevelEventListener.h"
14#include "mc/world/level/ChunkPos.h"
15#include "mc/world/level/dimension/DimensionType.h"
16
17// auto generated forward declare list
18// clang-format off
19class ServerLevel;
21namespace ScriptModuleMinecraft { struct ScriptTickingArea; }
22namespace ScriptModuleMinecraft { struct ScriptTickingAreaError; }
23namespace ScriptModuleMinecraft { struct ScriptTickingAreaOptions; }
24namespace Scripting { class ScriptObjectFactory; }
25namespace Scripting { struct ClassBinding; }
26namespace Scripting { struct ContextConfig; }
27namespace Scripting { struct EngineError; }
28namespace Scripting { struct Error; }
29// clang-format on
30
31namespace ScriptModuleMinecraft {
32
33class ScriptTickingAreaManager : public ::EventListenerDispatcher<::LevelEventListener> {
34public:
35 // ScriptTickingAreaManager inner types declare
36 // clang-format off
37 struct Counter;
38 struct PromiseContext;
39 // clang-format on
40
41 // ScriptTickingAreaManager inner types define
42 struct Counter {
43 public:
44 // member variables
45 // NOLINTBEGIN
46 ::ll::TypedStorage<4, 4, int> mCount;
47 // NOLINTEND
48 };
49
50 struct PromiseContext {
51 public:
52 // member variables
53 // NOLINTBEGIN
54 ::ll::TypedStorage<8, 32, ::std::string> mName;
55 ::ll::TypedStorage<4, 48, ::Bounds> mBounds;
56 ::ll::TypedStorage<8, 80, ::Scripting::Promise<void, ::Scripting::Error>> mPromise;
57 ::ll::TypedStorage<4, 4, ::DimensionType> mDimensionType;
58 ::ll::TypedStorage<1, 1, bool> mFinishedLoading;
59 // NOLINTEND
60
61 public:
62 // prevent constructor by default
63 PromiseContext& operator=(PromiseContext const&);
64 PromiseContext();
65
66 public:
67 // member functions
68 // NOLINTBEGIN
70
71 MCAPI ~PromiseContext();
72 // NOLINTEND
73
74 public:
75 // constructor thunks
76 // NOLINTBEGIN
78 // NOLINTEND
79
80 public:
81 // destructor thunk
82 // NOLINTBEGIN
83 MCAPI void $dtor();
84 // NOLINTEND
85 };
86
87public:
88 // member variables
89 // NOLINTBEGIN
90 ::ll::TypedStorage<
91 8,
92 64,
93 ::std::unordered_map<::mce::UUID, ::ScriptModuleMinecraft::ScriptTickingAreaManager::PromiseContext>>
94 mPromiseContexts;
95 ::ll::TypedStorage<
96 8,
97 16,
98 ::std::map<
100 ::std::unordered_map<::ChunkPos, ::ScriptModuleMinecraft::ScriptTickingAreaManager::Counter>>>
101 mTickingChunksCache;
102 ::ll::TypedStorage<4, 4, int const> mMaxNumberOfChunks;
103 ::ll::TypedStorage<8, 16, ::Scripting::WeakLifetimeScope> mScope;
104 ::ll::TypedStorage<8, 8, ::gsl::not_null<::ServerLevel*>> mLevel;
105 // NOLINTEND
106
107public:
108 // prevent constructor by default
109 ScriptTickingAreaManager();
110
111public:
112 // virtual functions
113 // NOLINTBEGIN
114 virtual ~ScriptTickingAreaManager() /*override*/;
115
116 virtual ::EventResult onEvent(::LevelTickingAreaFinishedLoadingEvent const& event) /*override*/;
117 // NOLINTEND
118
119public:
120 // member functions
121 // NOLINTBEGIN
122 MCAPI ScriptTickingAreaManager(
124 ::gsl::not_null<::ServerLevel*> level,
126 );
127
128 MCAPI ::std::optional<::ScriptModuleMinecraft::ScriptTickingArea>
130
131 MCAPI bool _hasCapacity(::DimensionType const& dimensionId, ::Bounds const& bounds);
132
133 MCAPI bool _removeTickingAreas(::std::vector<::mce::UUID> const& uuids);
134
135 MCAPI void _removeTickingChunksFromCache(::DimensionType const& dimensionId, ::Bounds const& bounds);
136
137 MCAPI ::Scripting::Result<
141 createTickingArea(
143 ::Scripting::ContextConfig const& contextConfig,
144 ::std::string const& identifier,
146 );
147
148 MCAPI ::Scripting::Result<::std::vector<::ScriptModuleMinecraft::ScriptTickingArea>, ::Scripting::EngineError>
149 getAllTickingAreas() const;
150
151 MCAPI ::Scripting::Result<::std::optional<::ScriptModuleMinecraft::ScriptTickingArea>, ::Scripting::EngineError>
152 getTickingArea(::std::variant<::std::string, ::ScriptModuleMinecraft::ScriptTickingArea> const& area) const;
153
154 MCAPI bool hasCapacity(::ScriptModuleMinecraft::ScriptTickingAreaOptions const& options);
155
156 MCAPI bool hasTickingArea(::std::string const& identifier) const;
157
158 MCAPI ::Scripting::Result<void, ::Scripting::EngineError> removeAllTickingAreas();
159
160 MCAPI ::Scripting::Result<void, ::ScriptModuleMinecraft::ScriptTickingAreaError, ::Scripting::EngineError>
161 removeTickingArea(::std::variant<::std::string, ::ScriptModuleMinecraft::ScriptTickingArea> const& area);
162
163 MCAPI bool tryResolvePromise(::mce::UUID uuid);
164 // NOLINTEND
165
166public:
167 // static functions
168 // NOLINTBEGIN
169 MCAPI static ::Scripting::ClassBinding bind();
170 // NOLINTEND
171
172public:
173 // constructor thunks
174 // NOLINTBEGIN
175 MCAPI void* $ctor(
177 ::gsl::not_null<::ServerLevel*> level,
179 );
180 // NOLINTEND
181
182public:
183 // destructor thunk
184 // NOLINTBEGIN
185 MCAPI void $dtor();
186 // NOLINTEND
187
188public:
189 // virtual function thunks
190 // NOLINTBEGIN
191 MCAPI ::EventResult $onEvent(::LevelTickingAreaFinishedLoadingEvent const& event);
192
193
194 // NOLINTEND
195
196public:
197 // vftables
198 // NOLINTBEGIN
199 MCNAPI static void** $vftable();
200 // NOLINTEND
201};
202
203} // namespace ScriptModuleMinecraft
Definition EventListenerDispatcher.h:6
Definition Promise.h:8
Definition ScriptObjectFactory.h:7
Definition WeakLifetimeScope.h:14
Definition ServerLevel.h:59
Definition UUID.h:7
Definition Bounds.h:8
Definition DimensionType.h:5
Definition LevelTickingAreaFinishedLoadingEvent.h:8
Definition ScriptTickingAreaError.h:16
Definition ScriptTickingAreaManager.h:42
Definition ScriptTickingAreaOptions.h:17
Definition ScriptTickingArea.h:17
Definition ClassBinding.h:19
Definition ContextConfig.h:20
Definition EngineError.h:15
Definition Error.h:10
Definition context.h:5