fix saving/loading debug buttons
This commit is contained in:
parent
be47641bab
commit
b4fc5c4906
4 changed files with 76 additions and 22 deletions
|
@ -76,5 +76,5 @@ text = "Load
|
|||
"
|
||||
|
||||
[connection signal="interacted" from="Door/Interactable" to="Door" method="_on_interact"]
|
||||
[connection signal="pressed" from="Control/HBoxContainer/SaveButton" to="Control/Persistence" method="save"]
|
||||
[connection signal="pressed" from="Control/HBoxContainer/LoadButton" to="Control/Persistence" method="load"]
|
||||
[connection signal="pressed" from="Control/HBoxContainer/SaveButton" to="Control/Persistence" method="save" binds= ["save1.sav"]]
|
||||
[connection signal="pressed" from="Control/HBoxContainer/LoadButton" to="Control/Persistence" method="load" binds= ["save1.sav"]]
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -14,11 +14,20 @@ static func get_instance_data(node: Node):
|
|||
data = node.call(SaveMethod)
|
||||
}
|
||||
|
||||
func get_file(filename: String) -> Result:
|
||||
if not filename.is_valid_filename():
|
||||
return Result.err('invalid filename "%s"' % filename)
|
||||
else:
|
||||
var file_path = path.path_join(filename)
|
||||
return Result.ok(file_path)
|
||||
|
||||
func save(filename: String) -> Result:
|
||||
DirAccess.make_dir_recursive_absolute(path.get_base_dir())
|
||||
var file_path = path.path_join(filename)
|
||||
if not file_path.is_valid_filename():
|
||||
return Result.err('invalid file path "%s"' % file_path)
|
||||
var file_result = get_file(filename)
|
||||
if file_result.is_err():
|
||||
push_error(file_result.unwrap_err())
|
||||
return file_result
|
||||
var file_path = file_result.unwrap()
|
||||
var file = FileAccess.open(file_path, FileAccess.WRITE)
|
||||
var nodes = get_tree().get_nodes_in_group(group_name)
|
||||
|
||||
|
@ -56,13 +65,21 @@ func _get_or_add(instance_data: Dictionary) -> Variant:
|
|||
|
||||
return node
|
||||
|
||||
func load() -> Result:
|
||||
if not FileAccess.file_exists(path):
|
||||
return Result.err('ENOENT: "%s" does not exist' % path)
|
||||
func load(filename: String) -> Result:
|
||||
var file_result = get_file(filename)
|
||||
if file_result.is_err():
|
||||
push_error(file_result.unwrap_err())
|
||||
return file_result
|
||||
var file_path = file_result.unwrap()
|
||||
|
||||
if not FileAccess.file_exists(file_path):
|
||||
var err = 'ENOENT: "%s" does not exist' % path
|
||||
push_error(err)
|
||||
return Result.err(err)
|
||||
|
||||
get_tree().call_group(group_name, OnBeforeLoadMethod)
|
||||
|
||||
var file = FileAccess.open(path, FileAccess.READ)
|
||||
var file = FileAccess.open(file_path, FileAccess.READ)
|
||||
|
||||
var length = file.get_length()
|
||||
while file.get_position() < length:
|
||||
|
|
|
@ -6,6 +6,9 @@ class_name Player extends CharacterBody3D
|
|||
@onready var input = $Input
|
||||
@onready var interactor = $Interactor
|
||||
|
||||
var is_running: bool:
|
||||
get: return velocity and input.is_running
|
||||
|
||||
var is_carrying_item = true
|
||||
var is_weapon_ready: bool:
|
||||
get: return is_carrying_item and input.is_weapon_ready
|
||||
|
@ -28,6 +31,7 @@ func move_and_rotate(_delta: float):
|
|||
move_and_slide()
|
||||
|
||||
func rotate_toward_look(_delta: float):
|
||||
velocity = Vector3.ZERO
|
||||
var target = input.get_look_target(global_position)
|
||||
if target.is_some():
|
||||
look_at(target.unwrap(), Vector3.UP, true)
|
||||
|
|
Loading…
Add table
Reference in a new issue