aboutsummaryrefslogtreecommitdiff
path: root/game/addons/zylann.hterrain/hterrain_resource_saver.gd
diff options
context:
space:
mode:
Diffstat (limited to 'game/addons/zylann.hterrain/hterrain_resource_saver.gd')
-rw-r--r--game/addons/zylann.hterrain/hterrain_resource_saver.gd29
1 files changed, 29 insertions, 0 deletions
diff --git a/game/addons/zylann.hterrain/hterrain_resource_saver.gd b/game/addons/zylann.hterrain/hterrain_resource_saver.gd
new file mode 100644
index 0000000..be757e8
--- /dev/null
+++ b/game/addons/zylann.hterrain/hterrain_resource_saver.gd
@@ -0,0 +1,29 @@
+@tool
+class_name HTerrainDataSaver
+extends ResourceFormatSaver
+
+
+const HTerrainData = preload("./hterrain_data.gd")
+
+
+func _get_recognized_extensions(res: Resource) -> PackedStringArray:
+ if res != null and res is HTerrainData:
+ return PackedStringArray([HTerrainData.META_EXTENSION])
+ return PackedStringArray()
+
+
+func _recognize(res: Resource) -> bool:
+ return res is HTerrainData
+
+
+func _save(resource: Resource, path: String, flags: int) -> Error:
+ if resource.save_data(path.get_base_dir()):
+ return OK
+ # This can occur if at least one map of the terrain fails to save.
+ # It doesnt necessarily mean the entire terrain failed to save.
+ return FAILED
+
+
+# TODO Handle UIDs
+# func _set_uid(path: String, uid: int) -> int:
+# ???