♻️ use entrypoint to load UI
This commit is contained in:
@@ -2,14 +2,17 @@ import argparse
|
|||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
from .console import UI
|
from .entrypoints import Entrypoints
|
||||||
from .level import Level
|
from .level import Level
|
||||||
from .menu import Action
|
from .menu import Action
|
||||||
from .mob import BaseMob, load_character
|
from .mob import BaseMob, load_character
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
# FIXME replace this global declaration
|
||||||
|
UI: Any = None
|
||||||
|
|
||||||
def play_room(room: list[BaseMob], level: Level) -> int:
|
def play_room(room: list[BaseMob], level: Level) -> int:
|
||||||
if room is None:
|
if room is None:
|
||||||
@@ -55,12 +58,14 @@ def play_donjon(level: Level) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def app() -> None:
|
def app() -> None:
|
||||||
|
entrypoints = Entrypoints()
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(
|
parser = argparse.ArgumentParser(
|
||||||
prog='elironwars',
|
prog='elironwars',
|
||||||
description='elironwars CLI',
|
description='elironwars CLI',
|
||||||
)
|
)
|
||||||
parser.add_argument('--player', default='Jamin')
|
parser.add_argument('--player', default='Jamin')
|
||||||
parser.add_argument('--ui', default='cli')
|
parser.add_argument('--ui', default='console', choices=entrypoints.ui.names)
|
||||||
parser.add_argument('--log-level', default='ERROR')
|
parser.add_argument('--log-level', default='ERROR')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
@@ -72,6 +77,7 @@ def app() -> None:
|
|||||||
if not loaded_character:
|
if not loaded_character:
|
||||||
sys.exit(-1)
|
sys.exit(-1)
|
||||||
|
|
||||||
|
UI = entrypoints.load_ui(args.ui)
|
||||||
UI.select_player(loaded_character)
|
UI.select_player(loaded_character)
|
||||||
|
|
||||||
# Créer des instances de BaseMob
|
# Créer des instances de BaseMob
|
||||||
|
|||||||
Reference in New Issue
Block a user