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