summary refs log tree commit diff
path: root/src/World/World.cpp
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2023-08-06 01:54:27 +0200
committerMel <einebeere@gmail.com>2023-08-06 01:54:27 +0200
commite6f5f9e03f673db796f1babb308609ca2576db2f (patch)
treefbc7d9451ec943a107f0ab54b3de7a7bd25e656d /src/World/World.cpp
parenta627fb7038c94de9be9709ea88dcd1dddc95c5a3 (diff)
downloadmeowcraft-e6f5f9e03f673db796f1babb308609ca2576db2f.tar.zst
meowcraft-e6f5f9e03f673db796f1babb308609ca2576db2f.zip
Improve MC::Position and remove some redundant code
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);
         }
     }