From abd1aa28c473ff54f29651a19d58e78baf19c50e Mon Sep 17 00:00:00 2001 From: evilchili Date: Mon, 11 Aug 2025 17:30:02 -0700 Subject: [PATCH] Simplify CLI --- samples/dungeon_test.txt | 19 ----------------- samples/edge_test.txt | 10 --------- samples/edge_test_small.txt | 5 ----- samples/outdoor_test.txt | 10 --------- samples/test.txt | 7 ------- .../examples}/five_room_dungeon.txt | 8 +++---- src/tilemapper/cli.py | 21 +++++++++++++++---- 7 files changed, 21 insertions(+), 59 deletions(-) delete mode 100644 samples/dungeon_test.txt delete mode 100644 samples/edge_test.txt delete mode 100644 samples/edge_test_small.txt delete mode 100644 samples/outdoor_test.txt delete mode 100644 samples/test.txt rename {samples => src/examples}/five_room_dungeon.txt (73%) diff --git a/samples/dungeon_test.txt b/samples/dungeon_test.txt deleted file mode 100644 index 4bd5b42..0000000 --- a/samples/dungeon_test.txt +++ /dev/null @@ -1,19 +0,0 @@ - - .... - .__. - .... - . - ..... ..... - .,,,........ - .,_,. ..... - .,,,. ..... - ..... ..... ... - . ... - ............. - . . ... - . ..... - _ .___. - .___. - .___. - ..... - diff --git a/samples/edge_test.txt b/samples/edge_test.txt deleted file mode 100644 index 1ac2800..0000000 --- a/samples/edge_test.txt +++ /dev/null @@ -1,10 +0,0 @@ - ,,,,,,,, - m,__,,,_, - m____,,,, - m.__,,,,, -mm...,,,, -m,___.,,,, - m,,,,,,, - - - diff --git a/samples/edge_test_small.txt b/samples/edge_test_small.txt deleted file mode 100644 index c6f7446..0000000 --- a/samples/edge_test_small.txt +++ /dev/null @@ -1,5 +0,0 @@ -,,,,,,, -,,___,, -,,___,, -,,___,, -,,,,,,, diff --git a/samples/outdoor_test.txt b/samples/outdoor_test.txt deleted file mode 100644 index 4722648..0000000 --- a/samples/outdoor_test.txt +++ /dev/null @@ -1,10 +0,0 @@ - ,,,,TTTTT - ,,,.....TTT - ,,,.....TTTTT - ,,.......TTT - ,,........TT -MM._________..M -MM.________..MM -MM._____o_____..M -M__o___________.M - diff --git a/samples/test.txt b/samples/test.txt deleted file mode 100644 index 929b4ea..0000000 --- a/samples/test.txt +++ /dev/null @@ -1,7 +0,0 @@ -,,,,,,,,,,,,,, -,,,........,,, -,,,.______.,,, -,,,._o____.,,, -,,,.______.,,, -,,,........,,, -,,,,,,,,,,,,,, diff --git a/samples/five_room_dungeon.txt b/src/examples/five_room_dungeon.txt similarity index 73% rename from samples/five_room_dungeon.txt rename to src/examples/five_room_dungeon.txt index c8dfa55..f446bcf 100644 --- a/samples/five_room_dungeon.txt +++ b/src/examples/five_room_dungeon.txt @@ -12,9 +12,9 @@ ..... ...... ....v. - .^......... - ........... - ........... - ........... + .^......... + ...,,,,,... + ...,___,... + ...,,,,,... ........... 5 diff --git a/src/tilemapper/cli.py b/src/tilemapper/cli.py index beb0d17..302d1a7 100644 --- a/src/tilemapper/cli.py +++ b/src/tilemapper/cli.py @@ -2,6 +2,7 @@ import logging import os import sys from pathlib import Path +from typing import Union import typer from rich.console import Console @@ -13,13 +14,13 @@ from tilemapper import tileset as _tileset app = typer.Typer() app_state = {} +INSTALL_DIR = Path(__file__).parent.parent + @app.callback(invoke_without_command=True) def main( ctx: typer.Context, - config_dir: Path = typer.Option( - default=Path(__file__).parent.parent / "tilesets", help="The path containing tile sets to load." - ), + config_dir: Path = typer.Option(default=INSTALL_DIR / "tilesets", help="The path containing tile sets to load."), verbose: bool = typer.Option(default=False, help="If True, increase verbosity of status messages."), ): app_state["tileset_manager"] = _tileset.TileSetManager(config_dir) @@ -31,6 +32,8 @@ def main( level=logging.DEBUG if debug else logging.INFO, handlers=[RichHandler(rich_tracebacks=True, tracebacks_suppress=[typer])], ) + if ctx.invoked_subcommand is None: + render_map() @app.command() @@ -44,7 +47,9 @@ def list(): @app.command() def render( - source: Path = typer.Argument(help="The battle map text file to load."), + source: Path = typer.Option( + help="The battle map text file to load.", default=INSTALL_DIR / "examples" / "five_room_dungeon.txt" + ), outfile: Path = typer.Option(help="The file to create. If not specified, print to STDOUT", default=None), tileset: str = typer.Option( help="The name of the tile set to use (run mapper list to see what's available).", default="colorized" @@ -54,6 +59,14 @@ def render( Create a rendered battle map using a tile set. Will generate a PNG file if the tile set supports it, otherwise text output. """ + render_map(source, outfile, tileset) + + +def render_map( + source: Path = INSTALL_DIR / "examples" / "five_room_dungeon.txt", + outfile: Union[Path, None] = None, + tileset: str = 'colorized' +): manager = app_state["tileset_manager"] if tileset not in manager.available: raise RuntimeError(f"Could not locate the tile set {tileset} in {manager.config_dir}.")