mini_arcade_core.scenes.registry

SimScene registry for mini arcade core. Allows registering and creating scenes by string IDs.

Classes

SceneFactory

Protocol for scene factory callables.

SceneRegistry

Registry for scene factories, allowing registration and creation of scenes by string IDs.

Module Contents

class mini_arcade_core.scenes.registry.SceneFactory[source]

Bases: Protocol

Protocol for scene factory callables.

__call__(context: mini_arcade_core.runtime.context.RuntimeContext) mini_arcade_core.scenes.sim_scene.SimScene[source]
class mini_arcade_core.scenes.registry.SceneRegistry[source]

Registry for scene factories, allowing registration and creation of scenes by string IDs.

property listed_scene_ids: list[str]

Get a list of all registered scene IDs.

Returns:

A list of registered scene IDs.

Return type:

list[str]

register(scene_id: str, factory: SceneFactory)[source]

Register a scene factory under a given scene ID.

Parameters:
  • scene_id (str) – The string ID for the scene.

  • factory (SceneFactory) – A callable that creates a SimScene instance.

register_cls(scene_id: str, scene_cls: type[mini_arcade_core.scenes.sim_scene.SimScene])[source]

Register a SimScene class under a given scene ID.

Parameters:
  • scene_id (str) – The string ID for the scene.

  • scene_cls (type["SimScene"]) – The SimScene class to register.

create(scene_id: str, context: mini_arcade_core.runtime.context.RuntimeContext) mini_arcade_core.scenes.sim_scene.SimScene | None[source]

Create a scene instance using the registered factory for the given scene ID.

Parameters:
  • scene_id (str) – The string ID of the scene to create.

  • game (Game) – The Game instance to pass to the scene factory.

Returns:

A new SimScene instance.

Return type:

SimScene

Raises:

KeyError – If no factory is registered for the given scene ID.

load_catalog(catalog: Dict[str, type[mini_arcade_core.scenes.sim_scene.SimScene]])[source]

Load a catalog of SimScene classes into the registry.

Parameters:

catalog (Dict[str, type["SimScene"]]) – A dictionary mapping scene IDs to SimScene classes.

discover(*packages: str) SceneRegistry[source]

Import all modules in a package so @scene decorators run.

Parameters:

packages (str) – The package names to scan for scene modules.

Returns:

The SceneRegistry instance (for chaining).

Return type:

SceneRegistry