LeviLamina
Loading...
Searching...
No Matches
LevelChunkSaveManager.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/world/level/ChunkPos.h"
9#include "mc/world/level/dimension/DimensionType.h"
10
11// auto generated forward declare list
12// clang-format off
13class ChunkSource;
18class LevelChunk;
19// clang-format on
20
21class LevelChunkSaveManager {
22public:
23 // LevelChunkSaveManager inner types declare
24 // clang-format off
27 // clang-format on
28
29 // LevelChunkSaveManager inner types define
31
33 public:
34 // member variables
35 // NOLINTBEGIN
36 ::ll::TypedStorage<4, 4, int> mDist;
37 ::ll::TypedStorage<8, 8, ::ChunkPos> mPosition;
38 ::ll::TypedStorage<4, 4, ::DimensionType> mDimensionId;
39 // NOLINTEND
40 };
41
42public:
43 // member variables
44 // NOLINTBEGIN
45 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::ILevelChunkSaveManagerProxy>> const>
46 mLevelChunkSaveManagerProxy;
47 ::ll::TypedStorage<
48 8,
49 32,
50 ::std::priority_queue<
52 ::std::vector<::LevelChunkSaveManager::LevelChunkQueuedSavingElement>,
54 mLevelChunkSaveQueue;
55 ::ll::TypedStorage<1, 1, bool> mChunkSaveInProgress;
56 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::GameplayUserManager> const> mGameplayUserManager;
57 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::DimensionManager> const> mDimensionManager;
58 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnChunkLoadedSubscription;
59 // NOLINTEND
60
61public:
62 // prevent constructor by default
63 LevelChunkSaveManager();
64
65public:
66 // member functions
67 // NOLINTBEGIN
68 MCAPI LevelChunkSaveManager(
69 ::std::unique_ptr<::ILevelChunkSaveManagerProxy> levelChunkSaverProxy,
70 ::Bedrock::NotNullNonOwnerPtr<::GameplayUserManager> gameplayUserManager,
71 ::Bedrock::NotNullNonOwnerPtr<::DimensionManager> dimensionManager
72 );
73
74 MCAPI void _findRandomChunkToSave();
75
76 MCAPI void _onChunkLoaded(::ChunkSource& chunkSource, ::LevelChunk& levelChunk, int closestPlayerDistanceSquared);
77
78 MCAPI bool _shouldDoSave() const;
79
80 MCFOLD bool isChunkSaveInProgress();
81
82 MCAPI void registerForLevelChunkManagerEvents(::ILevelChunkEventManagerConnector& levelChunkEventManagerConnector);
83
84 MCAPI void startLeaveGame();
85
86 MCAPI void trySaveChunks();
87
88 MCAPI ~LevelChunkSaveManager();
89 // NOLINTEND
90
91public:
92 // constructor thunks
93 // NOLINTBEGIN
94 MCAPI void* $ctor(
95 ::std::unique_ptr<::ILevelChunkSaveManagerProxy> levelChunkSaverProxy,
96 ::Bedrock::NotNullNonOwnerPtr<::GameplayUserManager> gameplayUserManager,
97 ::Bedrock::NotNullNonOwnerPtr<::DimensionManager> dimensionManager
98 );
99 // NOLINTEND
100
101public:
102 // destructor thunk
103 // NOLINTBEGIN
104 MCAPI void $dtor();
105 // NOLINTEND
106};
Definition ChunkSource.h:37
Definition DimensionManager.h:30
Definition GameplayUserManager.h:22
Definition ILevelChunkEventManagerConnector.h:14
Definition ILevelChunkSaveManagerProxy.h:18
Definition LevelChunk.h:87
Definition LevelChunkSaveManager.h:32