splinter-keep/tools/engine_lib/paths.py
2026-07-05 12:50:22 +02:00

68 lines
2.0 KiB
Python

from __future__ import annotations
from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent.parent.parent
THEMES_DIR = BASE_DIR / 'themes'
SESSION_DIR = BASE_DIR / 'session'
CONFIG_PATH = SESSION_DIR / 'config.json'
CHAR_PATH = SESSION_DIR / 'character.md'
WORLD_PATH = SESSION_DIR / 'world.md'
BOOK_PATH = SESSION_DIR / 'book.md'
JOURNAL_PATH = SESSION_DIR / 'journal.md'
AMBIENCE_PATH = SESSION_DIR / 'ambience.md'
LOG_PATH = SESSION_DIR / 'session_log.md'
LLM_LOG_PATH = SESSION_DIR / 'llm.log'
AMBIENCE_OPTIONS_PATH = SESSION_DIR / "ambience_options.md"
CHANGES_PATH = SESSION_DIR / "changes.md"
RULES_INJECTION_PATH = SESSION_DIR / "rules_injection.md"
META_LOG_PATH = SESSION_DIR / "meta_log.md"
AUDIO_DIR = SESSION_DIR / "audio"
ACTIVE_THEME_PATH = SESSION_DIR / "current_theme"
ARCHIVE_DIR = BASE_DIR / 'archive'
def get_active_theme_id() -> str:
if ACTIVE_THEME_PATH.exists():
return ACTIVE_THEME_PATH.read_text().strip() or "default"
return "default"
def get_theme_dir(theme_id: str | None = None) -> Path:
return THEMES_DIR / (theme_id or get_active_theme_id())
def get_rules_dir(theme_id: str | None = None) -> Path:
return get_theme_dir(theme_id) / "rules"
def get_core_rules_path(theme_id: str | None = None) -> Path:
return get_rules_dir(theme_id) / "core_mechanics.md"
def get_mechanics_path(theme_id: str | None = None) -> Path:
return get_rules_dir(theme_id) / "mechanics.md"
def get_character_creation_path(theme_id: str | None = None) -> Path:
return get_rules_dir(theme_id) / "character_creation.md"
def get_end_game_path(theme_id: str | None = None) -> Path:
return get_rules_dir(theme_id) / "end_game.md"
def get_character_template_path(theme_id: str | None = None) -> Path:
return get_theme_dir(theme_id) / "character_template.md"
def get_theme_audio_dir(theme_id: str | None = None) -> Path:
return get_theme_dir(theme_id) / "audio"
def get_theme_ambience_options_path(theme_id: str | None = None) -> Path:
return get_theme_dir(theme_id) / "ambience_options.md"