Store configuration in user configuration directory
This commit is contained in:
parent
00f843754a
commit
0fbbf4925d
@ -136,13 +136,14 @@ class Game:
|
||||
"""
|
||||
Loads the game from a file
|
||||
"""
|
||||
if os.path.isfile("save.json"):
|
||||
with open("save.json", "r") as f:
|
||||
file_path = ResourceManager.get_config_path("save.json")
|
||||
if os.path.isfile(file_path):
|
||||
with open(file_path, "r") as f:
|
||||
self.load_state(json.loads(f.read()))
|
||||
|
||||
def save_game(self) -> None:
|
||||
"""
|
||||
Saves the game to a file
|
||||
"""
|
||||
with open("save.json", "w") as f:
|
||||
with open(ResourceManager.get_config_path("save.json"), "w") as f:
|
||||
f.write(json.dumps(self.save_state()))
|
||||
|
@ -7,7 +7,15 @@ class ResourceManager:
|
||||
and stores files in config directory.
|
||||
"""
|
||||
BASE_DIR = Path(__file__).resolve().parent / 'assets'
|
||||
# FIXME This might not work on not-UNIX based systems.
|
||||
CONFIG_DIR = Path.home() / '.config' / 'squirrel-battle'
|
||||
|
||||
@classmethod
|
||||
def get_asset_path(cls, filename: str) -> str:
|
||||
return str(cls.BASE_DIR / filename)
|
||||
|
||||
@classmethod
|
||||
def get_config_path(cls, filename: str) -> str:
|
||||
cls.CONFIG_DIR.mkdir(parents=True) if not cls.CONFIG_DIR.is_dir() \
|
||||
else None
|
||||
return str(cls.CONFIG_DIR / filename)
|
||||
|
@ -2,6 +2,8 @@ import json
|
||||
import os
|
||||
from typing import Any, Generator
|
||||
|
||||
from .resources import ResourceManager
|
||||
|
||||
|
||||
class Settings:
|
||||
"""
|
||||
@ -81,13 +83,14 @@ class Settings:
|
||||
"""
|
||||
Loads the settings from a file
|
||||
"""
|
||||
if os.path.isfile("settings.json"):
|
||||
with open("settings.json", "r") as f:
|
||||
file_path = ResourceManager.get_config_path("settings.json")
|
||||
if os.path.isfile(file_path):
|
||||
with open(file_path, "r") as f:
|
||||
self.loads_from_string(f.read())
|
||||
|
||||
def write_settings(self) -> None:
|
||||
"""
|
||||
Dumps the settings into a file
|
||||
"""
|
||||
with open("settings.json", "w") as f:
|
||||
with open(ResourceManager.get_config_path("settings.json"), "w") as f:
|
||||
f.write(self.dumps_to_string())
|
||||
|
Loading…
Reference in New Issue
Block a user