from enum import Enum, auto from typing import Optional, Tuple from dungeonbattle.settings import Settings class GameMode(Enum): MAINMENU = auto() PLAY = auto() SETTINGS = auto() INVENTORY = auto() class KeyValues(Enum): UP = auto() DOWN = auto() LEFT = auto() RIGHT = auto() ENTER = auto() SPACE = auto() @staticmethod def translate_key(key: str, settings: Settings) \ -> Tuple[Optional["KeyValues"], str]: """ Translate the raw string key into an enum value that we can use. """ if key in (settings.KEY_DOWN_SECONDARY, settings.KEY_DOWN_PRIMARY): return KeyValues.DOWN, key elif key in (settings.KEY_LEFT_PRIMARY, settings.KEY_LEFT_SECONDARY): return KeyValues.LEFT, key elif key in (settings.KEY_RIGHT_PRIMARY, settings.KEY_RIGHT_SECONDARY): return KeyValues.RIGHT, key elif key in (settings.KEY_UP_PRIMARY, settings.KEY_UP_SECONDARY): return KeyValues.UP, key elif key == settings.KEY_ENTER: return KeyValues.ENTER, key elif key == ' ': return KeyValues.SPACE, key return None, key