LeviLamina
Loading...
Searching...
No Matches
ChunkBlenderFactory.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/common/BiomeIdType.h"
7#include "mc/world/level/ChunkPos.h"
8#include "mc/world/level/ScalarOptional.h"
9
10// auto generated forward declare list
11// clang-format off
12class BlendingData;
13class ChunkBlender;
14class ChunkSource;
15namespace ChunkBlenderUtil { struct AttenuationData; }
16// clang-format on
17
19public:
20 // ChunkBlenderFactory inner types declare
21 // clang-format off
22 struct BlendCheckEntry;
24 // clang-format on
25
26 // ChunkBlenderFactory inner types define
28 public:
29 // member variables
30 // NOLINTBEGIN
31 ::ll::TypedStorage<4, 4, float> mDistanceToBlendTarget;
32 ::ll::TypedStorage<4, 4, float> mWeightedHeight;
33 ::ll::TypedStorage<4, 4, float> mTotalHeightWeight;
34 ::ll::TypedStorage<4, 4, float> mTotalDensityWeight;
35 ::ll::TypedStorage<4, 164, ::std::array<::ScalarOptional<float>, 41>> mWeightedDensities;
36 ::ll::TypedStorage<1, 41, ::std::array<::ScalarOptional<schar>, 41>> mBlockTypeWeights;
37 ::ll::TypedStorage<2, 192, ::std::array<::ScalarOptional<::BiomeIdType>, 96>> mBiome;
38 ::ll::TypedStorage<1, 1, bool> mHaveBlockTypes;
39 ::ll::TypedStorage<1, 1, bool> mSyncPoint;
40 // NOLINTEND
41 };
42
44 public:
45 // member variables
46 // NOLINTBEGIN
47 ::ll::TypedStorage<8, 8, ::ChunkPos> checkPosition;
48 ::ll::TypedStorage<1, 1, bool> adjacentChunk;
49 // NOLINTEND
50 };
51
52 using ChunkIntermediateAttenuationData =
53 ::std::vector<::std::array<::ChunkBlenderFactory::IntermediateAttenuationData, 4>>;
54
55public:
56 // member variables
57 // NOLINTBEGIN
58 ::ll::TypedStorage<8, 64, ::std::unordered_map<::ChunkPos, ::std::shared_ptr<::ChunkBlender>>> mAttenuatorCache;
59 ::ll::TypedStorage<8, 8, ::std::shared_mutex> mAttenuatorSharedMutex;
60 ::ll::TypedStorage<1, 1, bool const> mIsClientSide;
61 ::ll::TypedStorage<8, 8, ::ChunkSource*> mChunkSource;
62 ::ll::TypedStorage<2, 2, short const> mDimensionMinHeight;
63 // NOLINTEND
64
65public:
66 // member functions
67 // NOLINTBEGIN
68 MCAPI ::std::shared_ptr<::ChunkBlender> _createChunkBlendingAttenuator(::ChunkPos const& lcPosition) const;
69
70 MCAPI ::std::vector<::std::array<::ChunkBlenderUtil::AttenuationData, 4>> _finalizeChunkAttenuationData(
71 ::std::vector<::std::array<::ChunkBlenderFactory::IntermediateAttenuationData, 4>> const&
72 chunkIntermediateAttenuationData
73 ) const;
74
75 MCAPI void _updateIntermediateAttenuationData(
76 ::std::vector<::std::array<::ChunkBlenderFactory::IntermediateAttenuationData, 4>>&
77 chunkIntermediateAttenuationData,
78 ::ChunkPos const& oldChunkPosition,
79 ::ChunkPos const& newChunkPosition,
80 ::BlendingData const& blendingData,
81 bool adjacentChunk
82 ) const;
83
84 MCAPI ::std::shared_ptr<::ChunkBlender> getOrCreateChunkBlender(::ChunkPos const& lcPosition);
85 // NOLINTEND
86};
Definition BlendingData.h:5
Definition ChunkBlenderFactory.h:18
Definition ChunkBlender.h:19
Definition ChunkPos.h:11
Definition ChunkSource.h:36
Definition ChunkBlenderFactory.h:43
Definition ChunkBlenderFactory.h:27