summary refs log tree commit diff
path: root/src/World/Chunk.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/World/Chunk.cpp')
-rw-r--r--src/World/Chunk.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/World/Chunk.cpp b/src/World/Chunk.cpp
index b4a9ece..eeaefa0 100644
--- a/src/World/Chunk.cpp
+++ b/src/World/Chunk.cpp
@@ -39,10 +39,18 @@ Bool Chunk::is_valid_position(Position::BlockLocal pos) {
     return pos.x() < Width && pos.y() < Height && pos.z() < Width;
 }
 
-U64 Chunk::pos(U32 x, U32 y, U32 z) {
+U64 Chunk::pos(U32 const x, U32 const y, U32 const z) {
     return x + Width * y + Width * Height * z;
 }
 
+Position::BlockLocal Chunk::pos(U64 const i) {
+    return {
+        i % Width,
+        i / Width % Height,
+        i / (Width * Height)
+    };
+}
+
 AABB Chunk::block_bounds(Position::BlockLocal pos) {
     return {
         {pos.x(), pos.y(), pos.z()},