X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=tabakrolletjie%2Futils.py;h=b237467ded10e499d5b8f4b69c76816d87a6c25e;hb=94ca43faf86e1ee6ab6e15b6da84eaa2d62a0c44;hp=6be4469ecf8b404fc8032cb3f2bddb8dcacf0250;hpb=3dfbd74e5b821ea7e7ca78ce3b0f4f38c2e556bb;p=tabakrolletjie.git diff --git a/tabakrolletjie/utils.py b/tabakrolletjie/utils.py index 6be4469..b237467 100644 --- a/tabakrolletjie/utils.py +++ b/tabakrolletjie/utils.py @@ -4,6 +4,9 @@ import functools import time import pygame.surface import pygame.locals as pgl +import os +import sys +import json from .constants import DEBUG from .loader import loader @@ -69,3 +72,40 @@ def shadowed_text(text, font_name, size, offset=4): base.blit(background, (offset, offset), None) base.blit(foreground, (0, 0), None) return base + + +def save_location(): + """Return the directory for the save location.""" + app = "tabakrolletjie" + if sys.platform.startswith('win'): + if 'APPDATA' in os.environ: + return os.path.join(os.environ['APPDATA'], app) + return os.path.join(os.path.expanduser('~'), '.' + app) + elif 'XDG_DATA_HOME' in os.environ: + return os.path.join(os.environ['XDG_DATA_HOME'], app) + return os.path.join(os.path.expanduser('~'), '.local', 'share', app) + + +def get_save_file_name(): + return os.path.join(save_location(), 'savegame.json') + + +def save_file_exists(): + savefile = get_save_file_name() + return os.path.isfile(savefile) + + +def get_save_data(): + savefile = get_save_file_name() + with open(savefile, 'rb') as f: + data = json.load(f) + return data + + +def write_save_file(json_data): + save_dir = save_location() + if not os.path.exists(save_dir): + os.makedirs(save_dir) + savefile = get_save_file_name() + with open(savefile, 'wb') as f: + json.dump(json_data, f, indent=3)