diff options
Diffstat (limited to 'src/World/ChunkRegistry.hpp')
| -rw-r--r-- | src/World/ChunkRegistry.hpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/World/ChunkRegistry.hpp b/src/World/ChunkRegistry.hpp index 86e5d06..2c515c5 100644 --- a/src/World/ChunkRegistry.hpp +++ b/src/World/ChunkRegistry.hpp @@ -5,7 +5,6 @@ #include "Chunk.hpp" #include "ChunkIndex.hpp" #include "Position.hpp" -#include "../GFX/Binder.hpp" namespace MC::World { @@ -14,7 +13,9 @@ public: enum class Status { Empty, WaitingForGeneration, + NeedsReification, WaitingForReification, + Damaged, Done }; @@ -24,11 +25,17 @@ public: Status status; std::optional<Chunk> chunk = {}; - std::optional<GFX::Mesh> land_mesh_data = {}; - std::optional<GFX::Mesh> water_mesh_data = {}; + std::optional<GFX::Mesh> land_mesh = {}; + std::optional<GFX::Mesh> water_mesh = {}; - std::optional<GFX::BindableMesh> land_mesh = {}; - std::optional<GFX::BindableMesh> water_mesh = {}; + Status get_status() const { + if (status == Status::Done && chunk.value().is_damaged()) { return Status::Damaged; } + return status; + } + + void damage() { + if (status == Status::Done) chunk.value().damage(); + } }; Data& get(ChunkIndex index); |
