- Chunk &GetChunk() const { return *chunk; }
- const Chunk::Pos &GetBlockPos() const { return pos; }
- const Block &GetBlock() const { return GetChunk().BlockAt(GetBlockPos()); }
- const BlockType &GetType() const { return GetChunk().Type(GetBlock()); }
- int GetLight() const { return GetChunk().GetLight(GetBlockPos()); }
+ Chunk &GetChunk() const noexcept { return *chunk; }
+ const Chunk::Pos &GetBlockPos() const noexcept { return pos; }
+ const Block &GetBlock() const noexcept { return GetChunk().BlockAt(GetBlockPos()); }
+ const BlockType &GetType() const noexcept { return GetChunk().Type(GetBlock()); }
+ int GetLight() const noexcept { return GetChunk().GetLight(GetBlockPos()); }
+
+ // traverse in given direction
+ BlockLookup Next(Block::Face f) const { return BlockLookup(chunk, pos, f); }