From be3735e5a172d266fb7a69d1869a9af18209cda0 Mon Sep 17 00:00:00 2001 From: Thomas Rimelen Date: Thu, 15 Oct 2026 14:05:23 +0200 Subject: [PATCH] norm fix --- src/pacman/ecs/graphics.py | 2 +- src/pacman/ecs/gui.py | 7 +++++-- src/pacman/ecs/world.py | 8 +++++--- src/pacman/game/__init__.py | 6 ++---- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/pacman/ecs/graphics.py b/src/pacman/ecs/graphics.py index 8bdad79..a8e5396 100644 --- a/src/pacman/ecs/graphics.py +++ b/src/pacman/ecs/graphics.py @@ -19,10 +19,10 @@ from pacman.ecs.world import ( RawComponentArg, RawComponentHook, Resource, + System, Systems, World, WorldShouldExit, - System, ) diff --git a/src/pacman/ecs/gui.py b/src/pacman/ecs/gui.py index b0d2f9e..6b4f0f8 100644 --- a/src/pacman/ecs/gui.py +++ b/src/pacman/ecs/gui.py @@ -1,7 +1,7 @@ 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 @@ -142,7 +142,10 @@ def update_computed_text( 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( diff --git a/src/pacman/ecs/world.py b/src/pacman/ecs/world.py index ce88ecd..11c8f11 100644 --- a/src/pacman/ecs/world.py +++ b/src/pacman/ecs/world.py @@ -151,9 +151,11 @@ class Archetype: 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) diff --git a/src/pacman/game/__init__.py b/src/pacman/game/__init__.py index 2a37803..419e5ed 100644 --- a/src/pacman/game/__init__.py +++ b/src/pacman/game/__init__.py @@ -2,14 +2,13 @@ from collections.abc import Callable 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 ( @@ -26,7 +25,6 @@ from pacman.ecs.graphics import ( ShouldRender, Sprite2D, StopAnimation, - WindowEvents, WindowPositionned, graphics_plugins, key_just_pressed, @@ -838,7 +836,7 @@ def spawn_hud(world: World, fonts: Assets[Font]) -> None: 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"), -- 2.53.0