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/platform/UUID.h"
11#include "mc/util/Bounds.h"
12#include "mc/world/events/EventListenerDispatcher.h"
13#include "mc/world/events/EventResult.h"
14#include "mc/world/events/LevelEventListener.h"
15#include "mc/world/level/ChunkPos.h"
16
17// auto generated forward declare list
18// clang-format off
19class Dimension;
20class ServerLevel;
21class Vec3;
23namespace ScriptModuleMinecraft { struct ScriptTickingArea; }
24namespace ScriptModuleMinecraft { struct ScriptTickingAreaError; }
25namespace ScriptModuleMinecraft { struct ScriptTickingAreaOptions; }
26namespace Scripting { class ScriptObjectFactory; }
27namespace Scripting { struct ClassBinding; }
28namespace Scripting { struct ContextConfig; }
29namespace Scripting { struct EngineError; }
30namespace Scripting { struct Error; }
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<8, 80, ::Scripting::Promise<void, ::Scripting::Error>> mPromise;
59 ::ll::TypedStorage<4, 4, ::DimensionType> mDimensionType;
60 ::ll::TypedStorage<1, 1, bool> mFinishedLoading;
61 // NOLINTEND
62
63 public:
64 // member functions
65 // NOLINTBEGIN
66 MCAPI ~PromiseContext();
67 // NOLINTEND
68
69 public:
70 // destructor thunk
71 // NOLINTBEGIN
72 MCAPI void $dtor();
73 // NOLINTEND
74 };
75
76public:
77 // member variables
78 // NOLINTBEGIN
79 ::ll::TypedStorage<
80 8,
81 64,
82 ::std::unordered_map<::mce::UUID, ::ScriptModuleMinecraft::ScriptTickingAreaManager::PromiseContext>>
83 mPromiseContexts;
84 ::ll::TypedStorage<
85 8,
86 16,
87 ::std::map<
88 ::DimensionType,
89 ::std::unordered_map<::ChunkPos, ::ScriptModuleMinecraft::ScriptTickingAreaManager::Counter>>>
90 mTickingChunksCache;
91 ::ll::TypedStorage<4, 4, int const> mMaxNumberOfChunks;
92 ::ll::TypedStorage<8, 16, ::Scripting::WeakLifetimeScope> mScope;
93 ::ll::TypedStorage<8, 8, ::gsl::not_null<::ServerLevel*>> mLevel;
94 // NOLINTEND
95
96public:
97 // prevent constructor by default
98 ScriptTickingAreaManager& operator=(ScriptTickingAreaManager const&);
99 ScriptTickingAreaManager();
100
101public:
102 // virtual functions
103 // NOLINTBEGIN
104 virtual ::EventResult onEvent(::LevelTickingAreaFinishedLoadingEvent const& event) /*override*/;
105
106 virtual ~ScriptTickingAreaManager() /*override*/;
107 // NOLINTEND
108
109public:
110 // member functions
111 // NOLINTBEGIN
112 MCAPI ScriptTickingAreaManager(::ScriptModuleMinecraft::ScriptTickingAreaManager const&);
113
114 MCAPI ::Bounds _getChunkBounds(::Vec3 const& from, ::Vec3 const& to) const;
115
116 MCAPI ::std::optional<::ScriptModuleMinecraft::ScriptTickingArea>
118
119 MCAPI bool _hasCapacity(::DimensionType const& dimensionId, ::Bounds const& bounds);
120
121 MCAPI bool _removeTickingAreas(::std::vector<::mce::UUID> const& uuids);
122
123 MCAPI void _removeTickingChunksFromCache(::DimensionType const& dimensionId, ::Bounds const& bounds);
124
125 MCAPI ::Scripting::Result<
129 createTickingArea(
131 ::Scripting::ContextConfig const& contextConfig,
132 ::std::string const& identifier,
134 );
135
136 MCAPI ::Scripting::Result<::std::vector<::ScriptModuleMinecraft::ScriptTickingArea>, ::Scripting::EngineError>
137 getAllTickingAreas() const;
138
139 MCAPI ::Scripting::Result<::std::optional<::ScriptModuleMinecraft::ScriptTickingArea>, ::Scripting::EngineError>
140 getTickingArea(::std::variant<::std::string, ::ScriptModuleMinecraft::ScriptTickingArea> const& area) const;
141
142 MCAPI bool hasCapacity(::ScriptModuleMinecraft::ScriptTickingAreaOptions const& options);
143
144 MCAPI ::Scripting::Result<void, ::Scripting::EngineError> removeAllTickingAreas();
145
146 MCAPI ::Scripting::Result<void, ::ScriptModuleMinecraft::ScriptTickingAreaError, ::Scripting::EngineError>
147 removeTickingArea(::std::variant<::std::string, ::ScriptModuleMinecraft::ScriptTickingArea> const& area);
148 // NOLINTEND
149
150public:
151 // static functions
152 // NOLINTBEGIN
153 MCAPI static ::Scripting::ClassBinding bind();
154 // NOLINTEND
155
156public:
157 // constructor thunks
158 // NOLINTBEGIN
160 // NOLINTEND
161
162public:
163 // destructor thunk
164 // NOLINTBEGIN
165 MCAPI void $dtor();
166 // NOLINTEND
167
168public:
169 // virtual function thunks
170 // NOLINTBEGIN
171 MCAPI ::EventResult $onEvent(::LevelTickingAreaFinishedLoadingEvent const& event);
172
173
174 // NOLINTEND
175
176public:
177 // vftables
178 // NOLINTBEGIN
179 MCNAPI static void** $vftable();
180 // NOLINTEND
181};
182
183} // namespace ScriptModuleMinecraft
Definition Dimension.h:86
Definition EventListenerDispatcher.h:6
Definition ScriptTickingAreaManager.h:35
Definition Promise.h:8
Definition ScriptObjectFactory.h:7
Definition ServerLevel.h:56
Definition Vec3.h:10
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