Mods
This commit is contained in:
		| @@ -51,6 +51,7 @@ class Config: | |||||||
|     input_text_color: str = "rgb(18, 18, 18)" |     input_text_color: str = "rgb(18, 18, 18)" | ||||||
|     input_border_color: str = "rgb(140, 140, 140)" |     input_border_color: str = "rgb(140, 140, 140)" | ||||||
|     input_caret_color: str = "rgb(18, 18, 18)" |     input_caret_color: str = "rgb(18, 18, 18)" | ||||||
|  |     settings_json: Path | ||||||
|  |  | ||||||
|     @staticmethod |     @staticmethod | ||||||
|     def prepare() -> None: |     def prepare() -> None: | ||||||
| @@ -61,6 +62,14 @@ class Config: | |||||||
|             Config.ants_json.parent.mkdir(parents=True, exist_ok=True) |             Config.ants_json.parent.mkdir(parents=True, exist_ok=True) | ||||||
|             Config.ants_json.write_text("[]") |             Config.ants_json.write_text("[]") | ||||||
|  |  | ||||||
|  |         Config.settings_json = ( | ||||||
|  |             Path(appdirs.user_config_dir()) / "cromulant" / "settings.json" | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |         if not Config.settings_json.exists(): | ||||||
|  |             Config.settings_json.parent.mkdir(parents=True, exist_ok=True) | ||||||
|  |             Config.settings_json.write_text("{}") | ||||||
|  |  | ||||||
|         Config.icon_path = Config.here / "img" / "icon_4.jpg" |         Config.icon_path = Config.here / "img" / "icon_4.jpg" | ||||||
|         Config.status_image_path = Config.here / "img" / "icon_5.jpg" |         Config.status_image_path = Config.here / "img" / "icon_5.jpg" | ||||||
|         Config.hatched_image_path = Config.here / "img" / "icon_7.jpg" |         Config.hatched_image_path = Config.here / "img" / "icon_7.jpg" | ||||||
|   | |||||||
| @@ -18,6 +18,7 @@ from .utils import Utils | |||||||
| from .ants import Ant | from .ants import Ant | ||||||
| from .ants import Ants | from .ants import Ants | ||||||
| from .window import Window | from .window import Window | ||||||
|  | from .settings import Settings | ||||||
|  |  | ||||||
|  |  | ||||||
| class Game: | class Game: | ||||||
| @@ -204,14 +205,14 @@ class Game: | |||||||
|  |  | ||||||
|     @staticmethod |     @staticmethod | ||||||
|     def start_loop() -> None: |     def start_loop() -> None: | ||||||
|         speed = Window.speed.currentText() |         speed = Settings.speed | ||||||
|  |  | ||||||
|         if speed == "Fast": |         if speed == "fast": | ||||||
|             delay = Config.loop_delay_fast |             delay = Config.loop_delay_fast | ||||||
|         elif speed == "Normal": |         elif speed == "slow": | ||||||
|             delay = Config.loop_delay_normal |  | ||||||
|         else: |  | ||||||
|             delay = Config.loop_delay_slow |             delay = Config.loop_delay_slow | ||||||
|  |         else: | ||||||
|  |             delay = Config.loop_delay_normal | ||||||
|  |  | ||||||
|         Game.timer = QTimer() |         Game.timer = QTimer() | ||||||
|         Game.timer.timeout.connect(Game.get_status) |         Game.timer.timeout.connect(Game.get_status) | ||||||
| @@ -219,6 +220,12 @@ class Game: | |||||||
|  |  | ||||||
|     @staticmethod |     @staticmethod | ||||||
|     def update_speed() -> None: |     def update_speed() -> None: | ||||||
|  |         speed = Window.speed.currentText().lower() | ||||||
|  |  | ||||||
|  |         if speed == Settings.speed: | ||||||
|  |             return | ||||||
|  |  | ||||||
|  |         Settings.set_speed(speed) | ||||||
|         Game.timer.stop() |         Game.timer.stop() | ||||||
|         Game.start_loop() |         Game.start_loop() | ||||||
|  |  | ||||||
|   | |||||||
| @@ -5,6 +5,7 @@ from .utils import Utils | |||||||
| from .ants import Ants | from .ants import Ants | ||||||
| from .window import Window | from .window import Window | ||||||
| from .game import Game | from .game import Game | ||||||
|  | from .settings import Settings | ||||||
|  |  | ||||||
|  |  | ||||||
| def main() -> None: | def main() -> None: | ||||||
| @@ -12,6 +13,7 @@ def main() -> None: | |||||||
|     Utils.prepare() |     Utils.prepare() | ||||||
|     Ants.prepare() |     Ants.prepare() | ||||||
|     Window.prepare() |     Window.prepare() | ||||||
|  |     Settings.prepare() | ||||||
|     Game.prepare() |     Game.prepare() | ||||||
|     Game.start_loop() |     Game.start_loop() | ||||||
|     Window.start() |     Window.start() | ||||||
|   | |||||||
							
								
								
									
										26
									
								
								cromulant/settings.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								cromulant/settings.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | |||||||
|  | from .window import Window | ||||||
|  | from .storage import Storage | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class Settings: | ||||||
|  |     speed: str | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def prepare() -> None: | ||||||
|  |         settings = Storage.get_settings() | ||||||
|  |         Settings.speed = settings.get("speed", "normal") | ||||||
|  |         speed = Settings.speed.capitalize() | ||||||
|  |         Window.speed.setCurrentText(speed) | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def save() -> None: | ||||||
|  |         settings = { | ||||||
|  |             "speed": Settings.speed, | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         Storage.save_settings(settings) | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def set_speed(speed: str) -> None: | ||||||
|  |         Settings.speed = speed | ||||||
|  |         Settings.save() | ||||||
| @@ -26,3 +26,13 @@ class Storage: | |||||||
|     def get_names() -> Any: |     def get_names() -> Any: | ||||||
|         with Config.names_json.open() as file: |         with Config.names_json.open() as file: | ||||||
|             return json.load(file) |             return json.load(file) | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def get_settings() -> Any: | ||||||
|  |         with Config.settings_json.open() as file: | ||||||
|  |             return json.load(file) | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def save_settings(settings: dict[str, Any]) -> None: | ||||||
|  |         with Config.settings_json.open("w") as file: | ||||||
|  |             json.dump(settings, file) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Auric Vente
					Auric Vente