From 8e11460655fdf4623c50d74e2f861fb547a80717 Mon Sep 17 00:00:00 2001 From: Toasterkitten Date: Wed, 24 Jun 2026 18:22:04 -0400 Subject: [PATCH] loading SAVES! --- untitled/app.py | 29 ++++++++++++++++++++++++++--- untitled/persistence.py | 5 +++++ 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/untitled/app.py b/untitled/app.py index fd3370c..c526381 100644 --- a/untitled/app.py +++ b/untitled/app.py @@ -14,6 +14,10 @@ class App: return screens.house(self.save) + def enter_save(self, save): + self.save = save + self.game() + def run(self): # Intro if not self.debug: @@ -24,7 +28,8 @@ class App: # Main Menu while True: # forEVER!... forEVER!... forEVER!... forEVER!... match ui.select( - f"Welcome to {content.GAME_NAME}!", ["New Game", "Credits", "Exit"] + f"Welcome to {content.GAME_NAME}!", + ["New Game", "Load Game", "Credits", "Exit"], ): case "Exit": # :( print("bye.") @@ -48,5 +53,23 @@ class App: print("Saving...") persistence.save(save) print("Save complete.") - self.save = save - self.game() + self.enter_save(save) + case "Load Game": + saves = persistence.list_saves() + if not saves: + print("You have no savefiles available to load.") + continue + save_name = ui.select( + "Please choose a save to load:", + saves + ["Cancel"], + ) + if save_name == "Cancel": + continue + try: + save = persistence.load(save_name) + except persistence.json.JSONDecodeError: + print( + "There was an error loading your savefile, it may be corrupt :(" + ) + continue + self.enter_save(save) diff --git a/untitled/persistence.py b/untitled/persistence.py index d3d1c19..61d5759 100644 --- a/untitled/persistence.py +++ b/untitled/persistence.py @@ -30,3 +30,8 @@ def load(name, folder=None): save = model.Save.from_dict(data) return save + + +def list_saves(folder=None): + folder = folder or SAVE_FOLDER + return [save.stem for save in folder.glob("*.kitten")]