From d299934e7c819feb039db54fae404ba328cacfbe Mon Sep 17 00:00:00 2001 From: Kristofers Solo Date: Wed, 3 Jan 2024 22:47:20 +0200 Subject: [PATCH] feat(utils): add game configs/settings --- src/utils/config.py | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/src/utils/config.py b/src/utils/config.py index 8cf2f53..b568e35 100644 --- a/src/utils/config.py +++ b/src/utils/config.py @@ -1,6 +1,41 @@ +from typing import NamedTuple + from attr import define +class Size(NamedTuple): + width: int + height: int + + +@define +class Game: + columns: int = 10 + rows: int = 20 + cell_size: int = 40 + size: Size = Size(columns * cell_size, rows * cell_size) + + +@define +class SideBar: + size: Size = Size(200, Game().size.height) + preview_height_fraction: float = 0.7 + score_height_fraction: float = 1 - preview_height_fraction + + +@define +class Window: + padding: int = 20 + size: Size = Size( + Game().size.width + SideBar().size.width + padding * 3, + Game().size.height + padding * 2, + ) + + @define class Config: - log_level = "warning" + log_level: str = "warning" + + game: Game = Game() + sidebar: SideBar = SideBar() + window: Window = Window()