adding CLI help
This commit is contained in:
parent
a566423e8a
commit
8435892c57
|
@ -17,7 +17,10 @@ app_state = {}
|
||||||
@app.callback(invoke_without_command=True)
|
@app.callback(invoke_without_command=True)
|
||||||
def main(
|
def main(
|
||||||
ctx: typer.Context,
|
ctx: typer.Context,
|
||||||
config_dir: Path = Path(__file__).parent.parent / "tilesets",
|
config_dir: Path = typer.Option(
|
||||||
|
default=Path(__file__).parent.parent / "tilesets",
|
||||||
|
help="The path containing tile sets to load."
|
||||||
|
),
|
||||||
verbose: bool = typer.Option(default=False, help="If True, increase verbosity of status messages."),
|
verbose: bool = typer.Option(default=False, help="If True, increase verbosity of status messages."),
|
||||||
):
|
):
|
||||||
app_state["tileset_manager"] = _tileset.TileSetManager(config_dir)
|
app_state["tileset_manager"] = _tileset.TileSetManager(config_dir)
|
||||||
|
@ -33,12 +36,18 @@ def main(
|
||||||
|
|
||||||
@app.command()
|
@app.command()
|
||||||
def list():
|
def list():
|
||||||
|
"""
|
||||||
|
List available tile sets.
|
||||||
|
"""
|
||||||
manager = app_state["tileset_manager"]
|
manager = app_state["tileset_manager"]
|
||||||
print("\n".join(manager.available))
|
print("\n".join(manager.available))
|
||||||
|
|
||||||
|
|
||||||
@app.command()
|
@app.command()
|
||||||
def inspect(source: Path):
|
def inspect(source: Path = typer.Argument(help="The battle map text file to laod.")):
|
||||||
|
"""
|
||||||
|
Print information about the specified battle map text file.
|
||||||
|
"""
|
||||||
manager = app_state["tileset_manager"]
|
manager = app_state["tileset_manager"]
|
||||||
bmap = battlemap.BattleMap(name=source.name, source=source, tileset=manager.console_map)
|
bmap = battlemap.BattleMap(name=source.name, source=source, tileset=manager.console_map)
|
||||||
bmap.load()
|
bmap.load()
|
||||||
|
@ -47,7 +56,14 @@ def inspect(source: Path):
|
||||||
|
|
||||||
|
|
||||||
@app.command()
|
@app.command()
|
||||||
def render(source: Path, outfile: Path, tileset: str = typer.Option(help="The tile set to use.")):
|
def render(
|
||||||
|
source: Path = typer.Argument(help="The battle map text file to load."),
|
||||||
|
outfile: Path = typer.Argument(help="The file to create."),
|
||||||
|
tileset: str = typer.Option(
|
||||||
|
help="The name of the tile set to use (run mapper list to see what's available).")):
|
||||||
|
"""
|
||||||
|
Create a PNG image of a battle map using a tile set.
|
||||||
|
"""
|
||||||
manager = app_state["tileset_manager"]
|
manager = app_state["tileset_manager"]
|
||||||
if tileset not in manager.available:
|
if tileset not in manager.available:
|
||||||
raise RuntimeError(f"Could not locate the tile set {tileset} in {manager.config_dir}.")
|
raise RuntimeError(f"Could not locate the tile set {tileset} in {manager.config_dir}.")
|
||||||
|
@ -65,7 +81,7 @@ def render(source: Path, outfile: Path, tileset: str = typer.Option(help="The ti
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
image = bmap.render()
|
image = bmap.render()
|
||||||
# image = image.resize((int(0.5 * image.size[0]), int(0.5 * image.size[1])))
|
image = image.resize((int(0.5 * image.size[0]), int(0.5 * image.size[1])))
|
||||||
image.save(outfile)
|
image.save(outfile)
|
||||||
print(f"Wrote {outfile.stat().st_size} bytes to {outfile}")
|
print(f"Wrote {outfile.stat().st_size} bytes to {outfile}")
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user