|
|
@@ -50,6 +50,7 @@ public: |
|
|
|
void onLightRemoved(TilePos pos, float level); |
|
|
|
void onChunkAdded(ChunkPos pos, NewLightChunk &&chunk); |
|
|
|
void onChunkRemoved(ChunkPos pos); |
|
|
|
void flip(); |
|
|
|
|
|
|
|
private: |
|
|
|
static constexpr int LIGHT_CUTOFF_DIST = 64; |
|
|
@@ -101,25 +102,21 @@ private: |
|
|
|
inline void LightServer::onSolidBlockAdded(TilePos pos) { |
|
|
|
std::lock_guard<std::mutex> lock(mut_); |
|
|
|
buffers_[buffer_].push_back({ Event::Tag::BLOCK_ADDED, pos, { .i = 0 } }); |
|
|
|
cond_.notify_one(); |
|
|
|
} |
|
|
|
|
|
|
|
inline void LightServer::onSolidBlockRemoved(TilePos pos) { |
|
|
|
std::lock_guard<std::mutex> lock(mut_); |
|
|
|
buffers_[buffer_].push_back({ Event::Tag::BLOCK_REMOVED, pos, { .i = 0 } }); |
|
|
|
cond_.notify_one(); |
|
|
|
} |
|
|
|
|
|
|
|
inline void LightServer::onLightAdded(TilePos pos, float level) { |
|
|
|
std::lock_guard<std::mutex> lock(mut_); |
|
|
|
buffers_[buffer_].push_back({ Event::Tag::LIGHT_ADDED, pos, { .f = level } }); |
|
|
|
cond_.notify_one(); |
|
|
|
} |
|
|
|
|
|
|
|
inline void LightServer::onLightRemoved(TilePos pos, float level) { |
|
|
|
std::lock_guard<std::mutex> lock(mut_); |
|
|
|
buffers_[buffer_].push_back({ Event::Tag::LIGHT_REMOVED, pos, { .f = level } }); |
|
|
|
cond_.notify_one(); |
|
|
|
} |
|
|
|
|
|
|
|
inline void LightServer::onChunkAdded(Vec2i pos, NewLightChunk &&chunk) { |
|
|
@@ -127,12 +124,14 @@ inline void LightServer::onChunkAdded(Vec2i pos, NewLightChunk &&chunk) { |
|
|
|
buffers_[buffer_].push_back({ Event::Tag::CHUNK_ADDED, pos, |
|
|
|
{ .i = (int)newChunkBuffers_[buffer_].size() } }); |
|
|
|
newChunkBuffers_[buffer_].push_back(std::move(chunk)); |
|
|
|
cond_.notify_one(); |
|
|
|
} |
|
|
|
|
|
|
|
inline void LightServer::onChunkRemoved(Vec2i pos) { |
|
|
|
std::lock_guard<std::mutex> lock(mut_); |
|
|
|
buffers_[buffer_].push_back({ Event::Tag::CHUNK_REMOVED, pos, { .i = 0 } }); |
|
|
|
} |
|
|
|
|
|
|
|
inline void LightServer::flip() { |
|
|
|
cond_.notify_one(); |
|
|
|
} |
|
|
|
|