LeviLamina
Loading...
Searching...
No Matches
MultiPlayerLevel.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/multiplayer/BeforeLevelForLevelHoldingOwnership.h"
7#include "mc/deps/core/utility/NonOwnerPointer.h"
8#include "mc/deps/core/utility/UniqueOwnerPointer.h"
9#include "mc/deps/core/utility/pub_sub/Subscription.h"
10#include "mc/deps/game_refs/OwnerPtr.h"
11#include "mc/world/level/Level.h"
12#include "mc/world/level/PlayerSleepManager.h"
13
14// auto generated forward declare list
15// clang-format off
16class Actor;
19class BlockSource;
20class CameraRegistry;
21class ChunkSource;
24class EntityContext;
25class EntitySystems;
26class Experiments;
28class LevelChunk;
29class LevelSettings;
30class MapDataManager;
33class SubChunkManager;
34class SubChunkPacket;
36class TickTimeManager;
40class WeakEntityRef;
41struct ActorUniqueID;
44struct Tick;
45namespace GameModeExt { struct MessengerFactory; }
46// clang-format on
47
49public:
50 // MultiPlayerLevel inner types define
51 using ActorIdMap = ::std::map<int, ::Actor*>;
52
53 using ActorSet = ::std::set<::Actor*>;
54
55public:
56 // member variables
57 // NOLINTBEGIN
58 ::ll::TypedStorage<8, 16, ::gsl::not_null<::Bedrock::UniqueOwnerPointer<::TrustedSkinHelper>>> mTrustedSkinHelper;
59 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::CameraRegistry>>> mCameraRegistry;
60 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::EntitySystems>>> mCameraSystems;
61 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::VolumeEntityManagerClient>> mVolumeEntityManager;
62 ::ll::TypedStorage<8, 16, ::gsl::not_null<::OwnerPtr<::TickTimeManagerClient>>> mTickTimeManager;
63 ::ll::TypedStorage<8, 16, ::gsl::not_null<::Bedrock::UniqueOwnerPointer<::SubChunkManager>>> mSubChunkManager;
64 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnSubChunkLoaded;
65 ::ll::TypedStorage<8, 16, ::gsl::not_null<::Bedrock::UniqueOwnerPointer<::DisplayActorManager>>>
66 mDisplayActorManager;
67 ::ll::TypedStorage<8, 40, ::PlayerSleepManager> mPlayerSleepManager;
68 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ArmorTrimIconGenerator>> mArmorTrimIconGenerator;
69 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ArmorTrimUnloader>> mArmorTrimUnloader;
70 ::ll::TypedStorage<8, 16, ::gsl::not_null<::Bedrock::UniqueOwnerPointer<::MapDataManager>>> mMapDataManager;
71 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::ClientSubChunkLighter>> mClientSubChunkLighter;
72 // NOLINTEND
73
74public:
75 // prevent constructor by default
76 MultiPlayerLevel();
77
78public:
79 // virtual functions
80 // NOLINTBEGIN
81 virtual ~MultiPlayerLevel() /*override*/;
82
83 virtual bool initialize(
84 ::std::string const& levelName,
85 ::LevelSettings const& levelSettings,
86 ::Experiments const& experiments,
87 ::std::string const* levelId,
88 ::std::optional<::std::reference_wrapper<
89 ::std::unordered_map<::std::string, ::std::unique_ptr<::BiomeJsonDocumentGlueResolvedBiomeData>>>>
90 biomeIdToResolvedData
91 ) /*override*/;
92
93 virtual ::Tick const getCurrentServerTick() const /*override*/;
94
95 virtual void startLeaveGame() /*override*/;
96
97 virtual ::Actor* addEntity(::BlockSource& region, ::OwnerPtr<::EntityContext> entity) /*override*/;
98
99 virtual ::OwnerPtr<::EntityContext> removeActorFromWorldAndTakeEntity(::WeakEntityRef entityRef) /*override*/;
100
101 virtual ::OwnerPtr<::EntityContext> takeEntity(::WeakEntityRef entityRef, ::LevelChunk& lc) /*override*/;
102
103 virtual ::Actor* addDisplayEntity(::BlockSource& region, ::OwnerPtr<::EntityContext> entity) /*override*/;
104
105 virtual void removeDisplayEntity(::WeakEntityRef entity) /*override*/;
106
107 virtual ::Bedrock::NonOwnerPointer<::DisplayActorManager> getDisplayActorManager() /*override*/;
108
109 virtual ::PlayerSleepManager const& getPlayerSleepManager() const /*override*/;
110
111 virtual ::PlayerSleepManager& getPlayerSleepManager() /*override*/;
112
113 virtual void notifySubChunkRequestManager(::SubChunkPacket const& packet) /*override*/;
114
115 virtual ::SubChunkRequestManager* getSubChunkRequestManager() /*override*/;
116
117 virtual void onSubChunkLoaded(
118 ::ChunkSource& source,
119 ::LevelChunk& lc,
120 short absoluteSubChunkIndex,
121 bool subChunkVisibilityChanged
122 ) /*override*/;
123
124 virtual ::Bedrock::NonOwnerPointer<::SubChunkManager> getSubChunkManager() /*override*/;
125
126 virtual bool canUseSkin(
127 ::SerializedSkinRef const& skin,
128 ::NetworkIdentifier const& networkIdentifier,
129 ::ActorUniqueID const& playerId
130 ) const /*override*/;
131
132 virtual ::Bedrock::NonOwnerPointer<::TrustedSkinHelper const> getTrustedSkinHelper() const /*override*/;
133
134 virtual ::MultiPlayerLevel* asMultiPlayerLevel() /*override*/;
135
136 virtual ::Bedrock::NonOwnerPointer<::CameraRegistry const> getCameraRegistry() const /*override*/;
137
138 virtual ::Bedrock::NonOwnerPointer<::CameraRegistry> getCameraRegistry() /*override*/;
139
140 virtual ::Bedrock::NonOwnerPointer<::EntitySystems> getCameraSystems() /*override*/;
141
142 virtual ::ArmorTrimUnloader* getArmorTrimUnloader() /*override*/;
143
144 virtual ::Bedrock::NotNullNonOwnerPtr<::MapDataManager> getMapDataManager() /*override*/;
145
146 virtual ::GameModeExt::MessengerFactory createMessengerFactory() const /*override*/;
147
148 virtual void subChunkTickAndSendRequests() /*override*/;
149
150 virtual ::std::weak_ptr<::ISubChunkLighter> getSubChunkLighter() const /*override*/;
151
152 virtual ::TickTimeManager const& _getTickTimeManager() const /*override*/;
153
154 virtual ::TickTimeManager& _getTickTimeManager() /*override*/;
155
156 virtual ::MapDataManager& _getMapDataManager() /*override*/;
157
158 virtual void _subTick() /*override*/;
159 // NOLINTEND
160
161public:
162 // member functions
163 // NOLINTBEGIN
164 MCAPI explicit MultiPlayerLevel(::MultiPlayerLevelArguments&& args);
165
166 MCAPI void _initializeSubChunkManager();
167
168 MCAPI void _onSubChunkLoaded(
169 ::ChunkSource& source,
170 ::LevelChunk& lc,
171 short absoluteSubChunkIndex,
172 bool subChunkVisibilityChanged
173 );
174
175 MCAPI void cameraTick();
176 // NOLINTEND
177
178public:
179 // constructor thunks
180 // NOLINTBEGIN
181 MCAPI void* $ctor(::MultiPlayerLevelArguments&& args);
182 // NOLINTEND
183
184public:
185 // destructor thunk
186 // NOLINTBEGIN
187 MCAPI void $dtor();
188 // NOLINTEND
189
190public:
191 // virtual function thunks
192 // NOLINTBEGIN
193 MCAPI bool $initialize(
194 ::std::string const& levelName,
195 ::LevelSettings const& levelSettings,
196 ::Experiments const& experiments,
197 ::std::string const* levelId,
198 ::std::optional<::std::reference_wrapper<
199 ::std::unordered_map<::std::string, ::std::unique_ptr<::BiomeJsonDocumentGlueResolvedBiomeData>>>>
200 biomeIdToResolvedData
201 );
202
203 MCAPI ::Tick const $getCurrentServerTick() const;
204
205 MCAPI void $startLeaveGame();
206
207 MCAPI ::Actor* $addEntity(::BlockSource& region, ::OwnerPtr<::EntityContext> entity);
208
209 MCAPI ::OwnerPtr<::EntityContext> $removeActorFromWorldAndTakeEntity(::WeakEntityRef entityRef);
210
211 MCAPI ::OwnerPtr<::EntityContext> $takeEntity(::WeakEntityRef entityRef, ::LevelChunk& lc);
212
213 MCAPI ::Actor* $addDisplayEntity(::BlockSource& region, ::OwnerPtr<::EntityContext> entity);
214
215 MCAPI void $removeDisplayEntity(::WeakEntityRef entity);
216
217 MCAPI ::Bedrock::NonOwnerPointer<::DisplayActorManager> $getDisplayActorManager();
218
219 MCFOLD ::PlayerSleepManager const& $getPlayerSleepManager() const;
220
221 MCFOLD ::PlayerSleepManager& $getPlayerSleepManager();
222
223 MCAPI void $notifySubChunkRequestManager(::SubChunkPacket const& packet);
224
225 MCAPI ::SubChunkRequestManager* $getSubChunkRequestManager();
226
227 MCAPI void $onSubChunkLoaded(
228 ::ChunkSource& source,
229 ::LevelChunk& lc,
230 short absoluteSubChunkIndex,
231 bool subChunkVisibilityChanged
232 );
233
234 MCAPI ::Bedrock::NonOwnerPointer<::SubChunkManager> $getSubChunkManager();
235
236 MCAPI bool $canUseSkin(
237 ::SerializedSkinRef const& skin,
238 ::NetworkIdentifier const& networkIdentifier,
239 ::ActorUniqueID const& playerId
240 ) const;
241
242 MCAPI ::Bedrock::NonOwnerPointer<::TrustedSkinHelper const> $getTrustedSkinHelper() const;
243
244 MCFOLD ::MultiPlayerLevel* $asMultiPlayerLevel();
245
246 MCFOLD ::Bedrock::NonOwnerPointer<::CameraRegistry const> $getCameraRegistry() const;
247
248 MCFOLD ::Bedrock::NonOwnerPointer<::CameraRegistry> $getCameraRegistry();
249
250 MCAPI ::Bedrock::NonOwnerPointer<::EntitySystems> $getCameraSystems();
251
252 MCFOLD ::ArmorTrimUnloader* $getArmorTrimUnloader();
253
254 MCAPI ::Bedrock::NotNullNonOwnerPtr<::MapDataManager> $getMapDataManager();
255
256 MCAPI ::GameModeExt::MessengerFactory $createMessengerFactory() const;
257
258 MCAPI void $subChunkTickAndSendRequests();
259
260 MCAPI ::std::weak_ptr<::ISubChunkLighter> $getSubChunkLighter() const;
261
262 MCFOLD ::TickTimeManager const& $_getTickTimeManager() const;
263
264 MCFOLD ::TickTimeManager& $_getTickTimeManager();
265
266 MCAPI ::MapDataManager& $_getMapDataManager();
267
268 MCAPI void $_subTick();
269 // NOLINTEND
270
271public:
272 // vftables
273 // NOLINTBEGIN
274 MCNAPI static void** $vftableForILevel();
275
277
278 MCNAPI static void** $vftableForBlockSourceListener();
279 // NOLINTEND
280};
Definition Actor.h:106
Definition ArmorTrimIconGenerator.h:5
Definition ArmorTrimUnloader.h:5
Definition BeforeLevelForLevelHoldingOwnership.h:5
Definition BlockSource.h:71
Definition CameraRegistry.h:5
Definition ChunkSource.h:38
Definition ClientSubChunkLighter.h:5
Definition DisplayActorManager.h:21
Definition EntityContext.h:16
Definition EntitySystems.h:26
Definition Experiments.h:14
Definition ISubChunkLighter.h:16
Definition LevelChunk.h:79
Definition LevelSettings.h:39
Definition Level.h:250
Definition MapDataManager.h:24
Definition MultiPlayerLevel.h:5
static MCAPI void ** $vftableForBlockSourceListener()
static MCAPI void ** $vftableForILevel()
static MCAPI void ** $vftableForIWorldRegistriesProvider()
Definition NetworkIdentifier.h:10
Definition SerializedSkinRef.h:23
Definition SubChunkManager.h:5
Definition SubChunkPacket.h:19
Definition SubChunkRequestManager.h:18
Definition TickTimeManagerClient.h:16
Definition TickTimeManager.h:15
Definition TrustedSkinHelper.h:5
Definition VolumeEntityManagerClient.h:5
Definition WeakEntityRef.h:14
Definition ActorUniqueID.h:5
Definition BiomeJsonDocumentGlueResolvedBiomeData.h:10
Definition MessengerFactory.h:13
Definition MultiPlayerLevelArguments.h:5
Definition Tick.h:5