blob: 4587266f8bd3693112bdf288a8e1b03918f64cef (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#pragma once
#include <queue>
#include "../Chunk.hpp"
#include "../ChunkIndex.hpp"
#include "../ChunkRegistry.hpp"
#include "../Position.hpp"
namespace MC::World::Generation {
class Lighting {
public:
void add_chunk(Chunk& chunk);
void add_block(Chunk& chunk, Position::BlockLocal position, U8 light);
void illuminate(Chunk& chunk);
private:
static constexpr U8 SunBrightness = 200;
static constexpr U8 DefaultFalloff = 10;
struct Operation {
ChunkIndex chunk;
Position::BlockLocal position;
U8 origin;
};
void enqueue(ChunkIndex chunk, Position::BlockLocal position, U8 origin);
void process(Chunk& chunk, Operation op);
std::queue<Operation> m_queue;
};
}
|