30 ::ll::TypedStorage<8, 16, ::gsl::not_null<::Bedrock::UniqueOwnerPointer<::LevelStorage>>
const> mLevelStorage;
31 ::ll::TypedStorage<8, 80, ::SavedDataStorage> mSavedDataStorage;
32 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::GameDataSaveTimer>>> mGameDataSaveTimer;
33 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::UserStorageChecker>>> mUserStorageChecker;
43 mSaveGameDataPublisher;
48 mSaveLevelDataPublisher;
53 mCanStartSaveTimerCheckPublisher;
58 mOnStartLeaveGamePublisher;
60 mOnAppSuspendPublisher;
61 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnPlayerDeathSubscription;
62 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnDimensionCreatedSubscription;
63 ::ll::TypedStorage<1, 1, bool> mIsLevelTearingDown;
64 ::ll::TypedStorage<8, 8, ::IMinecraftEventing&> mEventing;
65 ::ll::TypedStorage<4, 4, uint> mPollSaveGameStatisticsCount;
70 LevelStorageManager& operator=(LevelStorageManager
const&);
71 LevelStorageManager(LevelStorageManager
const&);
72 LevelStorageManager();
77 virtual ~LevelStorageManager() =
default;
79 virtual ::Bedrock::PubSub::Connector<void(
::LevelStorage&)>& getOnSaveConnector() ;
81 virtual ::Bedrock::PubSub::Connector<void(
::LevelStorage&)>& getOnSaveGameDataConnector() ;
83 virtual ::Bedrock::PubSub::Connector<void(
::LevelStorage&)>& getOnSaveLevelDataConnector() ;
85 virtual ::Bedrock::PubSub::Connector<void(
bool&)>& getOnCanStartGameSaveTimerCheckConnector() ;
87 virtual ::Bedrock::PubSub::Connector<void(
::LevelStorage&)>& getOnStartLeaveGameConnector() ;
89 virtual ::Bedrock::PubSub::Connector<void()>& getOnAppSuspendConnector() ;
95 MCAPI LevelStorageManager(
97 ::std::unique_ptr<::GameDataSaveTimer> gameDataSaveTimer,
98 ::std::unique_ptr<::UserStorageChecker> userStorageChecker,
102 MCAPI
void _onNewDimensionCreated(
::Dimension& dimension);
104 MCAPI
void _savePlayer(
::Player& player);
110 MCAPI
void onStartLeaveGame();
112 MCAPI
void save(::std::chrono::steady_clock::time_point currentTime);
114 MCAPI
void saveGameData(::std::chrono::steady_clock::time_point currentTime);
116 MCAPI
void saveLevelData();
118 MCAPI
void trySaveGameData(::std::chrono::steady_clock::time_point currentTime);
126 ::std::unique_ptr<::GameDataSaveTimer> gameDataSaveTimer,
127 ::std::unique_ptr<::UserStorageChecker> userStorageChecker,
136 MCFOLD ::Bedrock::PubSub::Connector<void(
::LevelStorage&)>& $getOnSaveConnector();
138 MCAPI ::Bedrock::PubSub::Connector<void(
::LevelStorage&)>& $getOnSaveConnector();
141 MCAPI ::Bedrock::PubSub::Connector<void(
::LevelStorage&)>& $getOnSaveGameDataConnector();
143 MCFOLD ::Bedrock::PubSub::Connector<void(
::LevelStorage&)>& $getOnSaveLevelDataConnector();
145 MCAPI ::Bedrock::PubSub::Connector<void(
bool&)>& $getOnCanStartGameSaveTimerCheckConnector();
147 MCAPI ::Bedrock::PubSub::Connector<void(
::LevelStorage&)>& $getOnStartLeaveGameConnector();
149 MCAPI ::Bedrock::PubSub::Connector<void()>& $getOnAppSuspendConnector();