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 Level;
17class LevelChunk;
21class Vec3;
24namespace ClientBlobCache::Server { class ActiveTransfersManager; }
25namespace ClientBlobCache::Server { class TransferBuilder; }
26// clang-format on
27
29public:
30 // member variables
31 // NOLINTBEGIN
32 ::ll::TypedStorage<8, 8, ::Level&> 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
66
67public:
68 // virtual functions
69 // NOLINTBEGIN
70 // vIndex: 0
71 virtual ~NetworkChunkPublisher() = default;
72 // NOLINTEND
73
74public:
75 // member functions
76 // NOLINTBEGIN
77 MCAPI NetworkChunkPublisher(::Level& level, ::NetworkIdentifier const& owner, ::SubClientId subClientId);
78
79 MCAPI bool _isWaitingForFullyBuiltChunks() const;
80
81 MCAPI bool _sendQueuedChunk(
82 ::ChunkPositionAndDimension const& queuedChunk,
84 );
85
86 MCAPI void _serializeAndCache(
87 ::LevelChunkPacket& packet,
89 ::std::function<void(::VarIntDataOutput&)>&& serialize
90 );
91
92 MCAPI void clearRegion();
93
94 MCAPI void moveRegion(::BlockPos const& position, uint blockRadius, ::Vec3 const& direction, float minDistance);
95
96 MCAPI void prepareRegion(::ChunkSource& mainChunkSource, ::ChunkPos const& center);
97
98 MCAPI void sendQueuedChunks();
99 // NOLINTEND
100
101public:
102 // constructor thunks
103 // NOLINTBEGIN
104 MCAPI void* $ctor(::Level& level, ::NetworkIdentifier const& owner, ::SubClientId subClientId);
105 // NOLINTEND
106
107public:
108 // vftables
109 // NOLINTBEGIN
110 MCNAPI static void** $vftable();
111 // NOLINTEND
112};
Definition BlockPos.h:18
Definition ChunkPos.h:11
Definition ChunkSource.h:34
Definition ChunkViewSource.h:22
Definition TransferBuilder.h:13
Definition LevelChunkPacket.h:19
Definition LevelChunk.h:74
Definition Level.h:238
Definition NetworkChunkPublisher.h:28
static MCAPI void ** $vftable()
Definition NetworkIdentifier.h:10
Definition ServerNetworkSystem.h:26
Definition VarIntDataOutput.h:13
Definition Vec3.h:10
Definition _HeaderOutputPredefine.h:189
Definition buffer_span.h:6
Definition ChunkPositionAndDimension.h:14
Definition ClientGenerationRequestHandler.h:5
Definition serialize.h:11