From 1b022dd17364c9e3344afd86572f2ead14973cde Mon Sep 17 00:00:00 2001 From: Daniel Karbach Date: Fri, 13 Mar 2015 18:55:03 +0100 Subject: [PATCH] fix error in border block calculation --- src/block.hpp | 1 + src/chunk.hpp | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/block.hpp b/src/block.hpp index a142a96..3ccd74f 100644 --- a/src/block.hpp +++ b/src/block.hpp @@ -61,6 +61,7 @@ struct BlockType { bool visible; + // FIXME: fill faces don't respect block orientation struct Faces { bool up; bool down; diff --git a/src/chunk.hpp b/src/chunk.hpp index 19f5c07..ae77365 100644 --- a/src/chunk.hpp +++ b/src/chunk.hpp @@ -55,10 +55,12 @@ public: static constexpr bool IsBorder(int idx) { return - idx < Width() * Height() || - (idx / Width()) % Height() == 0 || - (idx / Width()) % Height() == Height() - 1 || - (idx / (Width() * Height())) == Depth() - 1; + idx < Width() * Height() || // low Z plane + idx % Width() == 0 || // low X plane + (idx / (Width() * Height())) == Depth() - 1 || // high Z plane + idx % Width() == Width() - 1 || // high X plane + (idx / Width()) % Height() == 0 || // low Y plane + (idx / Width()) % Height() == Height() - 1; // high Y plane } // check if block at given index is completely enclosed (and therefore invisible) -- 2.39.2