diff --git a/dungeonbattle/settings.py b/dungeonbattle/settings.py new file mode 100644 index 0000000..7e44427 --- /dev/null +++ b/dungeonbattle/settings.py @@ -0,0 +1,39 @@ +from typing import Any + + +class Settings: + def __init__(self): + self.KEY_UP_PRIMARY = 'z', 'Touche principale pour aller vers le haut' + self.KEY_UP_SECONDARY = 'KEY_UP', 'Touche secondaire pour aller vers le haut' + self.KEY_DOWN_PRIMARY = 's', 'Touche principale pour aller vers le bas' + self.KEY_DOWN_SECONDARY = 'KEY_DOWN', 'Touche secondaire pour aller vers le bas' + self.KEY_LEFT_PRIMARY = 'q', 'Touche principale pour aller vers la gauche' + self.KEY_LEFT_SECONDARY = 'KEY_LEFT', 'Touche secondaire pour aller vers la gauche' + self.KEY_RIGHT_PRIMARY = 'd', 'Touche principale pour aller vers la droite' + self.KEY_RIGHT_SECONDARY = 'KEY_RIGHT', 'Touche secondaire pour aller vers la droite' + self.TEXTURE_PACK = 'ASCII', 'Pack de textures utilisé' + + def __getattribute__(self, item: str) -> Any: + superattribute = super().__getattribute__(item) + if isinstance(superattribute, tuple) and item.isupper(): + return super().__getattribute__(item)[0] + return superattribute + + def get_comment(self, item: str) -> str: + """ + Retrieve the comment of a setting. + """ + if hasattr(self, item) and isinstance(object.__getattribute__(self, item), tuple): + return object.__getattribute__(self, item)[1] + for key in self.settings_keys: + print(key) + if getattr(self, key) == item: + return object.__getattribute__(self, key)[1] + + @property + def settings_keys(self): + """ + Get the list of all parameters. + """ + return (key for key in self.__dict__) +