From e6f5f9e03f673db796f1babb308609ca2576db2f Mon Sep 17 00:00:00 2001 From: Mel Date: Sun, 6 Aug 2023 01:54:27 +0200 Subject: Improve MC::Position and remove some redundant code --- src/World/World.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'src/World/World.cpp') 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 World::get_visible_chunks(Position::World posi } std::vector 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 indices{}; indices.reserve(m_view_distance_radius * m_view_distance_radius * 4); @@ -52,8 +51,8 @@ std::vector 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); } } -- cgit 1.4.1