diff --git a/modules/terraman/world/terrain_world.cpp b/modules/terraman/world/terrain_world.cpp index 61647a4e9..796315c5c 100644 --- a/modules/terraman/world/terrain_world.cpp +++ b/modules/terraman/world/terrain_world.cpp @@ -602,6 +602,12 @@ void TerrainWorld::chunk_generate(Ref chunk) { chunk->build(); } +void TerrainWorld::force_save_all_chunks() { + ERR_FAIL_COND(!_world_chunk_data_manager.is_valid()); + + _world_chunk_data_manager->save_all_chunks(this); +} + Vector TerrainWorld::chunks_get() { VARIANT_ARRAY_GET(_chunks_vector); } @@ -1788,6 +1794,8 @@ void TerrainWorld::_bind_methods() { ClassDB::bind_method(D_METHOD("chunks_clear"), &TerrainWorld::chunks_clear); + ClassDB::bind_method(D_METHOD("force_save_all_chunks"), &TerrainWorld::force_save_all_chunks); + ClassDB::bind_method(D_METHOD("chunks_get"), &TerrainWorld::chunks_get); ClassDB::bind_method(D_METHOD("chunks_set"), &TerrainWorld::chunks_set); ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "chunks", PROPERTY_HINT_NONE, "23/20:TerrainChunk", PROPERTY_USAGE_DEFAULT, "TerrainChunk"), "chunks_set", "chunks_get"); diff --git a/modules/terraman/world/terrain_world.h b/modules/terraman/world/terrain_world.h index 0b025c15f..fc9a7c580 100644 --- a/modules/terraman/world/terrain_world.h +++ b/modules/terraman/world/terrain_world.h @@ -169,6 +169,8 @@ public: void chunk_generate(Ref chunk); + void force_save_all_chunks(); + Vector chunks_get(); void chunks_set(const Vector &chunks);