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