from collections.abc import Callable
from dataclasses import dataclass, field
from enum import Enum, auto
-from typing import override
+from typing import override, cast
import pygame
from pygame import Color, Vector2
world: World,
) -> None:
for display, compute in elems:
- display.text = world.run_raw_system(compute.cb, lambda: display.text)
+ display.text = world.run_raw_system(
+ compute.cb,
+ cast(Callable[[], str], lambda display=display: display.text),
+ )
def update_text_sprites(
return kv[ty]
return map(self._components[ty].__getitem__, positions)
- itr = lambda: range(
- len(dst._entities) - len(components), len(dst._entities)
- )
+ def itr() -> range:
+ return range(
+ len(dst._entities) - len(components), len(dst._entities)
+ )
+
dst._extend(cb)
self._discard(positions)
from dataclasses import dataclass
from enum import Enum, auto
from random import random, shuffle
-from typing import override
+from typing import override, cast
from mazegenerator import MazeGenerator # type: ignore[import-untyped]
from pydantic import BaseModel
from pygame import K_ESCAPE, Vector2
from pygame.math import clamp
-import pacman
from pacman.ecs import minimal_plugins
from pacman.ecs.assets import Assets
from pacman.ecs.coord import (
ShouldRender,
Sprite2D,
StopAnimation,
- WindowEvents,
WindowPositionned,
graphics_plugins,
key_just_pressed,
WindowPositionned(Vector2(), Vector2(20, y * 100 + 20)),
CoordBundle(depth=-20),
ShouldRender(),
- ComputedText(fn),
+ ComputedText(cast(System[str], fn)),
TextDisplay(
"",
fonts.load("./asset/fonts/JetBrainsMonoNL-Regular.ttf:30"),