LeviLamina
Loading...
Searching...
No Matches
NetworkChunkPublisher.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/common/SubClientId.h"
7#include "mc/deps/core/utility/buffer_span.h"
8#include "mc/network/NetworkIdentifier.h"
9#include "mc/world/level/BlockPos.h"
10
11// auto generated forward declare list
12// clang-format off
13class ChunkPos;
14class ChunkSource;
15class ChunkViewSource;
16class ILevel;
17class LevelChunk;
21class Vec3;
24namespace ClientBlobCache::Server { class ActiveTransfersManager; }
25namespace ClientBlobCache::Server { class TransferBuilder; }
26// clang-format on
27
28class NetworkChunkPublisher {
29public:
30 // member variables
31 // NOLINTBEGIN
32 ::ll::TypedStorage<8, 8, ::ILevel&> mLevel;
33 ::ll::TypedStorage<8, 8, ::ServerNetworkSystem*> mNetwork;
34 ::ll::TypedStorage<8, 176, ::NetworkIdentifier> mOwner;
35 ::ll::TypedStorage<8, 8, ::ClientBlobCache::Server::ActiveTransfersManager*> mClientCache;
36 ::ll::TypedStorage<1, 1, ::SubClientId> mSubClientId;
37 ::ll::TypedStorage<4, 12, ::BlockPos> mLastChunkUpdatePosition;
38 ::ll::TypedStorage<4, 4, uint> mLastChunkUpdateRadius;
39 ::ll::TypedStorage<4, 4, uint> mHandleForChunkBuildOrderUpdates;
40 ::ll::TypedStorage<4, 4, int> mChunksSentSinceStart;
41 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ChunkViewSource>> mSource;
42 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::ChunkSource>> mNetworkChunkSource;
43 ::ll::TypedStorage<
44 8,
45 64,
46 ::std::function<void(::buffer_span_mut<::std::shared_ptr<::LevelChunk>>, ::buffer_span<uint>)>>
47 mAddCallback;
48 ::ll::TypedStorage<8, 32, ::std::string> mCacheSerializeBuffer;
49 ::ll::TypedStorage<8, 64, ::std::unordered_map<::ChunkPositionAndDimension, ::std::weak_ptr<::LevelChunk>>>
50 mQueuedChunks;
51 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mLastGenerationRequestQueued;
52 ::ll::TypedStorage<1, 1, bool> mWaitingForServerChunks;
53 ::ll::TypedStorage<1, 1, bool> mInitialSpawnDone;
54 ::ll::TypedStorage<
55 8,
56 40,
57 ::std::queue<::ClientGenerationRequestHandler, ::std::deque<::ClientGenerationRequestHandler>>>
58 mGenerationRequests;
59 // NOLINTEND
60
61public:
62 // prevent constructor by default
63 NetworkChunkPublisher& operator=(NetworkChunkPublisher const&);
64 NetworkChunkPublisher(NetworkChunkPublisher const&);
65 NetworkChunkPublisher();
66
67public:
68 // virtual functions
69 // NOLINTBEGIN
70 virtual ~NetworkChunkPublisher();
71 // NOLINTEND
72
73public:
74 // member functions
75 // NOLINTBEGIN
76 MCAPI NetworkChunkPublisher(::ILevel& level, ::NetworkIdentifier const& owner, ::SubClientId subClientId);
77
78 MCAPI bool _isWaitingForFullyBuiltChunks() const;
79
80 MCAPI bool _sendQueuedChunk(
81 ::ChunkPositionAndDimension const& queuedChunk,
83 );
84
85 MCAPI void _serializeAndCache(
86 ::LevelChunkPacket& packet,
88 ::std::function<void(::VarIntDataOutput&)>&& serialize
89 );
90
91 MCAPI void clearRegion();
92
93 MCAPI_C void handleGenerationRequests();
94
95 MCAPI void moveRegion(::BlockPos const& position, uint blockRadius, ::Vec3 const& direction, float minDistance);
96
97 MCAPI void prepareRegion(::ChunkSource& mainChunkSource, ::ChunkPos const& center);
98
99 MCAPI_C void queueChunkGenerationRequests(
100 ::ChunkPos moveCenter,
101 int chunkRadius,
102 ::Vec3 const& direction,
103 ::std::vector<::ChunkPos> const& serverChunks
104 );
105
106 MCAPI void sendQueuedChunks();
107 // NOLINTEND
108
109public:
110 // constructor thunks
111 // NOLINTBEGIN
112 MCAPI void* $ctor(::ILevel& level, ::NetworkIdentifier const& owner, ::SubClientId subClientId);
113 // NOLINTEND
114
115public:
116 // destructor thunk
117 // NOLINTBEGIN
118 MCAPI void $dtor();
119 // NOLINTEND
120
121public:
122 // vftables
123 // NOLINTBEGIN
124 MCNAPI static void** $vftable();
125 // NOLINTEND
126};
Definition BlockPos.h:19
Definition ChunkPos.h:11
Definition ChunkSource.h:37
Definition ChunkViewSource.h:22
Definition ActiveTransfersManager.h:17
Definition TransferBuilder.h:13
Definition ILevel.h:214
Definition LevelChunkPacket.h:19
Definition LevelChunk.h:79
static MCAPI void ** $vftable()
Definition NetworkIdentifier.h:10
Definition ServerNetworkSystem.h:34
Definition VarIntDataOutput.h:13
Definition Vec3.h:10
Definition _HeaderOutputPredefine.h:237
Definition buffer_span.h:6
Definition ChunkPositionAndDimension.h:14
Definition ClientGenerationRequestHandler.h:5
Definition serialize.h:11