mirror of
https://github.com/tonytins/dressupzack
synced 2025-06-25 08:04:43 -04:00
Upgrade to Godot 4
This is the start of a major rewrite of the game, using varies add-ons whenever possible instead of reinventing the wheel. Not that it wasn't a good learning experience, but, yeah, glad Godot 4 is finally here.
This commit is contained in:
parent
25257f722d
commit
a1bd301c95
233 changed files with 6786 additions and 3446 deletions
|
@ -1,108 +0,0 @@
|
|||
# This project is licensed under the Artistic-2.0 license.
|
||||
# See the LICENSE file in the project root for more information.
|
||||
extends Node2D
|
||||
|
||||
const _TDU_VERSION = "0.2"
|
||||
const _SAVE_FILE = "user://character.tdu"
|
||||
|
||||
onready var blank_accessory = preload("res://sprites/clothes/blank_top.png")
|
||||
onready var base_top = preload("res://sprites/character/character_base_top.svg")
|
||||
onready var base_bottom = preload("res://sprites/character/character_base_legs.svg")
|
||||
|
||||
onready var export_win = $Controls/Container/ExportWin
|
||||
onready var import_win = $Controls/Container/ImportWin
|
||||
|
||||
onready var accessory = $Body/Accessory
|
||||
#onready var underwear = $Undies
|
||||
onready var bottom = $Body/Legs
|
||||
onready var top = $Body/Top
|
||||
# onready var eyes = $Body/Head/Eyes
|
||||
# onready var mouth = $Body/Head/Mouth
|
||||
|
||||
func _process(delta):
|
||||
|
||||
if GameData.accessory != null:
|
||||
accessory.texture = GameData.accessory
|
||||
|
||||
# if GameData.underwear != null:
|
||||
# underwear.texture = GameData.underwear
|
||||
|
||||
if GameData.bottom != null:
|
||||
bottom.texture = GameData.bottom
|
||||
|
||||
if GameData.top != null:
|
||||
top.texture = GameData.top
|
||||
|
||||
func save_game():
|
||||
var data_file = {
|
||||
"version": _TDU_VERSION,
|
||||
"game_ver": GameData.version,
|
||||
"accessory": "res://sprites/clothes/blank_top.png",
|
||||
"top": "res://sprites/clothes/blank_top.png",
|
||||
"bottom": "res://sprites/character/character_base_legs.svg",
|
||||
}
|
||||
|
||||
data_file["accessory"] = accessory.texture.resource_path
|
||||
data_file["top"] = top.texture.resource_path
|
||||
data_file["bottom"] = bottom.texture.resource_path
|
||||
|
||||
var file = File.new()
|
||||
if file.open(_SAVE_FILE, File.WRITE) != 0:
|
||||
print("Error opening file")
|
||||
return
|
||||
var json_file = to_json(data_file)
|
||||
|
||||
GameEvents.emit_signal("indicate")
|
||||
|
||||
file.store_line(json_file)
|
||||
file.close()
|
||||
|
||||
func load_game():
|
||||
var file = File.new()
|
||||
|
||||
if not file.file_exists(_SAVE_FILE):
|
||||
print("File not found!")
|
||||
return
|
||||
|
||||
if file.open(_SAVE_FILE, File.READ) != 0:
|
||||
print("Error opening file")
|
||||
return
|
||||
|
||||
var data = parse_json(file.get_as_text())
|
||||
|
||||
var top_texture = ImageTexture.new()
|
||||
var accessory_texture = ImageTexture.new()
|
||||
var bottom_texture = ImageTexture.new()
|
||||
var top_image = Image.new()
|
||||
var accessory_image = Image.new()
|
||||
var bottom_image = Image.new()
|
||||
|
||||
GameEvents.emit_signal("indicate")
|
||||
|
||||
top_image.load(data["top"])
|
||||
top_texture.create_from_image(top_image)
|
||||
top.texture = top_texture
|
||||
|
||||
bottom_image.load(data["bottom"])
|
||||
top_texture.create_from_image(top_image)
|
||||
bottom.texture = top_texture
|
||||
|
||||
accessory_image.load(data["accessory"])
|
||||
accessory_texture.create_from_image(top_image)
|
||||
accessory.texture = accessory_texture
|
||||
|
||||
file.close()
|
||||
|
||||
func _on_clearBtn_pressed():
|
||||
$Click.play()
|
||||
GameData.accessory = blank_accessory
|
||||
GameData.bottom = base_bottom
|
||||
GameData.top = base_top
|
||||
|
||||
func _on_SaveBtn_pressed():
|
||||
$Click.play()
|
||||
save_game()
|
||||
|
||||
func _on_LoadBtn_pressed():
|
||||
$Click.play()
|
||||
load_game()
|
|
@ -2,5 +2,5 @@
|
|||
# See the LICENSE file in the project root for more information.
|
||||
extends TextureButton
|
||||
|
||||
onready var player = $select
|
||||
onready var character = preload("res://resources/character.tres")
|
||||
@onready var player = $select
|
||||
@onready var character = preload("res://resources/character.tres")
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
# See the LICENSE file in the project root for more information.
|
||||
extends Control
|
||||
|
||||
export var version: String = "1.0.0"
|
||||
@export var version: String = "1.0.0"
|
||||
|
||||
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/character_base_top.svg")
|
||||
onready var base_bottom = preload("res://sprites/character/character_base_legs.svg")
|
||||
@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/character_base_top.svg")
|
||||
@onready var base_bottom = preload("res://sprites/character/character_base_legs.svg")
|
||||
|
||||
onready var export_btn = $CenterBtns/ButtonCtr/ExportBtn
|
||||
onready var import_btn = $CenterBtns/ButtonCtr/ImportBtn
|
||||
onready var http_request = $NewsWin/NewsBtns/HTTPRequest
|
||||
@onready var export_btn = $CenterBtns/ButtonCtr/ExportBtn
|
||||
@onready var import_btn = $CenterBtns/ButtonCtr/ImportBtn
|
||||
@onready var http_request = $NewsWin/NewsBtns/HTTPRequest
|
||||
|
||||
func _ready():
|
||||
var verLabel = $VersionLbl
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
extends WindowDialog
|
||||
extends Window
|
||||
|
||||
onready var news_list = $News
|
||||
onready var http_request = $NewsBtns/HTTPRequest
|
||||
@onready var news_list = $News
|
||||
@onready var http_request = $NewsBtns/HTTPRequest
|
||||
|
||||
func _on_HTTPRequest_request_completed(result, response_code, headers, body):
|
||||
var api_request = parse_json(body.get_string_from_utf8())
|
||||
var test_json_conv = JSON.new()
|
||||
test_json_conv.parse(body.get_string_from_utf8())
|
||||
var api_request = test_json_conv.get_data()
|
||||
|
||||
if api_request["feed"] != null:
|
||||
var news_items = api_request["feed"]
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
# See the LICENSE file in the project root for more information.
|
||||
extends TextureRect
|
||||
|
||||
onready var timer = $Timer
|
||||
@onready var timer = $Timer
|
||||
|
||||
func _ready():
|
||||
GameEvents.connect("indicate", self, "_on_indicate")
|
||||
GameEvents.connect("indicate",Callable(self,"_on_indicate"))
|
||||
|
||||
func _on_indicate():
|
||||
show()
|
||||
|
|
|
@ -2,72 +2,16 @@
|
|||
# See the LICENSE file in the project root for more information.
|
||||
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/character_base_top.svg")
|
||||
onready var base_bottom = preload("res://sprites/clothes/owo_censor.svg")
|
||||
@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/character_base_top.svg")
|
||||
@onready var base_bottom = preload("res://sprites/clothes/owo_censor.svg")
|
||||
|
||||
onready var pants_grid = $Pants/PantsScroll/PantsGrid
|
||||
onready var shirts_grid = $Shirts/ShirtsScroll/ShirtsGrid
|
||||
@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 load_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:
|
||||
@onready var accs_grid = $Accessoires/AccsScroll/AccsGrid
|
||||
|
||||
# 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():
|
||||
load_dlc("emojidlc.pck")
|
||||
pass
|
||||
|
||||
func _on_removeAccessory_pressed():
|
||||
character.accessory = blank_accessory
|
||||
|
||||
|
|
40
scripts/zack_casey.gd
Normal file
40
scripts/zack_casey.gd
Normal file
|
@ -0,0 +1,40 @@
|
|||
# This project is licensed under the Artistic-2.0 license.
|
||||
# See the LICENSE file in the project root for more information.
|
||||
extends Node2D
|
||||
|
||||
const _TDU_VERSION = "0.2"
|
||||
const _SAVE_FILE = "user://character.tdu"
|
||||
|
||||
@onready var blank_accessory = preload("res://sprites/clothes/blank_top.png")
|
||||
@onready var base_top = preload("res://sprites/character/character_base_top.svg")
|
||||
@onready var base_bottom = preload("res://sprites/character/character_base_legs.svg")
|
||||
|
||||
@onready var export_win = $Controls/Container/ExportWin
|
||||
@onready var import_win = $Controls/Container/ImportWin
|
||||
|
||||
@onready var accessory = $Body/Accessory
|
||||
#onready var underwear = $Undies
|
||||
@onready var bottom = $Body/Legs
|
||||
@onready var top = $Body/Top
|
||||
# onready var eyes = $Body/Head/Eyes
|
||||
# onready var mouth = $Body/Head/Mouth
|
||||
|
||||
func _process(delta):
|
||||
|
||||
if GameData.accessory != null:
|
||||
accessory.texture = GameData.accessory
|
||||
|
||||
# if GameData.underwear != null:
|
||||
# underwear.texture = GameData.underwear
|
||||
|
||||
if GameData.bottom != null:
|
||||
bottom.texture = GameData.bottom
|
||||
|
||||
if GameData.top != null:
|
||||
top.texture = GameData.top
|
||||
|
||||
func _on_clearBtn_pressed():
|
||||
$Click.play()
|
||||
GameData.accessory = blank_accessory
|
||||
GameData.bottom = base_bottom
|
||||
GameData.top = base_top
|
Loading…
Add table
Add a link
Reference in a new issue