waited far too long for an initial commit but here we are
This commit is contained in:
47
Scripts/Resources/player_profile.gd
Normal file
47
Scripts/Resources/player_profile.gd
Normal file
@ -0,0 +1,47 @@
|
||||
extends Resource
|
||||
class_name PlayerProfile
|
||||
|
||||
signal display_name_changed(old_name, new_name)
|
||||
signal preferred_class_changed(old_class, new_class)
|
||||
|
||||
const SAVE_PATH := "user://profile.tres"
|
||||
|
||||
@export var display_name := "Charlie"
|
||||
@export var preferred_class := 0
|
||||
|
||||
func to_dict() -> Dictionary:
|
||||
var dict = {}
|
||||
dict["display_name"] = display_name
|
||||
dict["preferred_class"] = preferred_class
|
||||
return dict
|
||||
static func from_dict(dict) -> PlayerProfile:
|
||||
var output = PlayerProfile.new()
|
||||
output.display_name = dict["display_name"]
|
||||
output.preferred_class = dict["preferred_class"]
|
||||
return output
|
||||
|
||||
func set_display_name(new_display_name):
|
||||
if new_display_name == display_name:
|
||||
return
|
||||
var old_name = display_name
|
||||
display_name = new_display_name
|
||||
save_profile_to_disk()
|
||||
display_name_changed.emit(old_name, display_name)
|
||||
func get_display_name() -> String:
|
||||
return display_name
|
||||
|
||||
func set_preferred_class(new_preferred_class):
|
||||
if new_preferred_class == preferred_class:
|
||||
return
|
||||
var old_class = preferred_class
|
||||
preferred_class = new_preferred_class
|
||||
preferred_class_changed.emit(old_class, preferred_class)
|
||||
func get_preferred_class() -> int:
|
||||
return preferred_class
|
||||
|
||||
func save_profile_to_disk():
|
||||
ResourceSaver.save(self, SAVE_PATH)
|
||||
static func load_profile_from_disk() -> PlayerProfile:
|
||||
if ResourceLoader.exists(SAVE_PATH):
|
||||
return ResourceLoader.load(SAVE_PATH)
|
||||
return PlayerProfile.new()
|
Reference in New Issue
Block a user