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