31 ::ll::TypedStorage<8, 16, ::gsl::not_null<::Bedrock::UniqueOwnerPointer<::LevelStorage>>
const> mLevelStorage;
32 ::ll::TypedStorage<8, 80, ::SavedDataStorage> mSavedDataStorage;
33 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::GameDataSaveTimer>>> mGameDataSaveTimer;
34 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::UserStorageChecker>>> mUserStorageChecker;
44 mSaveGameDataPublisher;
49 mSaveLevelDataPublisher;
54 mCanStartSaveTimerCheckPublisher;
59 mOnStartLeaveGamePublisher;
61 mOnAppSuspendPublisher;
62 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnPlayerDeathSubscription;
63 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnDimensionCreatedSubscription;
64 ::ll::TypedStorage<1, 1, bool> mIsLevelTearingDown;
65 ::ll::TypedStorage<8, 8, ::IMinecraftEventing&> mEventing;
66 ::ll::TypedStorage<4, 4, uint> mPollSaveGameStatisticsCount;
71 LevelStorageManager& operator=(LevelStorageManager
const&);
72 LevelStorageManager(LevelStorageManager
const&);
73 LevelStorageManager();
78 virtual ~LevelStorageManager() ;
80 virtual ::Bedrock::PubSub::Connector<void(
::LevelStorage&)>& getOnSaveConnector() ;
82 virtual ::Bedrock::PubSub::Connector<void(
::LevelStorage&)>& getOnSaveGameDataConnector() ;
84 virtual ::Bedrock::PubSub::Connector<void(
::LevelStorage&)>& getOnSaveLevelDataConnector() ;
86 virtual ::Bedrock::PubSub::Connector<void(
bool&)>& getOnCanStartGameSaveTimerCheckConnector() ;
88 virtual ::Bedrock::PubSub::Connector<void(
::LevelStorage&)>& getOnStartLeaveGameConnector() ;
90 virtual ::Bedrock::PubSub::Connector<void()>& getOnAppSuspendConnector() ;
96 MCAPI LevelStorageManager(
98 ::std::unique_ptr<::GameDataSaveTimer> gameDataSaveTimer,
99 ::std::unique_ptr<::UserStorageChecker> userStorageChecker,
103 MCAPI
void _onNewDimensionCreated(
::Dimension& dimension);
105 MCAPI
void _savePlayer(
::Player& player);
107 MCFOLD ::Bedrock::NotNullNonOwnerPtr<::LevelStorage> getLevelStorage();
113 MCAPI
void save(::std::chrono::steady_clock::time_point currentTime);
115 MCAPI
void saveGameData(::std::chrono::steady_clock::time_point currentTime);
117 MCAPI
void saveLevelData();
119 MCAPI
void trySaveGameData(::std::chrono::steady_clock::time_point currentTime);
127 ::std::unique_ptr<::GameDataSaveTimer> gameDataSaveTimer,
128 ::std::unique_ptr<::UserStorageChecker> userStorageChecker,
142 MCFOLD ::Bedrock::PubSub::Connector<void(
::LevelStorage&)>& $getOnSaveConnector();
144 MCAPI ::Bedrock::PubSub::Connector<void(
::LevelStorage&)>& $getOnSaveGameDataConnector();
146 MCFOLD ::Bedrock::PubSub::Connector<void(
::LevelStorage&)>& $getOnSaveLevelDataConnector();
148 MCAPI ::Bedrock::PubSub::Connector<void(
bool&)>& $getOnCanStartGameSaveTimerCheckConnector();
150 MCAPI ::Bedrock::PubSub::Connector<void(
::LevelStorage&)>& $getOnStartLeaveGameConnector();
152 MCAPI ::Bedrock::PubSub::Connector<void()>& $getOnAppSuspendConnector();