40 lines
1.0 KiB
GDScript
40 lines
1.0 KiB
GDScript
extends Node2D
|
|
|
|
func _unhandled_input(event: InputEvent) -> void:
|
|
if event.is_action_pressed("menu"):
|
|
open_menu()
|
|
|
|
# list of scenes
|
|
var outside:Node2D = null
|
|
var dest_outside = preload("res://scenes/outside.tscn")
|
|
var menu = null
|
|
|
|
func start_game():
|
|
menu = get_child(0)
|
|
if outside == null:
|
|
outside = dest_outside.instantiate()
|
|
add_child(outside)
|
|
remove_child(menu)
|
|
GameState.current_scene = "outside"
|
|
outside.load_from_game_state()
|
|
|
|
func open_menu():
|
|
remove_child(outside)
|
|
add_child(menu)
|
|
|
|
func load_game():
|
|
var save_file = FileAccess.open("user://savegame.save", FileAccess.READ)
|
|
var json_string = ""
|
|
while save_file.get_position() < save_file.get_length():
|
|
json_string += save_file.get_line()
|
|
var json = JSON.new()
|
|
if json.parse(json_string) == OK:
|
|
print("load", json.data)
|
|
GameState.load_save(json.data)
|
|
|
|
func save_game():
|
|
var save_file = FileAccess.open("user://savegame.save", FileAccess.WRITE)
|
|
save_file.store_line(JSON.stringify(GameState.save()))
|
|
print(OS.get_data_dir())
|
|
save_file.close()
|