1
0
Fork 0
mirror of https://github.com/tonytins/dressupzack synced 2025-05-05 21:34:49 -04:00
dressupzack/scripts/wardrobe.gd
Anthony Leland c406ed56d2
Modular character design (#12)
Legs, shirt and the head are now independent sprites that can be changed separately. New clothes can be made from a template instead of having to work within a blank space. This removes the need for extra layers and placeholders while opening the door to creating new scenes and migrating over to new styles.

This wasn't always possible until the SVG port removed the Adobe Animate dependency. The layers and placeholders were there because the original Flash game was based around a drag-and-drop design. Tony's Dress Up was initially intended to be a 1:1 port of the Flash game which is why it wasn't done sooner.

New Emoji-based shirts based on Twemoji because the idea sounded fun. Credits will eventually be added in-game but for now it's in the README. For the time being, a few of the ZC's Dress Up-era shirts have pulled because they were never properly ported over during the remaster.
2020-07-15 13:26:20 -04:00

76 lines
2.2 KiB
GDScript

extends TabContainer
onready var character = preload("res://resources/character.tres")
onready var blank_accessory = preload("res://sprites/clothes/blank_top.png")
onready var base_top = preload("res://sprites/character_base_top.svg")
onready var base_bottom = preload("res://sprites/character_base_legs.svg")
onready var pants_grid = $Pants/PantsScroll/PantsGrid
onready var shirts_grid = $Shirts/ShirtsScroll/ShirtsGrid
#onready var undies_grid = $Underwear/UndiesScroll/UndiesGrid
onready var accs_grid = $Accessoires/AccsScroll/AccsGrid
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)
print_debug("Loaded " + dlc_path + ": " + str(load_pck))
# Check if the DLC is actually there
if load_pck == true:
# Loads the DLC
ProjectSettings.load_resource_pack(dlc_path, false)
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 dlc_shirts = list_files_in_directory(shirts_dir)
var dlc_pants = list_files_in_directory(pants_dir)
# 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()
shirts_grid.add_child(init)
print_debug("Initialized: " + shirts_dir + shirt)
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)
func _ready():
check_for_dlc("emojidlc.pck")
pass
func _on_removeAccessory_pressed():
character.accessory = blank_accessory
func _on_removePants_pressed():
character.bottom = base_bottom
func _on_removeShirt_pressed():
character.top = base_top