From bc2420f3db237c829ea91a738217f3876e06f323 Mon Sep 17 00:00:00 2001 From: JHDev2006 Date: Tue, 16 Sep 2025 18:51:20 +0100 Subject: [PATCH] Resource pack templates, now actually generate ALL assets used in game, that was a bit of a slip up --- Scripts/Parts/ResourcePackTemplateCreator.gd | 23 +++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/Scripts/Parts/ResourcePackTemplateCreator.gd b/Scripts/Parts/ResourcePackTemplateCreator.gd index 462aa70..6c46ffe 100644 --- a/Scripts/Parts/ResourcePackTemplateCreator.gd +++ b/Scripts/Parts/ResourcePackTemplateCreator.gd @@ -10,16 +10,27 @@ const base_info_json := { } func create_template() -> void: - get_directories("res://Assets/", files, directories) + get_directories("res://Assets", files, directories) for i in directories: - DirAccess.make_dir_recursive_absolute(i.replace("res://Assets", "user://resource_packs/new_pack/")) + DirAccess.make_dir_recursive_absolute(i.replace("res://Assets", "user://resource_packs/new_pack")) for i in files: var destination = i if destination.contains("res://"): - destination = i.replace("res://Assets", "user://resource_packs/new_pack/") + destination = i.replace("res://Assets", "user://resource_packs/new_pack") else: destination = i.replace("user://resource_packs/BaseAssets", "user://resource_packs/new_pack") - DirAccess.copy_absolute(i, destination) + print("Copying '" + i + "' to: '" + destination) + if i.contains(".bgm") or i.contains(".json") or i.contains("user://"): + DirAccess.copy_absolute(i, destination) + else: + var resource = load(i) + if resource is Texture: + resource.get_image().save_png(destination) + elif resource is AudioStream: + var file = FileAccess.open(destination, FileAccess.WRITE) + file.store_buffer(resource.data) + file.close() + var file = FileAccess.open("user://resource_packs/new_pack/pack_info.json", FileAccess.WRITE) file.store_string(JSON.stringify(base_info_json, "\t")) file.close() @@ -34,7 +45,9 @@ func get_directories(base_dir := "", files := [], directories := []) -> void: func get_files(base_dir := "", files := []) -> void: for i in DirAccess.get_files_at(base_dir): - if i.contains(".import") == false and base_dir.contains("LevelGuides") == false: + if base_dir.contains("LevelGuides") == false: + i = i.replace(".import", "") + print(i) var target_path = base_dir + "/" + i var rom_assets_path = target_path.replace("res://Assets", "user://resource_packs/BaseAssets") if FileAccess.file_exists(rom_assets_path):