core.systems package
Submodules
core.systems.animation_system module
core.systems.audio_system module
core.systems.event_dispatch_system module
core.systems.lighting_system module
2D Lighting system — renders an ambient + light overlay.
The system draws onto a separate light map surface using additive blending, then composites it on top of the game surface with BLEND_MULT (multiply mode). This produces a simple but effective 2D lighting effect.
Supports LightOccluder2D components for shadow casting: for each light,
shadow volumes are projected from the light centre through occluder edges,
creating proper directional shadows that extend beyond the occluder.
Add the system to the world after the RenderSystem so it composites after all sprites are drawn:
world.add_system(LightingSystem(render_system.surface))
core.systems.network_system module
- class core.systems.network_system.NetworkSystem[source]
Bases:
SystemHandles autostart for network components and multiplayer sync.
- required_components: tuple[type, ...] = (<class 'core.components.websocket.WebSocketComponent'>, <class 'core.components.http_request.HTTPRequestComponent'>, <class 'core.components.webview.WebviewComponent'>, <class 'core.components.webrtc.WebRTCComponent'>, <class 'core.components.multiplayer.MultiplayerComponent'>, <class 'core.components.network_identity.NetworkIdentityComponent'>)
core.systems.particle_system module
core.systems.physics_system module
- class core.systems.physics_system.PhysicsSystem(gravity_x: float = 0.0, gravity_y: float = 980.0, cell_size: float = 128.0)[source]
Bases:
System- overlap_box(center: Vector2, half_extents: Vector2, category_mask: int = 4294967295) list[Entity][source]
Return all entities whose colliders overlap an axis-aligned box.
- Parameters:
center – World-space centre of the query box.
half_extents – Half-width and half-height as a Vector2.
category_mask – Bitmask filter — only bodies whose category_mask overlaps this value are returned.
- Returns:
List of overlapping entities (unordered).
- overlap_circle(center: Vector2, radius: float, category_mask: int = 4294967295) list[Entity][source]
Return all entities whose colliders overlap a circle.
- Parameters:
center – World-space centre of the query circle.
radius – Radius of the query circle.
category_mask – Bitmask filter.
- Returns:
List of overlapping entities (unordered).
- raycast(origin: Vector2, direction: Vector2, max_distance: float = inf, category_mask: int = 4294967295) list[dict][source]
Cast a ray and return all intersecting collider bodies sorted by distance.
- Parameters:
origin – World-space start point of the ray.
direction – Direction vector (does not need to be normalized).
max_distance – Maximum ray length in world units.
category_mask – Bitmask — only bodies whose category_mask overlaps this value are tested.
- Returns:
entity: the hit Entity
point: Vector2 world-space hit point
normal: Vector2 surface normal at hit
distance: float distance from origin
- Return type:
A list of hit dicts sorted by ascending distance, each containing
- raycast_first(origin: Vector2, direction: Vector2, max_distance: float = inf, category_mask: int = 4294967295)[source]
Convenience: return only the closest hit, or None.
- required_components: tuple[type, ...] = (<class 'core.components.rigidbody.Rigidbody2D'>, <class 'core.components.colliders.BoxCollider2D'>, <class 'core.components.colliders.CircleCollider2D'>, <class 'core.components.colliders.PolygonCollider2D'>)
core.systems.render_system module
core.systems.script_system module
- class core.systems.script_system.ScriptSystem[source]
Bases:
System- instantiate_script(component: ScriptComponent, entity: Entity, resolved_path: str = None, module_key: str = None, file_mtime: float = None)[source]
- required_components: tuple[type, ...] = (<class 'core.components.script.ScriptComponent'>,)
- unload_script(component: ScriptComponent)[source]
core.systems.steering_system module
Steering Behaviors System — composable autonomous movement.
- class core.systems.steering_system.SteeringSystem[source]
Bases:
SystemEvaluates all steering behaviour components on each entity that has a SteeringAgentComponent, sums the weighted forces, and applies the resulting velocity to the entity’s Transform.
- required_components: tuple[type, ...] = (<class 'core.components.steering.SteeringAgentComponent'>,)
core.systems.timer_system module
core.systems.ui_system module
- class core.systems.ui_system.UISystem[source]
Bases:
System- required_components: tuple[type, ...] = (<class 'core.components.ui.ButtonComponent'>, <class 'core.components.ui.TextInputComponent'>, <class 'core.components.ui.SliderComponent'>, <class 'core.components.ui.CheckBoxComponent'>, <class 'core.components.ui.UIComponent'>, <class 'core.components.ui.HBoxContainerComponent'>, <class 'core.components.ui.VBoxContainerComponent'>, <class 'core.components.ui.GridBoxContainerComponent'>, <class 'core.components.ui.ImageRenderer'>, <class 'core.components.ui.ProgressBarComponent'>, <class 'core.components.ui.TextRenderer'>)
Module contents
- class core.systems.AnimationSystem[source]
Bases:
System- required_components: tuple[type, ...] = (<class 'core.components.animator.AnimatorComponent'>,)
- class core.systems.EventDispatchSystem[source]
Bases:
System- required_components: tuple[type, ...] = ()
- class core.systems.LightingSystem(surface: Surface, project_config: dict | None = None)[source]
Bases:
SystemRenders 2D point and spot lights via a multiply-blended light map.
- class core.systems.ParticleSystem[source]
Bases:
System- required_components: tuple[type, ...] = (<class 'core.components.particle_emitter.ParticleEmitterComponent'>,)
- class core.systems.RenderSystem(surface: Surface)[source]
Bases:
System
- class core.systems.SteeringSystem[source]
Bases:
SystemEvaluates all steering behaviour components on each entity that has a SteeringAgentComponent, sums the weighted forces, and applies the resulting velocity to the entity’s Transform.
- required_components: tuple[type, ...] = (<class 'core.components.steering.SteeringAgentComponent'>,)