diff --git a/assets/figures/I.png b/assets/figures/I.png new file mode 100644 index 0000000..4dcc61a Binary files /dev/null and b/assets/figures/I.png differ diff --git a/assets/figures/J.png b/assets/figures/J.png new file mode 100644 index 0000000..81d019d Binary files /dev/null and b/assets/figures/J.png differ diff --git a/assets/figures/L.png b/assets/figures/L.png new file mode 100644 index 0000000..dc47d26 Binary files /dev/null and b/assets/figures/L.png differ diff --git a/assets/figures/O.png b/assets/figures/O.png new file mode 100644 index 0000000..d8dde52 Binary files /dev/null and b/assets/figures/O.png differ diff --git a/assets/figures/S.png b/assets/figures/S.png new file mode 100644 index 0000000..80126a3 Binary files /dev/null and b/assets/figures/S.png differ diff --git a/assets/figures/T.png b/assets/figures/T.png new file mode 100644 index 0000000..9c9f74f Binary files /dev/null and b/assets/figures/T.png differ diff --git a/assets/figures/Z.png b/assets/figures/Z.png new file mode 100644 index 0000000..773bbde Binary files /dev/null and b/assets/figures/Z.png differ diff --git a/src/utils/figure.py b/src/utils/figure.py index fb2fb48..e4fefbe 100644 --- a/src/utils/figure.py +++ b/src/utils/figure.py @@ -1,16 +1,24 @@ import random from enum import Enum +from pathlib import Path from typing import NamedTuple +import pygame from attr import define from pygame import Vector2 as Vec2 from .colors import TokyoNightNight +from .path import BASE_PATH class FigureConfig(NamedTuple): shape: list[Vec2] color: str + image: pygame.Surface + + +def _load_image(filename: str) -> pygame.Surface: + return pygame.image.load(BASE_PATH / "assets" / "figures" / filename) class Figure(Enum): @@ -22,6 +30,7 @@ class Figure(Enum): Vec2(0, 1), ], TokyoNightNight().cyan, + _load_image("I.png"), ) O = FigureConfig( [ @@ -31,6 +40,7 @@ class Figure(Enum): Vec2(1, -1), ], TokyoNightNight().yellow, + _load_image("O.png"), ) T = FigureConfig( [ @@ -40,6 +50,7 @@ class Figure(Enum): Vec2(0, -1), ], TokyoNightNight().purple, + _load_image("T.png"), ) S = FigureConfig( @@ -50,6 +61,7 @@ class Figure(Enum): Vec2(1, -1), ], TokyoNightNight().green, + _load_image("S.png"), ) Z = FigureConfig( [ @@ -59,6 +71,7 @@ class Figure(Enum): Vec2(-1, -1), ], TokyoNightNight().red, + _load_image("Z.png"), ) J = FigureConfig( [ @@ -68,6 +81,7 @@ class Figure(Enum): Vec2(-1, 1), ], TokyoNightNight().blue, + _load_image("J.png"), ) L = FigureConfig( [ @@ -77,6 +91,7 @@ class Figure(Enum): Vec2(1, 1), ], TokyoNightNight().orange, + _load_image("L.png"), ) @staticmethod