Source code for mini_arcade_core.runtime.scene.scene_query_adapter

"""
Scene query adapter implementation.
"""

from __future__ import annotations

from dataclasses import dataclass
from typing import Sequence

from mini_arcade_core.engine.scenes.models import SceneEntry
from mini_arcade_core.engine.scenes.scene_manager import SceneAdapter
from mini_arcade_core.runtime.scene.scene_query_port import SceneQueryPort


[docs] @dataclass class SceneQueryAdapter(SceneQueryPort): """Adapter that exposes a read-only view of the SceneAdapter manager.""" _scenes: SceneAdapter
[docs] def visible_entries(self) -> Sequence[SceneEntry]: return list(self._scenes.visible_entries())
[docs] def input_entry(self) -> SceneEntry | None: return self._scenes.input_entry()
[docs] def stack_summary(self) -> list[str]: out: list[str] = [] for e in self._scenes.visible_entries(): out.append(f"{e.scene_id} overlay={e.is_overlay}") return out