"""
Configure the sys.path list for importing simulator modules.

Also contains constants for where several important files are located.
"""
import os
import sys
from pathlib import Path

SIM_ROOT = Path(__file__).absolute().parent
MODULES_ROOT = SIM_ROOT / 'modules'

ARENA_ROOT = Path(os.environ.get('ARENA_ROOT', SIM_ROOT.parent))
ZONE_ROOT = ARENA_ROOT
GAME_MODE_FILE = ARENA_ROOT / 'mode.txt'

NUM_ZONES = 2
DEFAULT_MATCH_DURATION = 150  # seconds


if not ARENA_ROOT.is_absolute():
    # Webots sets the current directory of each controller to the directory of
    # the controller file. As such, relative paths would be ambiguous.
    # Hint: `$PWD` or `%CD%` may be useful to construct an absolute path from
    # your relative path.
    raise ValueError(f"'ARENA_ROOT' must be an absolute path, got {ARENA_ROOT!r}")


def setup_environment() -> None:
    """
    Set up the environment for the simulator.

    This function configures the sys.path list to allow importing of the included
    simulator modules.
    """
    sys.path.insert(0, str(MODULES_ROOT))
    this_dir = str(Path(__file__).parent)
    if this_dir in sys.path:
        sys.path.remove(this_dir)


setup_environment()
