From 52732d71e72b02ff45e25f44e414f87ec9ab7666 Mon Sep 17 00:00:00 2001 From: Mel Date: Thu, 29 Jun 2023 22:15:32 +0200 Subject: Pretty terrain generation --- src/World/World.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/World/World.cpp') diff --git a/src/World/World.cpp b/src/World/World.cpp index 9d88af3..03ce60e 100644 --- a/src/World/World.cpp +++ b/src/World/World.cpp @@ -19,7 +19,7 @@ std::vector World::get_visible_chunks(Vector<3> position) { m_visible_chunks = visible_chunks; } - std::vector chunks{}; + std::vector chunks{}; chunks.reserve(visible_chunks.size()); for (auto index : visible_chunks) { auto& data = get(index); @@ -31,6 +31,16 @@ std::vector World::get_visible_chunks(Vector<3> position) { return chunks; } +Chunk* World::get_chunk_for_positon(Vector<3> position) { + int32_t x = std::round(position.x() / Chunk::Width); + int32_t y = std::round(position.z() / Chunk::Width); + auto& data = get({x, y}); + if (data.chunk.has_value()) { + return &data.chunk.value(); + } + return nullptr; +} + void World::process_chunk_visibility_updates(std::unordered_set& new_chunks, Vector<3> player) { for (auto new_index: new_chunks) { auto& data = get(new_index); -- cgit 1.4.1