X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fworld%2Fchunk.cpp;h=569bb11c9f8e240ff25864cf7323ce8aed579504;hb=f2f254f8d576b48fde9305c3d2927552d1d4c20d;hp=fe4f80267ab00d1f4bf2c572c7f278168cf03915;hpb=57ff8c89c8e172b0988a09490a2bc19d740d1c79;p=blank.git diff --git a/src/world/chunk.cpp b/src/world/chunk.cpp index fe4f802..569bb11 100644 --- a/src/world/chunk.cpp +++ b/src/world/chunk.cpp @@ -169,15 +169,16 @@ void Chunk::SetBlock(int index, const Block &block) noexcept { } else if (!new_type.block_light && old_type.block_light) { // obstacle removed int level = 0; + Pos pos(ToPos(index)); for (int face = 0; face < Block::FACE_COUNT; ++face) { - BlockLookup next_block(this, ToPos(index), Block::Face(face)); + BlockLookup next_block(this, pos, Block::Face(face)); if (next_block) { - level = std::min(level, next_block.GetLight()); + level = std::max(level, next_block.GetLight()); } } if (level > 1) { SetLight(index, level - 1); - light_queue.emplace(this, ToPos(index)); + light_queue.emplace(this, pos); work_light(); } } @@ -449,7 +450,6 @@ bool Chunk::Intersection( float &dist, glm::vec3 &normal ) const noexcept { - // TODO: should be possible to heavily optimize this int idx = 0; blkid = -1; dist = std::numeric_limits::infinity();