mirror of
https://github.com/tonytins/dressupzack
synced 2025-05-05 13:34:48 -04:00
- Ported over the fan from 2.5, and it's shelf from 3E - Removed the CAS-inspired stand from the game - Redid license section.
117 lines
3.2 KiB
GDScript
117 lines
3.2 KiB
GDScript
extends Node
|
|
|
|
@onready var tops = $Character/Seperate/Tops
|
|
@onready var bottoms = $Character/Seperate/Bottoms
|
|
@onready var seperate_items = $Seperate
|
|
@onready var bottoms_bck = $Canvas/UI/DressUpCtrls/BottomsBckBtn
|
|
@onready var bottoms_fwd = $Canvas/UI/DressUpCtrls/BottomsFwdBtn
|
|
@onready var outfits = $Character/Outfits
|
|
@onready var fan = $World/Fan
|
|
@onready var forward_click = $ForwardClick
|
|
@onready var back_click = $BackClick
|
|
|
|
# Only here for debugging purposes
|
|
@onready var outfits_btn = $Canvas/UI/SettingsCtrls/FullbodyBtn
|
|
|
|
var is_seperate: bool = true
|
|
var is_outfits: bool = false
|
|
var current_frame: int
|
|
var sprite_frames: SpriteFrames
|
|
|
|
var config_file = Config.config_file()
|
|
var save_file = Config.save_file()
|
|
|
|
func _ready():
|
|
|
|
# Keep outfits button enabled in debug builds
|
|
if OS.is_debug_build():
|
|
outfits_btn.disabled = false
|
|
|
|
fan.play("default")
|
|
|
|
# If config files don't exist, create them
|
|
if !FileAccess.file_exists(config_file):
|
|
Config.save_config(config_file)
|
|
|
|
if !FileAccess.file_exists(save_file):
|
|
Config.save_game(save_file)
|
|
|
|
# Load last saved game
|
|
if FileAccess.file_exists(save_file):
|
|
var clothes_section = "clothes"
|
|
tops.frame = Config.load_config(clothes_section, "tops", save_file)
|
|
bottoms.frame = Config.load_config(clothes_section, "bottoms", save_file)
|
|
outfits.frame = Config.load_config(clothes_section, "outfits", save_file)
|
|
|
|
# Load window size
|
|
if FileAccess.file_exists(config_file):
|
|
var window_section = "window"
|
|
var window_height = Config.load_config(window_section, "height", config_file)
|
|
var window_width = Config.load_config(window_section, "width", config_file)
|
|
var viewport = get_viewport();
|
|
|
|
# Set window size
|
|
DisplayServer.window_set_size(Vector2i(window_width, window_height))
|
|
|
|
func save_all():
|
|
Config.save_game(tops.frame, bottoms.frame, outfits.frame, save_file, true)
|
|
|
|
func next_frame(animation: AnimatedSprite2D, sprite_frames: SpriteFrames, animation_name, rewind = false):
|
|
var max_frames = sprite_frames.get_frame_count(animation_name) - 1
|
|
current_frame = animation.frame
|
|
|
|
if !rewind:
|
|
forward_click.play()
|
|
animation.frame = current_frame + 1
|
|
if current_frame == max_frames:
|
|
animation.frame = 0
|
|
else:
|
|
back_click.play()
|
|
animation.frame = current_frame + -1
|
|
if current_frame == 0:
|
|
animation.frame = max_frames
|
|
|
|
func _process(delta):
|
|
if Input.is_action_just_pressed("exit"):
|
|
save_all()
|
|
get_tree().quit()
|
|
|
|
func _on_save_btn_pressed():
|
|
save_all()
|
|
|
|
func _on_tops_fwd_btn_pressed():
|
|
next_frame(tops, tops.sprite_frames, "tops")
|
|
|
|
if is_outfits:
|
|
next_frame(outfits, outfits.sprite_frames, "fullbody")
|
|
|
|
func _on_tops_bck_btn_pressed():
|
|
next_frame(tops, tops.sprite_frames, "tops", true)
|
|
|
|
if is_outfits:
|
|
next_frame(outfits, outfits.sprite_frames, "fullbody", true)
|
|
|
|
func _on_bottoms_bck_btn_pressed():
|
|
next_frame(bottoms, bottoms.sprite_frames, "bottoms", true)
|
|
|
|
|
|
func _on_bottoms_fwd_btn_pressed():
|
|
next_frame(bottoms, bottoms.sprite_frames, "bottoms")
|
|
|
|
func _on_fullbody_btn_pressed():
|
|
is_seperate = false
|
|
is_outfits = true
|
|
seperate_items.hide()
|
|
bottoms_bck.hide()
|
|
bottoms_fwd.hide()
|
|
outfits.show()
|
|
|
|
func _on_separate_btn_pressed():
|
|
is_seperate = true
|
|
is_outfits = false
|
|
seperate_items.show()
|
|
bottoms_bck.show()
|
|
bottoms_fwd.show()
|
|
outfits.hide()
|
|
|
|
|