diff options
Diffstat (limited to 'src/World/World.cpp')
| -rw-r--r-- | src/World/World.cpp | 7 |
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); } } |
