LeviLamina
Loading...
Searching...
No Matches
LevelStorageManager.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/NonOwnerPointer.h"
7#include "mc/deps/core/utility/UniqueOwnerPointer.h"
8#include "mc/deps/core/utility/pub_sub/Connector.h"
9#include "mc/deps/core/utility/pub_sub/Publisher.h"
10#include "mc/deps/core/utility/pub_sub/Subscription.h"
11#include "mc/world/level/storage/ILevelStorageManagerConnector.h"
12#include "mc/world/level/storage/SavedDataStorage.h"
13
14// auto generated forward declare list
15// clang-format off
16class Dimension;
21class LevelStorage;
22class Player;
24namespace Bedrock::PubSub::ThreadModel { struct MultiThreaded; }
25// clang-format on
26
27class LevelStorageManager : public ::ILevelStorageManagerConnector {
28public:
29 // member variables
30 // NOLINTBEGIN
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;
35 ::ll::TypedStorage<
36 8,
37 128,
39 mSavePublisher;
40 ::ll::TypedStorage<
41 8,
42 128,
44 mSaveGameDataPublisher;
45 ::ll::TypedStorage<
46 8,
47 128,
49 mSaveLevelDataPublisher;
50 ::ll::TypedStorage<
51 8,
52 128,
54 mCanStartSaveTimerCheckPublisher;
55 ::ll::TypedStorage<
56 8,
57 128,
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;
67 // NOLINTEND
68
69public:
70 // prevent constructor by default
71 LevelStorageManager& operator=(LevelStorageManager const&);
72 LevelStorageManager(LevelStorageManager const&);
73 LevelStorageManager();
74
75public:
76 // virtual functions
77 // NOLINTBEGIN
78 virtual ~LevelStorageManager() /*override*/;
79
80 virtual ::Bedrock::PubSub::Connector<void(::LevelStorage&)>& getOnSaveConnector() /*override*/;
81
82 virtual ::Bedrock::PubSub::Connector<void(::LevelStorage&)>& getOnSaveGameDataConnector() /*override*/;
83
84 virtual ::Bedrock::PubSub::Connector<void(::LevelStorage&)>& getOnSaveLevelDataConnector() /*override*/;
85
86 virtual ::Bedrock::PubSub::Connector<void(bool&)>& getOnCanStartGameSaveTimerCheckConnector() /*override*/;
87
88 virtual ::Bedrock::PubSub::Connector<void(::LevelStorage&)>& getOnStartLeaveGameConnector() /*override*/;
89
90 virtual ::Bedrock::PubSub::Connector<void()>& getOnAppSuspendConnector() /*override*/;
91 // NOLINTEND
92
93public:
94 // member functions
95 // NOLINTBEGIN
96 MCAPI LevelStorageManager(
98 ::std::unique_ptr<::GameDataSaveTimer> gameDataSaveTimer,
99 ::std::unique_ptr<::UserStorageChecker> userStorageChecker,
100 ::IMinecraftEventing& eventing
101 );
102
103 MCAPI void _onNewDimensionCreated(::Dimension& dimension);
104
105 MCAPI void _savePlayer(::Player& player);
106
107 MCFOLD ::Bedrock::NotNullNonOwnerPtr<::LevelStorage> getLevelStorage();
108
109 MCAPI void initializeWithDimensionManager(::IDimensionManagerConnector& dimensionManagerConnector);
110
111 MCAPI void initializeWithPlayerDeathManager(::IPlayerDeathManagerConnector& playerDeathManagerConnector);
112
113 MCAPI void save(::std::chrono::steady_clock::time_point currentTime);
114
115 MCAPI void saveGameData(::std::chrono::steady_clock::time_point currentTime);
116
117 MCAPI void saveLevelData();
118
119 MCAPI void trySaveGameData(::std::chrono::steady_clock::time_point currentTime);
120 // NOLINTEND
121
122public:
123 // constructor thunks
124 // NOLINTBEGIN
125 MCAPI void* $ctor(
127 ::std::unique_ptr<::GameDataSaveTimer> gameDataSaveTimer,
128 ::std::unique_ptr<::UserStorageChecker> userStorageChecker,
129 ::IMinecraftEventing& eventing
130 );
131 // NOLINTEND
132
133public:
134 // destructor thunk
135 // NOLINTBEGIN
136 MCAPI void $dtor();
137 // NOLINTEND
138
139public:
140 // virtual function thunks
141 // NOLINTBEGIN
142 MCFOLD ::Bedrock::PubSub::Connector<void(::LevelStorage&)>& $getOnSaveConnector();
143
144 MCAPI ::Bedrock::PubSub::Connector<void(::LevelStorage&)>& $getOnSaveGameDataConnector();
145
146 MCFOLD ::Bedrock::PubSub::Connector<void(::LevelStorage&)>& $getOnSaveLevelDataConnector();
147
148 MCAPI ::Bedrock::PubSub::Connector<void(bool&)>& $getOnCanStartGameSaveTimerCheckConnector();
149
150 MCAPI ::Bedrock::PubSub::Connector<void(::LevelStorage&)>& $getOnStartLeaveGameConnector();
151
152 MCAPI ::Bedrock::PubSub::Connector<void()>& $getOnAppSuspendConnector();
153
154
155 // NOLINTEND
156
157public:
158 // vftables
159 // NOLINTBEGIN
160 MCNAPI static void** $vftable();
161 // NOLINTEND
162};
Definition Publisher.h:8
Definition UniqueOwnerPointer.h:11
Definition Dimension.h:85
Definition GameDataSaveTimer.h:5
Definition IDimensionManagerConnector.h:13
Definition ILevelStorageManagerConnector.h:13
Definition IMinecraftEventing.h:137
Definition IPlayerDeathManagerConnector.h:13
static MCAPI void ** $vftable()
Definition LevelStorage.h:25
Definition Player.h:125
Definition UserStorageChecker.h:10