mirror of
https://github.com/JHDev2006/Super-Mario-Bros.-Remastered-Public.git
synced 2025-10-22 15:38:14 +00:00
59 lines
2.1 KiB
GDScript
59 lines
2.1 KiB
GDScript
extends Node
|
|
|
|
var files := []
|
|
var directories := []
|
|
|
|
const base_info_json := {
|
|
"name": "New Pack",
|
|
"description": "Template, give me a description!",
|
|
"author": "Me, until you change it"
|
|
}
|
|
|
|
func create_template() -> void:
|
|
get_directories("res://Assets", files, directories)
|
|
for i in directories:
|
|
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")
|
|
else:
|
|
destination = i.replace("user://resource_packs/BaseAssets", "user://resource_packs/new_pack")
|
|
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 AudioStreamWAV:
|
|
resource.save_to_wav(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()
|
|
print("Done")
|
|
|
|
func get_directories(base_dir := "", files := [], directories := []) -> void:
|
|
for i in DirAccess.get_directories_at(base_dir):
|
|
if base_dir.contains("LevelGuides") == false:
|
|
directories.append(base_dir + "/" + i)
|
|
get_directories(base_dir + "/" + i, files, directories)
|
|
get_files(base_dir + "/" + i, files)
|
|
|
|
func get_files(base_dir := "", files := []) -> void:
|
|
for i in DirAccess.get_files_at(base_dir):
|
|
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):
|
|
files.append(rom_assets_path)
|
|
else:
|
|
files.append(target_path)
|