LeviLamina
Loading...
Searching...
No Matches
MapDataManager.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/pub_sub/Subscription.h"
8#include "mc/legacy/ActorUniqueID.h"
9
10// auto generated forward declare list
11// clang-format off
12class BlockPos;
17class LevelStorage;
19class PacketSender;
20class Player;
21struct DimensionType;
22// clang-format on
23
24class MapDataManager {
25public:
26 // MapDataManager inner types declare
27 // clang-format off
28 struct DeferredLoadData;
29 // clang-format on
30
31 // MapDataManager inner types define
32 struct DeferredLoadData {
33 public:
34 // member variables
35 // NOLINTBEGIN
39 // NOLINTEND
40
41 public:
42 // prevent constructor by default
43 DeferredLoadData& operator=(DeferredLoadData const&);
44 DeferredLoadData(DeferredLoadData const&);
45 DeferredLoadData();
46 };
47
48public:
49 // member variables
50 // NOLINTBEGIN
51 ::ll::TypedStorage<8, 8, ::DimensionManager&> mDimensionManager;
52 ::ll::TypedStorage<8, 8, ::LevelStorage*> mLevelStorage;
53 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::IMapDataManagerOptions>>> mMapDataManagerOptions;
54 ::ll::TypedStorage<8, 64, ::std::function<::ActorUniqueID()>> mGetNewUniqueID;
55 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnSaveLevelData;
56 ::ll::TypedStorage<8, 64, ::std::unordered_map<::ActorUniqueID, ::std::unique_ptr<::MapItemSavedData>>> mMapData;
57 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::PacketSender>> mPacketSender;
58 ::ll::TypedStorage<8, 208, ::MapDataManager::DeferredLoadData> mDeferredLoadData;
59 // NOLINTEND
60
61public:
62 // prevent constructor by default
63 MapDataManager& operator=(MapDataManager const&);
64 MapDataManager(MapDataManager const&);
65 MapDataManager();
66
67public:
68 // virtual functions
69 // NOLINTBEGIN
70 virtual ~MapDataManager();
71
72 virtual void registerOnGameplayUserAddedSubscription(::IGameplayUserManagerConnector& gameplayUserManagerConnector);
73
74 virtual ::MapItemSavedData& createMapSavedData(::ActorUniqueID const& uuid);
75
76 virtual void requestMapInfo(::ActorUniqueID const uuid, bool forceUpdate);
77
78 virtual void _copyAndLockMap(::ActorUniqueID const originalMapUuid, ::ActorUniqueID const newMapUuid);
79 // NOLINTEND
80
81public:
82 // member functions
83 // NOLINTBEGIN
84 MCAPI MapDataManager(
85 ::DimensionManager& dimensionManager,
86 ::LevelStorage* levelStorage,
87 ::std::unique_ptr<::IMapDataManagerOptions> mapDataManagerOptions,
88 ::std::function<::ActorUniqueID()> getNewUniqueID
89 );
90
91 MCAPI ::std::unique_ptr<::MapItemSavedData> _deserializeMapData(::ActorUniqueID const& uuid);
92
93 MCAPI void _onSaveLevelData(::LevelStorage& levelStorage);
94
95 MCAPI ::MapItemSavedData*
96 _publishMapData(::ActorUniqueID const& uuid, ::std::unique_ptr<::MapItemSavedData> loadedMap);
97
98 MCAPI bool copyAndLockMap(::ActorUniqueID originalMapUuid, ::ActorUniqueID newMapUuid);
99
100 MCAPI ::MapItemSavedData& createMapSavedData(
101 ::std::vector<::ActorUniqueID> const& mapIds,
102 ::BlockPos const& origin,
103 ::DimensionType dimension,
104 int returnScaleLevel
105 );
106
107 MCAPI ::MapItemSavedData& createMapSavedData(
108 ::ActorUniqueID const& uuid,
109 ::BlockPos const& origin,
110 ::DimensionType dimension,
111 int returnScaleLevel
112 );
113
114 MCAPI ::ActorUniqueID expandMapByID(::ActorUniqueID uuid, bool wasInit);
115
116 MCAPI ::MapItemSavedData* getMapSavedData(::ActorUniqueID uuid);
117
118 MCAPI void loadMapDataForDeferredPublish(::ActorUniqueID uuid);
119
120 MCAPI void onStartLeaveGame();
121
122 MCAPI void publishDeferredMapData();
123
124 MCAPI void registerOnSaveLevelDataSubscription(::ILevelStorageManagerConnector& levelStorageManagerConnector);
125
126 MCAPI void tick();
127 // NOLINTEND
128
129public:
130 // static functions
131 // NOLINTBEGIN
132 MCAPI static bool hasMapToCopy(::Player& player, ::ActorUniqueID const& uuid);
133 // NOLINTEND
134
135public:
136 // constructor thunks
137 // NOLINTBEGIN
138 MCAPI void* $ctor(
139 ::DimensionManager& dimensionManager,
140 ::LevelStorage* levelStorage,
141 ::std::unique_ptr<::IMapDataManagerOptions> mapDataManagerOptions,
142 ::std::function<::ActorUniqueID()> getNewUniqueID
143 );
144 // NOLINTEND
145
146public:
147 // destructor thunk
148 // NOLINTBEGIN
149 MCAPI void $dtor();
150 // NOLINTEND
151
152public:
153 // virtual function thunks
154 // NOLINTBEGIN
155 MCFOLD void $registerOnGameplayUserAddedSubscription(::IGameplayUserManagerConnector& gameplayUserManagerConnector);
156
157 MCAPI ::MapItemSavedData& $createMapSavedData(::ActorUniqueID const& uuid);
158
159 MCAPI void $requestMapInfo(::ActorUniqueID const uuid, bool forceUpdate);
160
161 MCAPI void $_copyAndLockMap(::ActorUniqueID const originalMapUuid, ::ActorUniqueID const newMapUuid);
162
163
164 // NOLINTEND
165};
Definition BlockPos.h:17
Definition DimensionManager.h:29
Definition IGameplayUserManagerConnector.h:14
Definition ILevelStorageManagerConnector.h:13
Definition IMapDataManagerOptions.h:10
Definition LevelStorage.h:25
Definition MapItemSavedData.h:32
Definition PacketSender.h:17
Definition Player.h:129
Definition ActorUniqueID.h:5
Definition DimensionType.h:5
Definition MapDataManager.h:32
Definition Alias.h:14