squirrel-battle/dungeonbattle/enums.py

45 lines
1.3 KiB
Python
Raw Normal View History

2020-11-11 21:22:33 +00:00
from enum import Enum, auto
from typing import Optional, Tuple
2020-11-11 21:22:33 +00:00
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]:
2020-11-11 21:22:33 +00:00
"""
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
2020-11-11 21:22:33 +00:00
elif key in (settings.KEY_LEFT_PRIMARY,
settings.KEY_LEFT_SECONDARY):
return KeyValues.LEFT, key
2020-11-11 21:22:33 +00:00
elif key in (settings.KEY_RIGHT_PRIMARY,
settings.KEY_RIGHT_SECONDARY):
return KeyValues.RIGHT, key
2020-11-11 21:22:33 +00:00
elif key in (settings.KEY_UP_PRIMARY,
settings.KEY_UP_SECONDARY):
return KeyValues.UP, key
2020-11-11 21:22:33 +00:00
elif key == settings.KEY_ENTER:
return KeyValues.ENTER, key
2020-11-11 21:22:33 +00:00
elif key == ' ':
return KeyValues.SPACE, key
return None, key