LeviLamina
Loading...
Searching...
No Matches
RuntimeLightingManager.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/level/ChunkPos.h"
7
8// auto generated forward declare list
9// clang-format off
10class BlockPos;
11class Dimension;
12class SubChunkPos;
13struct Brightness;
15// clang-format on
16
17class RuntimeLightingManager {
18public:
19 // RuntimeLightingManager inner types declare
20 // clang-format off
23 // clang-format on
24
25 // RuntimeLightingManager inner types define
27 public:
28 // member variables
29 // NOLINTBEGIN
30 ::ll::TypedStorage<4, 4, float> mDist;
31 ::ll::TypedStorage<8, 8, ::ChunkPos> mChunkPos;
32 ::ll::TypedStorage<8, 8, uint64> mSubChunkIndex;
33 ::ll::TypedStorage<8, 8, ::std::vector<::SubChunkLightUpdate>*> mAlteredBlockList;
34 // NOLINTEND
35 };
36
38 public:
39 // member variables
40 // NOLINTBEGIN
41 ::ll::TypedStorage<8, 24, ::std::vector<::std::vector<::SubChunkLightUpdate>>> mAlteredSubchunkBlockList;
42 // NOLINTEND
43 };
44
45public:
46 // member variables
47 // NOLINTBEGIN
48 ::ll::TypedStorage<8, 64, ::std::unordered_map<::ChunkPos, ::RuntimeLightingManager::RuntimeLightingSubchunkList>>
49 mLevelChunksToLight;
50 ::ll::TypedStorage<8, 24, ::std::vector<::RuntimeLightingManager::RelightingChunkElement>> mListOfChunksToProcess;
51 ::ll::TypedStorage<8, 24, ::std::vector<::SubChunkPos>> mProcessedSubchunks;
52 ::ll::TypedStorage<8, 8, ::Dimension&> mDimension;
53 ::ll::TypedStorage<1, 1, bool> mWorkerScheduled;
54 ::ll::TypedStorage<8, 8, ::std::chrono::nanoseconds> mLightingTimeboxTime;
55 // NOLINTEND
56
57public:
58 // prevent constructor by default
59 RuntimeLightingManager& operator=(RuntimeLightingManager const&);
60 RuntimeLightingManager(RuntimeLightingManager const&);
61 RuntimeLightingManager();
62
63public:
64 // virtual functions
65 // NOLINTBEGIN
66 virtual ~RuntimeLightingManager();
67 // NOLINTEND
68
69public:
70 // member functions
71 // NOLINTBEGIN
72 MCAPI explicit RuntimeLightingManager(::Dimension& dimension);
73
74 MCAPI void _getListOfChunksWithPlayerDistance();
75
76 MCAPI void _relightChunks(::std::chrono::nanoseconds timeLimit);
77
78 MCAPI void _removeProcessedSubchunks();
79
80 MCAPI void flushRunTimeLighting();
81
82 MCAPI void updateBlockLight(
83 ::BlockPos const& blockPos,
84 ::Brightness oldBrightness,
85 ::Brightness newBrightness,
86 ::Brightness oldAbsorption,
87 ::Brightness newAbsorption,
88 bool isSkyLight
89 );
90 // NOLINTEND
91
92public:
93 // constructor thunks
94 // NOLINTBEGIN
95 MCAPI void* $ctor(::Dimension& dimension);
96 // NOLINTEND
97
98public:
99 // destructor thunk
100 // NOLINTBEGIN
101 MCAPI void $dtor();
102 // NOLINTEND
103
104public:
105 // vftables
106 // NOLINTBEGIN
107 MCNAPI static void** $vftable();
108 // NOLINTEND
109};
Definition BlockPos.h:21
Definition Dimension.h:88
static MCAPI void ** $vftable()
Definition SubChunkPos.h:5
Definition Brightness.h:8
Definition RuntimeLightingManager.h:26
Definition RuntimeLightingManager.h:37
Definition SubChunkLightUpdate.h:9