diff options
Diffstat (limited to 'src/World/World.cpp')
| -rw-r--r-- | src/World/World.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
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::ChunkData> World::get_visible_chunks(Vector<3> position) { m_visible_chunks = visible_chunks; } - std::vector<World::ChunkData> chunks{}; + std::vector<ChunkData> chunks{}; chunks.reserve(visible_chunks.size()); for (auto index : visible_chunks) { auto& data = get(index); @@ -31,6 +31,16 @@ std::vector<World::ChunkData> 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<ChunkIndex>& new_chunks, Vector<3> player) { for (auto new_index: new_chunks) { auto& data = get(new_index); |
