3#include "mc/_HeaderOutputPredefine.h"
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"
51 using ActorIdMap = ::std::map<int, ::Actor*>;
53 using ActorSet = ::std::set<::Actor*>;
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>>>
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;
81 virtual ~ClientLevel() =
default;
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>>>>
93 virtual ::Tick
const getCurrentServerTick() const ;
95 virtual
void startLeaveGame() ;
97 virtual ::Actor* addEntity(::BlockSource& region, ::OwnerPtr<::EntityContext> entity) ;
99 virtual ::OwnerPtr<::EntityContext> removeActorFromWorldAndTakeEntity(::WeakEntityRef entityRef) ;
101 virtual ::OwnerPtr<::EntityContext> takeEntity(::WeakEntityRef entityRef, ::LevelChunk& lc) ;
103 virtual ::Actor* addDisplayEntity(::BlockSource& region, ::OwnerPtr<::EntityContext> entity) ;
105 virtual
void removeDisplayEntity(::WeakEntityRef entity) ;
107 virtual ::Bedrock::NonOwnerPointer<::DisplayActorManager> getDisplayActorManager() ;
109 virtual ::PlayerSleepManager const& getPlayerSleepManager() const ;
111 virtual ::PlayerSleepManager& getPlayerSleepManager() ;
113 virtual
void notifySubChunkRequestManager(::SubChunkPacket const& packet) ;
115 virtual ::SubChunkRequestManager* getSubChunkRequestManager() ;
117 virtual
void onSubChunkLoaded(
118 ::ChunkSource& source,
120 short absoluteSubChunkIndex,
121 bool subChunkVisibilityChanged
124 virtual ::Bedrock::NonOwnerPointer<::SubChunkManager> getSubChunkManager() ;
126 virtual
bool canUseSkin(
127 ::SerializedSkinRef const& skin,
128 ::NetworkIdentifier const& networkIdentifier,
129 ::ActorUniqueID const& playerId
132 virtual ::Bedrock::NonOwnerPointer<::TrustedSkinHelper const> getTrustedSkinHelper() const ;
134 virtual ::ClientLevel* asClientLevel() ;
136 virtual ::Bedrock::NonOwnerPointer<::CameraRegistry const> getCameraRegistry() const ;
138 virtual ::Bedrock::NonOwnerPointer<::CameraRegistry> getCameraRegistry() ;
140 virtual ::Bedrock::NonOwnerPointer<::EntitySystems> getCameraSystems() ;
142 virtual ::ArmorTrimUnloader* getArmorTrimUnloader() ;
144 virtual ::Bedrock::NotNullNonOwnerPtr<::MapDataManager> getMapDataManager() ;
146 virtual ::GameModeExt::MessengerFactory createMessengerFactory() const ;
148 virtual
void subChunkTickAndSendRequests() ;
150 virtual ::std::weak_ptr<::ISubChunkLighter> getSubChunkLighter() const ;
152 virtual ::TickTimeManager const& _getTickTimeManager() const ;
154 virtual ::TickTimeManager& _getTickTimeManager() ;
156 virtual ::MapDataManager& _getMapDataManager() ;
158 virtual
void _subTick() ;
164 MCAPI explicit ClientLevel(::ClientLevelArguments&& args);
166 MCAPI
void _onSubChunkLoaded(
167 ::ChunkSource& source,
169 short absoluteSubChunkIndex,
170 bool subChunkVisibilityChanged
173 MCAPI
void cameraTick();
179 MCAPI
void* $ctor(::ClientLevelArguments&& args);
185 MCAPI
bool $initialize(
186 ::std::
string const& levelName,
187 ::LevelSettings const& levelSettings,
188 ::Experiments const& experiments,
189 ::std::
string const* levelId,
190 ::std::optional<::std::reference_wrapper<
191 ::std::unordered_map<::std::
string, ::std::unique_ptr<::BiomeJsonDocumentGlueResolvedBiomeData>>>>
192 biomeIdToResolvedData
195 MCAPI ::Tick const $getCurrentServerTick() const;
197 MCAPI
void $startLeaveGame();
199 MCAPI ::Actor* $addEntity(::BlockSource& region, ::OwnerPtr<::EntityContext> entity);
201 MCAPI ::OwnerPtr<::EntityContext> $removeActorFromWorldAndTakeEntity(::WeakEntityRef entityRef);
203 MCAPI ::OwnerPtr<::EntityContext> $takeEntity(::WeakEntityRef entityRef, ::LevelChunk& lc);
205 MCAPI ::Actor* $addDisplayEntity(::BlockSource& region, ::OwnerPtr<::EntityContext> entity);
207 MCAPI
void $removeDisplayEntity(::WeakEntityRef entity);
209 MCAPI ::Bedrock::NonOwnerPointer<::DisplayActorManager> $getDisplayActorManager();
211 MCAPI ::PlayerSleepManager const& $getPlayerSleepManager() const;
213 MCAPI ::PlayerSleepManager& $getPlayerSleepManager();
215 MCAPI
void $notifySubChunkRequestManager(::SubChunkPacket const& packet);
217 MCAPI ::SubChunkRequestManager* $getSubChunkRequestManager();
219 MCAPI
void $onSubChunkLoaded(
220 ::ChunkSource& source,
222 short absoluteSubChunkIndex,
223 bool subChunkVisibilityChanged
226 MCAPI ::Bedrock::NonOwnerPointer<::SubChunkManager> $getSubChunkManager();
228 MCAPI
bool $canUseSkin(
229 ::SerializedSkinRef const& skin,
230 ::NetworkIdentifier const& networkIdentifier,
231 ::ActorUniqueID const& playerId
234 MCAPI ::Bedrock::NonOwnerPointer<::TrustedSkinHelper const> $getTrustedSkinHelper() const;
236 MCFOLD ::ClientLevel* $asClientLevel();
238 MCAPI ::Bedrock::NonOwnerPointer<::CameraRegistry const> $getCameraRegistry() const;
240 MCAPI ::Bedrock::NonOwnerPointer<::CameraRegistry> $getCameraRegistry();
242 MCAPI ::Bedrock::NonOwnerPointer<::EntitySystems> $getCameraSystems();
244 MCAPI ::ArmorTrimUnloader* $getArmorTrimUnloader();
246 MCAPI ::Bedrock::NotNullNonOwnerPtr<::MapDataManager> $getMapDataManager();
248 MCAPI ::GameModeExt::MessengerFactory $createMessengerFactory() const;
250 MCAPI
void $subChunkTickAndSendRequests();
252 MCAPI ::std::weak_ptr<::ISubChunkLighter> $getSubChunkLighter() const;
254 MCAPI ::TickTimeManager const& $_getTickTimeManager() const;
256 MCAPI ::TickTimeManager& $_getTickTimeManager();
258 MCAPI ::MapDataManager& $_getMapDataManager();
260 MCAPI
void $_subTick();
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 ClientLevel.h:5
Definition ClientSubChunkLighter.h:5
Definition DisplayActorManager.h:21
Definition EntityContext.h:15
Definition EntitySystems.h:25
Definition Experiments.h:10
Definition ISubChunkLighter.h:16
Definition LevelChunk.h:75
Definition LevelSettings.h:38
Definition MapDataManager.h:23
Definition NetworkIdentifier.h:10
Definition SerializedSkinRef.h:24
Definition SubChunkManager.h:5
Definition SubChunkPacket.h:18
Definition SubChunkRequestManager.h:5
Definition TickTimeManagerClient.h:5
Definition TickTimeManager.h:16
Definition TrustedSkinHelper.h:5
Definition VolumeEntityManagerClient.h:5
Definition WeakEntityRef.h:14
Definition ActorUniqueID.h:5
Definition BiomeJsonDocumentGlueResolvedBiomeData.h:11
Definition ClientLevelArguments.h:5
Definition MessengerFactory.h:13