summary refs log tree commit diff
path: root/src/World/World.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/World/World.cpp')
-rw-r--r--src/World/World.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/World/World.cpp b/src/World/World.cpp
index 3ff0cf4..089c498 100644
--- a/src/World/World.cpp
+++ b/src/World/World.cpp
@@ -42,8 +42,7 @@ std::vector<ChunkRegistry::Data*> World::get_visible_chunks(Position::World posi
 }
 
 std::vector<ChunkIndex> World::get_visible_chunk_indices(const Position::World position) const {
-    I32 center_x = std::round(position.x() / Chunk::Width);
-    I32 center_y = std::round(position.z() / Chunk::Width);
+    ChunkIndex center = ChunkIndex::from_position(position.round_to_block());
 
     std::vector<ChunkIndex> indices{};
     indices.reserve(m_view_distance_radius * m_view_distance_radius * 4);
@@ -52,8 +51,8 @@ std::vector<ChunkIndex> World::get_visible_chunk_indices(const Position::World p
         I32 height = std::round(std::sqrt(radius * radius - x * x) + 0.5);
         for (I32 y = -height; y <= height; y++) {
             // Needed so that this function and is_chunk_in_radius forcibly agree.
-            if (!is_chunk_in_radius(position, {x + center_x, y + center_y})) continue;
-            indices.emplace_back(x + center_x, y + center_y);
+            if (!is_chunk_in_radius(position, {x + center.x, y + center.y})) continue;
+            indices.emplace_back(x + center.x, y + center.y);
         }
     }