+struct BlockLookup {
+
+ Chunk *chunk;
+ Chunk::Pos pos;
+ const Block *result;
+
+ // resolve chunk/position/block from oob coordinates
+ // result will be nullptr if unsuccessful
+ BlockLookup(Chunk *c, const Chunk::Pos &p);
+
+ // resolve chunk/position/block from ib coordinates and direction
+ // result will be nullptr if unsuccessful
+ BlockLookup(Chunk *c, const Chunk::Pos &p, Block::Face dir);
+
+};
+
+