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