From 3e6eb265a018fd0422b59ca9ea1b8918abee5c16 Mon Sep 17 00:00:00 2001 From: Mel Date: Thu, 15 Feb 2024 12:32:03 +0100 Subject: Not every valid block position is within a chunk, `ChunkRegistry::find` should reflect that --- src/World/ChunkRegistry.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/World/ChunkRegistry.cpp') diff --git a/src/World/ChunkRegistry.cpp b/src/World/ChunkRegistry.cpp index 97896fe..95ae6bd 100644 --- a/src/World/ChunkRegistry.cpp +++ b/src/World/ChunkRegistry.cpp @@ -14,11 +14,12 @@ ChunkRegistry::Data& ChunkRegistry::get(ChunkIndex index) { return entry->second; } -ChunkRegistry::Data& ChunkRegistry::find(Position::BlockWorld pos) { - return get(ChunkIndex::from_position(pos)); +ChunkRegistry::Data* ChunkRegistry::find(Position::BlockWorld pos) { + if (!Chunk::is_valid_position(pos.to_local())) return nullptr; + return &get(ChunkIndex::from_position(pos)); } -ChunkRegistry::Data& ChunkRegistry::find(Position::World pos) { +ChunkRegistry::Data* ChunkRegistry::find(Position::World pos) { return find(pos.round_to_block()); } -- cgit 1.4.1