diff options
Diffstat (limited to 'game/addons/zylann.hterrain/hterrain_resource_loader.gd')
-rw-r--r-- | game/addons/zylann.hterrain/hterrain_resource_loader.gd | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/game/addons/zylann.hterrain/hterrain_resource_loader.gd b/game/addons/zylann.hterrain/hterrain_resource_loader.gd new file mode 100644 index 0000000..ccc176b --- /dev/null +++ b/game/addons/zylann.hterrain/hterrain_resource_loader.gd @@ -0,0 +1,35 @@ +@tool +class_name HTerrainDataLoader +extends ResourceFormatLoader + + +const HTerrainData = preload("./hterrain_data.gd") + + +func _get_recognized_extensions() -> PackedStringArray: + return PackedStringArray([HTerrainData.META_EXTENSION]) + + +func _get_resource_type(path: String) -> String: + var ext := path.get_extension().to_lower() + if ext == HTerrainData.META_EXTENSION: + return "Resource" + return "" + + +# TODO Handle UIDs? +# By default Godot will return INVALID_ID, +# which makes this resource only tracked by path, like scripts +# +# func _get_resource_uid(path: String) -> int: +# return ??? + + +func _handles_type(typename: StringName) -> bool: + return typename == &"Resource" + + +func _load(path: String, original_path: String, use_sub_threads: bool, cache_mode: int): + var res = HTerrainData.new() + res.load_data(path.get_base_dir()) + return res |