#pragma once #include #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 m_queue; }; }