LeviLamina
Loading...
Searching...
No Matches
PlayScreenModel.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/gui/screens/models/LegacyWorldConversionManager.h"
7#include "mc/client/gui/screens/models/MainMenuScreenModel.h"
8#include "mc/client/gui/screens/models/PlayScreenDefaultTab.h"
9#include "mc/client/gui/screens/models/WorldType.h"
10#include "mc/client/gui/screens/models/interface/IWorldsProvider.h"
11#include "mc/client/legacy/ImportStatus.h"
12#include "mc/client/network/realms/GenericStatus.h"
13#include "mc/client/network/realms/RealmId.h"
14#include "mc/client/world/NetworkWorldType.h"
15#include "mc/deps/core/file/PathBuffer.h"
16#include "mc/deps/core/resource/PackType.h"
17#include "mc/deps/core/threading/Async.h"
18#include "mc/deps/core/utility/pub_sub/Subscription.h"
19#include "mc/events/IMinecraftEventing.h"
20#include "mc/platform/ErrorInfo.h"
21#include "mc/platform/Result.h"
22#include "mc/util/CallbackToken.h"
23#include "mc/util/UploadState.h"
24#include "mc/world/actor/player/LoadingState.h"
25#include "mc/world/level/LevelListCacheObserver.h"
26
27// auto generated forward declare list
28// clang-format off
30class ILevelListCache;
32class LevelSettings;
34struct ExternalServer;
35struct ImportResult;
36struct LegacyWorldInfo;
37struct LocalWorldInfo;
39struct NetworkWorldInfo;
41struct RealmsWorldInfo;
43namespace Core { class Path; }
44namespace Legacy { class WorldImporter; }
45namespace Legacy { class WorldProcessRequest; }
46namespace MSGraph::Models { struct DriveItemCollection; }
47namespace MSGraph::Models { struct GraphError; }
48namespace Realms { struct World; }
49namespace Social { class MultiplayerGameInfo; }
50// clang-format on
51
53public:
54 // PlayScreenModel inner types declare
55 // clang-format off
56 struct LiveServer;
58 // clang-format on
59
60 // PlayScreenModel inner types define
61 struct LiveServer {
62 public:
63 // member variables
64 // NOLINTBEGIN
65 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Social::MultiplayerGameInfo>> server;
66 ::ll::TypedStorage<1, 1, bool> found;
67 ::ll::TypedStorage<8, 8, double> lastFoundTime;
68 ::ll::TypedStorage<1, 1, bool> dead;
69 // NOLINTEND
70 };
71
72 class PlayScreenLevelListCacheObserver : public ::LevelListCacheObserver {
73 public:
74 // member variables
75 // NOLINTBEGIN
76 ::ll::TypedStorage<8, 8, ::PlayScreenModel&> mModel;
77 // NOLINTEND
78
79 public:
80 // prevent constructor by default
81 PlayScreenLevelListCacheObserver& operator=(PlayScreenLevelListCacheObserver const&);
82 PlayScreenLevelListCacheObserver(PlayScreenLevelListCacheObserver const&);
83 PlayScreenLevelListCacheObserver();
84
85 public:
86 // virtual functions
87 // NOLINTBEGIN
88 virtual void onLevelAdded(::std::string const& levelId) /*override*/;
89
90 virtual void onLevelUpdated(::std::string const& levelId) /*override*/;
91
92 virtual void onLevelDeleted(::std::string const& levelId) /*override*/;
93
94 virtual void onStorageChanged() /*override*/;
95 // NOLINTEND
96
97 public:
98 // virtual function thunks
99 // NOLINTBEGIN
100 MCFOLD void $onLevelAdded(::std::string const& levelId);
101
102 MCFOLD void $onLevelUpdated(::std::string const& levelId);
103
104 MCFOLD void $onLevelDeleted(::std::string const& levelId);
105
106 MCFOLD void $onStorageChanged();
107 // NOLINTEND
108
109 public:
110 // vftables
111 // NOLINTBEGIN
112 MCNAPI static void** $vftable();
113 // NOLINTEND
114 };
115
116 using PlayerCountMap = ::std::map<::Realms::RealmId, int>;
117
118 using RealmFullMap = ::std::map<::Realms::RealmId, bool>;
119
120 using RealmsWorldList = ::std::vector<::Realms::World>;
121
122 using StashedNetworkSelection = ::std::pair<::NetworkWorldInfo const, ::NetworkWorldType>;
123
124public:
125 // member variables
126 // NOLINTBEGIN
127 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::std::pair<::NetworkWorldInfo const, ::NetworkWorldType>>>
128 mLastNetworkSelection;
129 ::ll::TypedStorage<1, 1, bool> mIsDirty;
130 ::ll::TypedStorage<8, 24, ::std::vector<::LocalWorldInfo>> mLocalWorldList;
131 ::ll::TypedStorage<8, 24, ::std::vector<::LocalWorldInfo>> mBetaRetailLocalWorldList;
132 ::ll::TypedStorage<8, 24, ::std::vector<::WorldTemplateInfo>> mWorldTemplates;
133 ::ll::TypedStorage<8, 24, ::std::vector<::NetworkWorldInfo>> mFriendsNetworkWorldList;
134 ::ll::TypedStorage<8, 24, ::std::vector<::NetworkWorldInfo>> mCrossPlatformFriendsNetworkWorldList;
135 ::ll::TypedStorage<8, 24, ::std::vector<::NetworkWorldInfo>> mLANNetworkWorldList;
136 ::ll::TypedStorage<8, 24, ::std::vector<::NetworkWorldInfo>> mServerNetworkWorldList;
137 ::ll::TypedStorage<8, 24, ::std::vector<::RealmsWorldInfo>> mRealmWorldList;
138 ::ll::TypedStorage<8, 24, ::std::vector<::RealmsWorldInfo>> mUnpairedParentRealmWorldList;
139 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::NetworkWorldInfo>>> mThirdPartyServerWorldList;
140 ::ll::TypedStorage<8, 24, ::std::vector<::LegacyWorldInfo>> mLegacyWorldList;
141 ::ll::TypedStorage<8, 24, ::std::vector<::LegacyWorldInfo>> mBetaRetailLegacyWorldList;
142 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::ResourceLocation>> mNetworkedFriendsGamerpicMap;
143 ::ll::TypedStorage<8, 72, ::std::chrono::steady_clock::time_point[9]> mUpdateTimes;
144 ::ll::TypedStorage<8, 24, ::std::vector<::Realms::World>> mWorlds;
145 ::ll::TypedStorage<1, 1, bool> mWorldsFetched;
146 ::ll::TypedStorage<8, 24, ::std::vector<::Realms::World>> mUnpairedParentWorlds;
147 ::ll::TypedStorage<1, 1, bool> mUnpairedWorldsFetched;
148 ::ll::TypedStorage<8, 16, ::std::map<::Realms::RealmId, int>> mUnreadCounts;
149 ::ll::TypedStorage<4, 4, int> mRealmWorldPartitionIndex;
150 ::ll::TypedStorage<4, 24, ::std::array<int, 6>> mSeenUnreadPosts;
151 ::ll::TypedStorage<1, 1, bool> mLocalWorldsPopulated;
152 ::ll::TypedStorage<1, 1, bool> mHasPendingInvites;
153 ::ll::TypedStorage<4, 4, int> mPendingInviteCount;
154 ::ll::TypedStorage<1, 1, bool> mFetchingInvites;
155 ::ll::TypedStorage<1, 1, bool> mFetchingLegacyWorldsInProgress;
156 ::ll::TypedStorage<1, 1, bool> mLegacyWorldsFetched;
157 ::ll::TypedStorage<1, 1, bool> mFoundLegacyWorlds;
158 ::ll::TypedStorage<8, 48, ::LegacyWorldConversionManager> mLegacyWorldConversionManager;
159 ::ll::TypedStorage<8, 24, ::std::vector<::LocalWorldInfo>> mEduCloudWorlds;
160 ::ll::TypedStorage<1, 1, bool> mFetchingEduCloudWorldsInProgress;
161 ::ll::TypedStorage<1, 1, bool> mEduCloudWorldsFetched;
162 ::ll::TypedStorage<1, 1, bool> mEduCloudWorldsPopulated;
163 ::ll::TypedStorage<1, 1, bool> mEduCloudFetchFailed;
164 ::ll::TypedStorage<4, 4, int> mEduCloudWorldsFetchRetriesRemaining;
165 ::ll::TypedStorage<8, 32, ::std::string> mEduCloudWorldsFetchNextLinkUrl;
166 ::ll::TypedStorage<
167 8,
168 16,
171 mEduCloudWorldsHandle;
172 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mFetchStartTimestamp;
173 ::ll::TypedStorage<8, 32, ::std::string> mFetchCorrelationId;
174 ::ll::TypedStorage<1, 1, bool> mFetchingPlayerCounts;
175 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mLastRealmsUpdate;
176 ::ll::TypedStorage<1, 1, bool> mJoiningRealm;
177 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mLastTryJoin;
178 ::ll::TypedStorage<8, 8, ::std::chrono::seconds> mRetryJoinInterval;
179 ::ll::TypedStorage<4, 4, int> mRetryTime;
180 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mPendingInviteCountSubscriber;
181 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Legacy::WorldImporter>> mLegacyWorldImporter;
182 ::ll::TypedStorage<8, 16, ::CallbackToken> mRetrieveCallbackToken;
183 ::ll::TypedStorage<8, 16, ::CallbackToken> mImportCallbackToken;
184 ::ll::TypedStorage<1, 1, bool> mFirstRealmsFetchComplete;
185 ::ll::TypedStorage<1, 1, bool> mFirstUnpairedParentRealmsFetchComplete;
186 ::ll::TypedStorage<4, 4, ::Realms::GenericStatus> mRealmsStatus;
187 ::ll::TypedStorage<4, 4, ::Realms::GenericStatus> mUnpairedParentRealmsStatus;
188 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mLastPlayerCountUpdate;
189 ::ll::TypedStorage<8, 24, ::PlayScreenModel::PlayScreenLevelListCacheObserver> mLevelListCacheObserver;
190 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mTrialModeUpdateSubscription;
191 ::ll::TypedStorage<1, 1, bool> mAreTrialWorldsHidden;
192 ::ll::TypedStorage<1, 1, bool> mIsEditScreenLoading;
193 ::ll::TypedStorage<1, 1, bool> mIsLoadingAdditionalRealmInfo;
194 ::ll::TypedStorage<4, 4, int> mNumRealmsWorldsToQuery;
195 ::ll::TypedStorage<8, 16, ::std::set<::Realms::RealmId>> mWorldsWithDetailedInfo;
196 ::ll::TypedStorage<1, 1, bool> initRequestPendingInvites;
197 // NOLINTEND
198
199public:
200 // prevent constructor by default
201 PlayScreenModel();
202
203public:
204 // virtual functions
205 // NOLINTBEGIN
206 virtual ~PlayScreenModel() /*override*/;
207
208 virtual int getWorldCount(::WorldType worldType, ::NetworkWorldType networkType) const /*override*/;
209
210 virtual ::LocalWorldInfo const* getLocalWorldAtIndex(int const index) const /*override*/;
211
212 virtual ::LocalWorldInfo const* getLocalWorldById(::std::string const& id) const /*override*/;
213
214 virtual bool refresh(::WorldType tabType) /*override*/;
215
216 virtual void startLocalWorld(::LocalWorldInfo worldInfo, ::LevelSettings const* settings) /*override*/;
217
218 virtual bool isDirty() const /*override*/;
219
220 virtual ::IMinecraftEventing& getMinecraftEventing() const /*override*/;
221 // NOLINTEND
222
223public:
224 // member functions
225 // NOLINTBEGIN
226 MCAPI explicit PlayScreenModel(::MinecraftScreenModelContext context);
227
228 MCAPI void _fetchAdditionalRealmsWorldsInfo();
229
230 MCAPI void _fetchTrialAvailability();
231
232 MCAPI bool _isCrossPlatformGame(::Social::MultiplayerGameInfo const& gameInfo) const;
233
234 MCAPI void _navigateToEditWorldScreen(::LocalWorldInfo const& info);
235
236 MCAPI bool _passLicenseCheck(::LocalWorldInfo& worldInfo);
237
238 MCAPI void _populateAdditionalRealmsWorldsInfo();
239
240 MCAPI void _populateEduCloudWorlds(::std::vector<::LocalWorldInfo>& localWorlds);
241
242 MCAPI void _populateLocalWorldsFromStorageSource(
243 ::ILevelListCache& levelListCache,
244 ::std::vector<::LocalWorldInfo>& localWorlds,
245 ::std::vector<::LocalWorldInfo>& betaRetailWorlds,
246 bool restrictTrial,
247 bool fireTelemetry
248 );
249
250 MCAPI void _populateNetworkWorlds();
251
252 MCAPI void _populateRealmsWorldsInternal(bool ofUnpairedParentRealms);
253
254 MCAPI void _postRealmEvents();
255
256 MCAPI void _processLegacyWorld(::std::shared_ptr<::Legacy::WorldProcessRequest> processRequest);
257
258 MCAPI void _remove3PServersMismatchingEditorMode();
259
260 MCAPI void _requestPendingInviteCount();
261
262 MCAPI void _sendBulkUnreadCountRequest();
263
264 MCAPI void _sortRealmsWorlds(::std::string currentUserXUID, ::std::vector<::Realms::World>& worlds);
265
266 MCAPI void _start3PNetworkWorld(::NetworkWorldInfo& world);
267
268 MCAPI void _startFriendNetworkWorld(::NetworkWorldInfo const& world);
269
270 MCAPI void _startLocalWorld(::LocalWorldInfo& world, ::LevelSettings const* settings);
271
272 MCAPI void _startRemoteNetworkWorld(::NetworkWorldInfo const& world);
273
274 MCAPI void _trialModeChanged(bool newTrialModeStatus);
275
276 MCAPI void _updateOwnerInfo();
277
278 MCAPI bool areExternalAndRemoteServerSame(::ExternalServer& externalServer, ::PingedCompatibleServer remoteServer);
279
280 MCAPI void cancelImportCallbackToken();
281
282 MCAPI void clearUnreadCount(::Realms::RealmId realmId);
283
284 MCAPI void convertLegacyWorld(
285 ::LegacyWorldInfo worldInfo,
286 ::std::string const& newWorldDir,
287 ::std::function<void(::Legacy::ImportStatus, float, ::std::shared_ptr<::ImportResult>)> callback
288 );
289
290 MCAPI ::Core::PathBuffer<::std::string> const createUniquePathForWorld() const;
291
292 MCAPI void deleteLegacyWorld(uint legacyWorldIndex);
293
294 MCAPI void fetchEduCloudWorlds();
295
296 MCAPI void fetchLegacyWorldsForPlayScreen(::std::function<void()> noWorldsFoundCallback);
297
298 MCAPI void fetchRealmsPlayerCounts();
299
300 MCAPI void fetchRealmsWorldsForPlayScreen();
301
302 MCAPI void fetchThirdPartyServerWorlds(bool forceFetch);
303
304 MCAPI ::WorldTemplateInfo const* findWorldTemplateAtIndex(int index);
305
306 MCAPI void fireClubsOpenFeedScreenEvent(::Realms::RealmId realmId, ::std::string const& clubId, int unreadPosts);
307
308 MCAPI void fireIgnoredNotificationsEvent(
309 ::IMinecraftEventing::IgnoredNotificationsType notificationType,
310 int notificationCount,
311 ::std::set<::IMinecraftEventing::IgnoredNotificationSource> notificationSources
312 );
313
314 MCAPI void forceFetchWorld();
315
316 MCAPI ::std::shared_ptr<::FilePickerSettings> generateFilePickerSettingsForImport();
317
318 MCAPI ::LegacyWorldInfo* getBetaRetailLegacyWorldAtIndex(int index);
319
320 MCAPI ::LocalWorldInfo* getBetaRetailLocalWorldAtIndex(int index);
321
322 MCAPI bool getEduCloudFetchFailed() const;
323
324 MCAPI bool getEduCloudWorldsFetched() const;
325
326 MCAPI bool getEduCloudWorldsPopulated() const;
327
328 MCAPI bool getFetchingThirdPartyWorldsInProgress() const;
329
330 MCAPI ::Core::Path const& getIconPathOfCrossPlatformFriendWorld(int index) const;
331
332 MCAPI ::Core::Path const& getIconPathOfFriendWorld(int index) const;
333
334 MCFOLD ::std::chrono::steady_clock::time_point& getLastPlayerCountUpdate();
335
336 MCAPI ::LegacyWorldInfo* getLegacyWorldAtIndex(int index);
337
338 MCAPI float getLegacyWorldConversionProgress() const;
339
340 MCAPI ::LoadingState getLegacyWorldConversionState() const;
341
342 MCAPI bool getLegacyWorldsFetched() const;
343
344 MCAPI ::std::vector<::ResourceLocation> getLoadingPacks(::PackType type) const;
345
346 MCAPI ::LocalWorldInfo* getLocalWorldAtIndex(int index);
347
348 MCAPI ::LocalWorldInfo* getLocalWorldById(::std::string const& id);
349
350 MCAPI bool getLocalWorldsPopulated() const;
351
352 MCAPI ::ResourceLocation const& getNetworkFriendsGamerpic(::std::string const& idKey);
353
354 MCAPI ::NetworkWorldInfo* getNetworkWorldAtIndex(int index, ::NetworkWorldType networkType);
355
356 MCAPI int getOwnedActiveUnpairedParentRealmWorldCount() const;
357
358 MCAPI int getPendingInviteCount() const;
359
360 MCAPI ::RealmsWorldInfo const* getRealmWorldAtIndex(int index) const;
361
362 MCAPI int getRealmWorldCount() const;
363
364 MCAPI int getRealmWorldsPartitionIndex() const;
365
366 MCAPI bool getRealmsFirstFetchComplete() const;
367
368 MCAPI ::Realms::GenericStatus getRealmsStatus() const;
369
370 MCAPI int getSeenUnreadPostsCount(::PlayScreenDefaultTab tab);
371
372 MCAPI int getUnpairedParentRealmWorldCount() const;
373
374 MCAPI bool getUnpairedParentRealmsFirstFetchComplete() const;
375
376 MCAPI ::Realms::GenericStatus getUnpairedParentRealmsStatus() const;
377
378 MCAPI int getUnreadCount(::Realms::RealmId realmId) const;
379
380 MCAPI ::WorldTemplateInfo const& getWorldTemplateAtIndex(int index) const;
381
382 MCAPI uint64 const getWorldTemplateSize() const;
383
384 MCFOLD ::std::vector<::Realms::World>& getWorlds();
385
386 MCAPI void handleLegacyWorldConversionComplete(::ImportResult const& result);
387
388 MCAPI bool hasLocalWorldWithId(::std::string const& levelId);
389
390 MCAPI void initLegacyWorldImporter();
391
392 MCAPI void initializeRealmsWorlds();
393
394 MCAPI bool isEditorPlaytestRoundtrip() const;
395
396 MCAPI bool isLocalWorldRealmsPlus(::LocalWorldInfo const& world);
397
398 MCAPI void markLocalLevelDirty(::std::string const& id);
399
400 MCAPI void navigateToAddEditExternalScreen(int id);
401
402 MCAPI void navigateToEditWorldScreen(int index, ::std::function<void(::Core::Path const&)> onErrorCallback);
403
404 MCAPI void
405 navigateToEditWorldScreen(::LocalWorldInfo* info, ::std::function<void(::Core::Path const&)> onErrorCallback);
406
407 MCAPI void
408 navigateToEditWorldScreen(::std::string const& levelId, ::std::function<void(::Core::Path const&)> onErrorCallback);
409
410 MCAPI void navigateToRealmsSharingLauncherScreen(::std::string const& realmsInvite);
411
412 MCAPI void navigateToWorldSyncModalScreen(
413 ::std::string const& levelId,
414 ::std::function<void(::nonstd::expected<void, ::Bedrock::ErrorInfo<::std::error_code>>)> onCompleteCallback
415 );
416
417 MCAPI ::LocalWorldInfo refreshLocalWorldInfo(::LocalWorldInfo const& worldInfo);
418
419 MCAPI void repopulateLocalWorlds();
420
421 MCAPI void resetEduCloudFetchStatus();
422
423 MCAPI void resetUpdateIntervals();
424
425 MCAPI void resetUpdateTimer(::WorldType worldType);
426
427 MCAPI void setForceUpdate();
428
429 MCAPI void setLegacyWorldConversionProgress(float progress);
430
431 MCAPI void setPlayScreenDefaultTab(::PlayScreenDefaultTab tab);
432
433 MCAPI void setSeenUnreadPostsCount(::PlayScreenDefaultTab tab, int value);
434
435 MCAPI void startNetworkWorld(::NetworkWorldInfo worldInfo, ::NetworkWorldType worldType);
436
437 MCAPI ::Bedrock::PubSub::Subscription subscribeToBuildGameList();
438
439 MCAPI bool supportsEduCloudWorlds() const;
440
441 MCAPI void triggerMultiplayerGameRefresh(bool tryToReconnect);
442
443 MCAPI void tryAcquireMissingDlc(::std::string const& levelId, ::std::function<void(bool)> downloadCompleteCallback);
444
445 MCAPI void updateWorldTimestamp(::NetworkWorldInfo const& worldInfo);
446
447 MCAPI void uploadLocalWorldFileAtIndex(
448 ::std::string const& realmID,
449 int slotIndex,
450 int index,
451 ::std::function<void(::UploadState, ::Realms::World)> callbackAfterUpload
452 );
453 // NOLINTEND
454
455public:
456 // constructor thunks
457 // NOLINTBEGIN
458 MCAPI void* $ctor(::MinecraftScreenModelContext context);
459 // NOLINTEND
460
461public:
462 // destructor thunk
463 // NOLINTBEGIN
464 MCAPI void $dtor();
465 // NOLINTEND
466
467public:
468 // virtual function thunks
469 // NOLINTBEGIN
470 MCAPI int $getWorldCount(::WorldType worldType, ::NetworkWorldType networkType) const;
471
472 MCAPI ::LocalWorldInfo const* $getLocalWorldAtIndex(int const index) const;
473
474 MCAPI ::LocalWorldInfo const* $getLocalWorldById(::std::string const& id) const;
475
476 MCAPI bool $refresh(::WorldType tabType);
477
478 MCAPI void $startLocalWorld(::LocalWorldInfo worldInfo, ::LevelSettings const* settings);
479
480 MCFOLD bool $isDirty() const;
481
482 MCFOLD ::IMinecraftEventing& $getMinecraftEventing() const;
483 // NOLINTEND
484
485public:
486 // vftables
487 // NOLINTBEGIN
488 MCNAPI static void** $vftableForMainMenuScreenModel();
489
490 MCNAPI static void** $vftableForIMinecraftScreenModel();
491
492 MCNAPI static void** $vftableForIWorldsProvider();
493
494 MCNAPI static void** $vftableForIDlcBatcher();
495 // NOLINTEND
496};
Definition Result.h:9
Definition Async.h:8
Definition Path.h:12
Definition FilePickerSettings.h:5
Definition ILevelListCache.h:27
Definition IMinecraftEventing.h:138
Definition IWorldsProvider.h:5
Definition WorldImporter.h:7
Definition WorldProcessRequest.h:7
Definition LevelSettings.h:39
Definition MainMenuScreenModel.h:5
Definition Path.h:16
Definition PlayScreenModel.h:5
static MCAPI void ** $vftableForIWorldsProvider()
static MCAPI void ** $vftableForIDlcBatcher()
static MCAPI void ** $vftableForMainMenuScreenModel()
static MCAPI void ** $vftableForIMinecraftScreenModel()
Definition ResourceLocation.h:15
Definition MultiplayerGameInfo.h:7
STL namespace.
Definition ExternalServer.h:5
Definition ImportResult.h:5
Definition LegacyWorldInfo.h:5
Definition LocalWorldInfo.h:5
Definition DriveItemCollection.h:7
Definition GraphError.h:7
Definition MinecraftScreenModelContext.h:5
Definition NetworkWorldInfo.h:5
Definition PingedCompatibleServer.h:5
Definition PlayScreenModel.h:14
Definition RealmsWorldInfo.h:5
Definition World.h:7
Definition WorldTemplateInfo.h:16
Definition context.h:5