Files
Untitled-Cat-Game/untitled/persistence.py
2026-06-24 18:22:56 -04:00

40 lines
851 B
Python

import json
from pathlib import Path
from untitled import PACKAGE_ROOT, model
SAVE_FOLDER = PACKAGE_ROOT / "saves"
def save(save: model.Save, folder=None):
folder = folder or SAVE_FOLDER
file_name = save.cat.name + ".kitten"
save_file = Path(folder) / file_name
data = save.to_dict()
folder.mkdir(parents=True, exist_ok=True)
with open(save_file, "w") as f:
json.dump(data, f)
def load(name, folder=None):
folder = folder or SAVE_FOLDER
file_name = name + ".kitten"
save_file = Path(folder) / file_name
with open(save_file) as f:
data = json.load(f)
save = model.Save.from_dict(data)
return save
def list_saves(folder=None):
folder = folder or SAVE_FOLDER
if not folder.exists():
return []
return [savefile.stem for savefile in folder.glob("*.kitten")]