]> git.localhorst.tv Git - blank.git/blobdiff - src/world/chunk.cpp
"streamlined" model/VAO handling
[blank.git] / src / world / chunk.cpp
index ef3c5fc869d80acb94d4ec054462ce2d85c9cc64..190fe3d7b9e4c4aa25d4fbaf6745845c97b0565b 100644 (file)
@@ -65,9 +65,13 @@ struct SetNode {
        int Get() const noexcept { return chunk->GetLight(pos); }
        void Set(int level) noexcept { chunk->SetLight(pos, level); }
 
+       const BlockType &GetType() const noexcept { return chunk->Type(Chunk::ToIndex(pos)); }
+
        bool HasNext(Block::Face face) noexcept {
+               const BlockType &type = GetType();
+               if (type.block_light && !type.luminosity) return false;
                const BlockLookup next(chunk, pos, face);
-               return next && !next.GetType().block_light;
+               return next;
        }
        SetNode GetNext(Block::Face face) noexcept {
                const BlockLookup next(chunk, pos, face);
@@ -315,7 +319,7 @@ int Chunk::GetLight(int index) const noexcept {
        return light[index];
 }
 
-float Chunk::GetVertexLight(const Pos &pos, const BlockModel::Position &vtx, const Model::Normal &norm) const noexcept {
+float Chunk::GetVertexLight(const Pos &pos, const BlockModel::Position &vtx, const EntityModel::Normal &norm) const noexcept {
        int index = ToIndex(pos);
        float light = GetLight(index);