Skip to content

Instantly share code, notes, and snippets.

@jgdovin
Created February 13, 2025 16:32
Show Gist options
  • Save jgdovin/f8a7ca94dd58ff2860fab53fd6fe9fc7 to your computer and use it in GitHub Desktop.
Save jgdovin/f8a7ca94dd58ff2860fab53fd6fe9fc7 to your computer and use it in GitHub Desktop.
extends Node
var data = {}
func save_game() -> void:
var saved_game = {}
get_tree().call_group("save_events", "on_save_called", saved_game)
if OS.has_feature("debug"):
save_debug(saved_game)
return
save_encoded(saved_game)
func load_game() -> void:
if OS.has_feature("debug"):
load_debug()
return
load_encoded()
func load_debug():
var file = FileAccess.open("user://savegame_debug.json", FileAccess.READ)
if not file:
return
var json = file.get_as_text()
var saved_game = JSON.parse_string(json)
get_tree().call_group("save_events", "on_load_called", saved_game)
func load_encoded():
var encoded_save_file = FileAccess.open("user://savegame", FileAccess.READ)
if not encoded_save_file:
return
var saved_game = encoded_save_file.get_var()
get_tree().call_group("save_events", "on_load_called", saved_game)
func save_encoded(saved_game):
var encoded_save_file = FileAccess.open("user://savegame", FileAccess.WRITE)
encoded_save_file.store_var(saved_game)
encoded_save_file.close()
func save_debug(saved_game):
var save_file = FileAccess.open("user://savegame_debug.json", FileAccess.WRITE)
var json = JSON.stringify(saved_game)
save_file.store_string(json)
save_file.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment