summaryrefslogtreecommitdiff
path: root/src/World
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2023-08-03 02:42:50 +0200
committerMel <einebeere@gmail.com>2023-08-03 02:42:50 +0200
commita627fb7038c94de9be9709ea88dcd1dddc95c5a3 (patch)
tree89500a83e9444032b903724574d8d71cd40d8e32 /src/World
parent1d574e5e8fe3f08d13f1b8c4444fc4cb02cf0faf (diff)
downloadmeowcraft-a627fb7038c94de9be9709ea88dcd1dddc95c5a3.tar.zst
meowcraft-a627fb7038c94de9be9709ea88dcd1dddc95c5a3.zip
Reset status of cancelled chunks
Diffstat (limited to 'src/World')
-rw-r--r--src/World/World.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/World/World.cpp b/src/World/World.cpp
index 0f83310..3ff0cf4 100644
--- a/src/World/World.cpp
+++ b/src/World/World.cpp
@@ -119,7 +119,10 @@ void World::reassess_priorities(Position::World player_position) {
// TODO: How do we know a chunk has been requested as an update?
m_generation_queue.reassess([&](ChunkIndex id) -> GenerationQueue::Reassession {
- if (!is_chunk_in_radius(player_position, id)) return {GenerationQueue::Reassession::Cancel};
+ if (!is_chunk_in_radius(player_position, id)) {
+ m_registry.get(id).status = ChunkRegistry::Status::Empty;
+ return {GenerationQueue::Reassession::Cancel};
+ }
return {
GenerationQueue::Reassession::Reassess,
@@ -128,7 +131,10 @@ void World::reassess_priorities(Position::World player_position) {
});
m_reification_queue.reassess([&](ChunkIndex id) -> ReificationQueue::Reassession {
- if (!is_chunk_in_radius(player_position, id)) return {ReificationQueue::Reassession::Cancel};
+ if (!is_chunk_in_radius(player_position, id)) {
+ m_registry.get(id).status = ChunkRegistry::Status::NeedsReification;
+ return {ReificationQueue::Reassession::Cancel};
+ }
return {
ReificationQueue::Reassession::Reassess,