From fce9a95c0edf5ba30f71b3377aa9e9fdedb77b4c Mon Sep 17 00:00:00 2001 From: Anthony Foxclaw Date: Mon, 6 Jul 2020 04:33:01 -0400 Subject: [PATCH 1/2] Load DLC from respective directories So, my initial idea didn't pan out the way I thought. Now check_for_dlc() will traverse through DLC directories . and load the buttons if it's found. --- scripts/wardrobe.gd | 58 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 46 insertions(+), 12 deletions(-) diff --git a/scripts/wardrobe.gd b/scripts/wardrobe.gd index 0e9ab73..54d8ed9 100644 --- a/scripts/wardrobe.gd +++ b/scripts/wardrobe.gd @@ -9,7 +9,24 @@ onready var shirts_grid = $Shirts/ShirtsScroll/ShirtsGrid onready var undies_grid = $Underwear/UndiesScroll/UndiesGrid onready var accs_grid = $Accessoires/AccsScroll/AccsGrid -func get_dlc(dlc_pack, scenes: Array): +func list_files_in_directory(path): + var files = [] + var dir = Directory.new() + dir.open(path) + dir.list_dir_begin() + + while true: + var file = dir.get_next() + if file == "": + break + elif not file.begins_with("."): + files.append(file) + + dir.list_dir_end() + + return files + +func check_for_dlc(dlc_pack): var usr_dir = "user://dlc/" var dlc_path = usr_dir + dlc_pack var load_pck = ProjectSettings.load_resource_pack(dlc_path, false) @@ -20,21 +37,38 @@ func get_dlc(dlc_pack, scenes: Array): # Load the DLC ProjectSettings.load_resource_pack(dlc_path, false) - # Initialize and add nodes from each tab - for scene in scenes: - var dlc_scene = "res://scenes/dlc/" + scene - var init = load(dlc_scene).instance() - - if "shirts" in scene: + # Locates + var dir = Directory.new() + dir.list_dir_begin() + var shirts_dir = "res://scenes/dlc/shirts/" + var pants_dir = "res://scenes/dlc/pants/" + var undies_dir = "res://scenes/dlc/undies/" + var dlc_shirts = list_files_in_directory(shirts_dir) + var dlc_pants = list_files_in_directory(pants_dir) + var dlc_undies = list_files_in_directory(undies_dir) + + # Initialize and add nodes from each tab + for shirt in dlc_shirts: + if dir.file_exists(shirts_dir + shirt): + var init = load(shirts_dir + shirt).instance() shirts_grid.add_child(init) - print_debug("Initialized: " + dlc_scene) + print_debug("Initialized: " + shirts_dir + shirt) - if "pants" in scene: - pants_grid.add_child(init) - print_debug("Initialized: " + dlc_scene) + for pants in dlc_pants: + if dir.file_exists(pants_dir + pants): + var init = load(pants_dir + pants).instance() + shirts_grid.add_child(init) + print_debug("Initialized: " + pants_dir + pants) + + for undies in dlc_undies: + if dir.file_exists(undies_dir + undies): + var init = load(undies_dir + undies).instance() + shirts_grid.add_child(init) + print_debug("Initialized: " + undies_dir + undies) func _ready(): - get_dlc("testdlc.pck", ["shirts/TestShirts.tscn"]) +# check_for_dlc("testdlc.pck") + pass func _on_removeAccessory_pressed(): character.accessory = blank_top From b88e55eb52b297c84d8683a9354ff065b0e0593b Mon Sep 17 00:00:00 2001 From: Anthony Foxclaw Date: Mon, 6 Jul 2020 04:36:40 -0400 Subject: [PATCH 2/2] Finished commenting --- scripts/wardrobe.gd | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/scripts/wardrobe.gd b/scripts/wardrobe.gd index 54d8ed9..4741a96 100644 --- a/scripts/wardrobe.gd +++ b/scripts/wardrobe.gd @@ -34,12 +34,14 @@ func check_for_dlc(dlc_pack): # Check if the DLC is actually there if load_pck == true: - # Load the DLC + + # Loads the DLC ProjectSettings.load_resource_pack(dlc_path, false) - # Locates var dir = Directory.new() dir.list_dir_begin() + + # Lists the files in each of their respective directories var shirts_dir = "res://scenes/dlc/shirts/" var pants_dir = "res://scenes/dlc/pants/" var undies_dir = "res://scenes/dlc/undies/" @@ -47,7 +49,8 @@ func check_for_dlc(dlc_pack): var dlc_pants = list_files_in_directory(pants_dir) var dlc_undies = list_files_in_directory(undies_dir) - # Initialize and add nodes from each tab + # Make sure each file actually exist, instance them + # and add them to their respective tabs for shirt in dlc_shirts: if dir.file_exists(shirts_dir + shirt): var init = load(shirts_dir + shirt).instance()