simple-ink/main.py

54 lines
1.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from __future__ import annotations
import argparse
from pathlib import Path
from src.engine import InteractiveRunner, StoryEngine
from src.parser import StoryValidationError, parse_story
def build_arg_parser() -> argparse.ArgumentParser:
parser = argparse.ArgumentParser(description="simple-ink: 命令行交互式小说框架")
parser.add_argument(
"--story",
type=Path,
default=Path("data/main_story.yaml"),
help="故事配置文件路径YAML",
)
parser.add_argument(
"--load",
type=Path,
default=None,
help="启动时立即加载存档路径",
)
return parser
def main() -> int:
args = build_arg_parser().parse_args()
try:
parsed = parse_story(args.story)
except StoryValidationError as exc:
print(f"故事配置错误: {exc}")
return 2
for warning in parsed.warnings:
print(f"[warning] {warning}")
engine = StoryEngine(parsed.story)
if args.load is not None:
try:
engine.load(args.load)
except Exception as exc:
print(f"加载启动存档失败: {exc}")
return 3
runner = InteractiveRunner(engine)
runner.run()
return 0
if __name__ == "__main__":
raise SystemExit(main())