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
9// auto generated forward declare list
10// clang-format off
11class BlockPos;
12class ChunkPos;
13class ChunkSource;
14class ChunkViewSource;
15class Level;
16class 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, 160, ::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 // virtual functions
63 // NOLINTBEGIN
64 // vIndex: 0
65 virtual ~NetworkChunkPublisher() = default;
66 // NOLINTEND
67
68public:
69 // member functions
70 // NOLINTBEGIN
71 MCAPI NetworkChunkPublisher(::Level& level, ::NetworkIdentifier const& owner, ::SubClientId subClientId);
72
73 MCAPI bool _isWaitingForFullyBuiltChunks() const;
74
75 MCAPI bool _sendQueuedChunk(
76 ::ChunkPositionAndDimension const& queuedChunk,
78 );
79
80 MCAPI void _serializeAndCache(
81 ::LevelChunkPacket& packet,
83 ::std::function<void(::VarIntDataOutput&)>&& serialize
84 );
85
86 MCAPI void clearRegion();
87
88 MCAPI void moveRegion(::BlockPos const& position, uint blockRadius, ::Vec3 const& direction, float minDistance);
89
90 MCAPI void prepareRegion(::ChunkSource& mainChunkSource, ::ChunkPos const& center);
91
92 MCAPI void sendQueuedChunks();
93 // NOLINTEND
94
95public:
96 // constructor thunks
97 // NOLINTBEGIN
98 MCAPI void* $ctor(::Level& level, ::NetworkIdentifier const& owner, ::SubClientId subClientId);
99 // NOLINTEND
100
101public:
102 // destructor thunk
103 // NOLINTBEGIN
104
105 // NOLINTEND
106
107public:
108 // vftables
109 // NOLINTBEGIN
110 MCAPI 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:73
Definition Level.h:234
Definition NetworkChunkPublisher.h:28
Definition NetworkIdentifier.h:11
Definition ServerNetworkSystem.h:23
Definition VarIntDataOutput.h:13
Definition Vec3.h:10
Definition _HeaderOutputPredefine.h:179
Definition buffer_span.h:6
Definition ChunkPositionAndDimension.h:14
Definition ClientGenerationRequestHandler.h:5
Definition serialize.h:11