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
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
74
75public:
76 // virtual functions
77 // NOLINTBEGIN
78 // vIndex: 0
79 virtual ~LevelStorageManager() /*override*/;
80
81 // vIndex: 1
82 virtual ::Bedrock::PubSub::Connector<void(::LevelStorage&)>& getOnSaveConnector() /*override*/;
83
84 // vIndex: 2
85 virtual ::Bedrock::PubSub::Connector<void(::LevelStorage&)>& getOnSaveGameDataConnector() /*override*/;
86
87 // vIndex: 3
88 virtual ::Bedrock::PubSub::Connector<void(::LevelStorage&)>& getOnSaveLevelDataConnector() /*override*/;
89
90 // vIndex: 4
91 virtual ::Bedrock::PubSub::Connector<void(bool&)>& getOnCanStartGameSaveTimerCheckConnector() /*override*/;
92
93 // vIndex: 5
94 virtual ::Bedrock::PubSub::Connector<void(::LevelStorage&)>& getOnStartLeaveGameConnector() /*override*/;
95
96 // vIndex: 6
97 virtual ::Bedrock::PubSub::Connector<void()>& getOnAppSuspendConnector() /*override*/;
98 // NOLINTEND
99
100public:
101 // member functions
102 // NOLINTBEGIN
105 ::std::unique_ptr<::GameDataSaveTimer> gameDataSaveTimer,
106 ::std::unique_ptr<::UserStorageChecker> userStorageChecker,
107 ::IMinecraftEventing& eventing
108 );
109
110 MCAPI void _onNewDimensionCreated(::Dimension& dimension);
111
112 MCAPI void _savePlayer(::Player& player);
113
114 MCFOLD ::Bedrock::NotNullNonOwnerPtr<::LevelStorage> getLevelStorage();
115
116 MCAPI void initializeWithDimensionManager(::IDimensionManagerConnector& dimensionManagerConnector);
117
118 MCAPI void initializeWithPlayerDeathManager(::IPlayerDeathManagerConnector& playerDeathManagerConnector);
119
120 MCAPI void save(::std::chrono::steady_clock::time_point currentTime);
121
122 MCAPI void saveGameData(::std::chrono::steady_clock::time_point currentTime);
123
124 MCAPI void saveLevelData();
125
126 MCAPI void trySaveGameData(::std::chrono::steady_clock::time_point currentTime);
127 // NOLINTEND
128
129public:
130 // constructor thunks
131 // NOLINTBEGIN
132 MCAPI void* $ctor(
134 ::std::unique_ptr<::GameDataSaveTimer> gameDataSaveTimer,
135 ::std::unique_ptr<::UserStorageChecker> userStorageChecker,
136 ::IMinecraftEventing& eventing
137 );
138 // NOLINTEND
139
140public:
141 // destructor thunk
142 // NOLINTBEGIN
143 MCAPI void $dtor();
144 // NOLINTEND
145
146public:
147 // virtual function thunks
148 // NOLINTBEGIN
149 MCFOLD ::Bedrock::PubSub::Connector<void(::LevelStorage&)>& $getOnSaveConnector();
150
151 MCAPI ::Bedrock::PubSub::Connector<void(::LevelStorage&)>& $getOnSaveGameDataConnector();
152
153 MCFOLD ::Bedrock::PubSub::Connector<void(::LevelStorage&)>& $getOnSaveLevelDataConnector();
154
155 MCFOLD ::Bedrock::PubSub::Connector<void(bool&)>& $getOnCanStartGameSaveTimerCheckConnector();
156
157 MCAPI ::Bedrock::PubSub::Connector<void(::LevelStorage&)>& $getOnStartLeaveGameConnector();
158
159 MCAPI ::Bedrock::PubSub::Connector<void()>& $getOnAppSuspendConnector();
160 // NOLINTEND
161
162public:
163 // vftables
164 // NOLINTBEGIN
165 MCNAPI static void** $vftable();
166 // NOLINTEND
167};
Definition Publisher.h:8
Definition UniqueOwnerPointer.h:11
Definition Dimension.h:83
Definition GameDataSaveTimer.h:5
Definition IDimensionManagerConnector.h:13
Definition ILevelStorageManagerConnector.h:13
Definition IMinecraftEventing.h:147
Definition IPlayerDeathManagerConnector.h:13
Definition LevelStorageManager.h:27
static MCAPI void ** $vftable()
Definition LevelStorage.h:25
Definition Player.h:123
Definition UserStorageChecker.h:10