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
def debug_timer(label, debug=False):
def end(self):
print " %s: %s" % ("total", time.time() - self.times[0])
print "---- ----"
+
+
+def shadowed_text(text, font_name, size, offset=4):
+ font_black = loader.load_font(font_name, size=size)
+ font_white = loader.load_font(font_name, size=size)
+ background = font_black.render(text, True, (0, 0, 0))
+ foreground = font_white.render(text, True, (255, 255, 255))
+ new_size = (background.get_width() + offset,
+ background.get_height() + offset)
+ base = pygame.surface.Surface(new_size, pgl.SWSURFACE).convert_alpha()
+ base.fill((0, 0, 0, 0))
+ 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)