simvx.editor.panels._game_host¶
The node a viewport panel reaches the running game through.
A hosted tree is reached through a node, not as a second destination. Each
viewport panel holds a :class:GameHost over the rect the game is drawn in,
and the host is an ordinary :class:~simvx.core.SceneHost: it forwards the
pointer while it is over that rect or holds a press, and keys, text and pads
while it holds focus, which it takes as the mouse comes to rest over the game.
So the hierarchy decides who gets what:
the toolbar and the docks are in front of or beside the host, so a click there never reaches the game;
the editor’s F5, F6 and F7 are capture handlers on its root, heard before the host’s, whatever the game is doing;
a focused inspector field keeps its typing, because the host does not hold focus then, and taking the focus away hands the game’s keys over.
Play mode steps and draws the game; the host only forwards and hands over.
Pausing turns forwarding off, which hands everything over; hiding the
panel, or play stopping, does too.
Module Contents¶
Classes¶
A viewport panel’s host for the game play mode runs. |
API¶
- class simvx.editor.panels._game_host.GameHost(**kwargs: Any)[source]¶
Bases:
simvx.core.SceneHostA viewport panel’s host for the game play mode runs.
Initialization
- visible¶
‘Property(…)’
- sync(panel: Any, rect: tuple[float, float, float, float]) None[source]¶
Host the running game over rect, in panel’s own space, or nothing when none runs.
Called by the panel once a frame. Only the panel on screen hosts: the game has one host, and taking it moves it here from the other panel, which hands over what the other one was forwarding.
- pointer_filter¶
‘Property(…)’
- accepts_pointers¶
‘Property(…)’
- focus_mode¶
‘Property(…)’
- forwarding¶
‘Property(…)’
- property guest: simvx.core.scene_tree.SceneTree | None¶
- to_guest(point) simvx.core.math.types.Vec2¶
- to_host(point) simvx.core.math.types.Vec2¶
- on_update(dt: float) None¶
- size_x¶
‘Property(…)’
- size_y¶
‘Property(…)’
- min_size_x¶
‘Property(…)’
- min_size_y¶
‘Property(…)’
- anchor_left¶
‘Property(…)’
- anchor_top¶
‘Property(…)’
- anchor_right¶
‘Property(…)’
- anchor_bottom¶
‘Property(…)’
- margin_left¶
‘Property(…)’
- margin_top¶
‘Property(…)’
- margin_right¶
‘Property(…)’
- margin_bottom¶
‘Property(…)’
- anchor¶
‘Property(…)’
- inset¶
‘Property(…)’
- dismiss_on_outside_click¶
‘Property(…)’
- clip_contents¶
‘Property(…)’
- tooltip¶
‘Property(…)’
- cursor_shape¶
‘Property(…)’
- pointer_types: frozenset[simvx.core.input.enums.PointerType] | None¶
None
- touch_target: bool¶
False
- wants_text_input: bool¶
False
- size_flags_horizontal¶
‘Property(…)’
- size_flags_vertical¶
‘Property(…)’
- stretch_ratio¶
‘Property(…)’
- max_size¶
‘Property(…)’
- property size: simvx.core.math.types.Vec2¶
- property min_size: simvx.core.math.types.Vec2¶
- content_signature() object¶
- content_uses(chars: str) bool¶
- autosize_to_content() None¶
- property theme: simvx.core.ui.types.Theme | None¶
- property mouse_over: bool¶
- property disabled: bool¶
- get_theme() simvx.core.ui.types.Theme¶
- property viewport_size: simvx.core.math.types.Vec2¶
- property viewport_insets: tuple[float, float, float, float]¶
- queue_redraw()¶
- size_floor() tuple[float, float]¶
- get_minimum_size() simvx.core.math.types.Vec2¶
- add_child(node: simvx.core.node.T) simvx.core.node.T¶
- get_rect() tuple[float, float, float, float]¶
- get_global_rect() tuple[float, float, float, float]¶
- property focus_rect: tuple[float, float, float, float] | None¶
- is_point_inside(point) bool¶
- is_hit(event: simvx.core.input.events.PointerEvent) bool¶
- classmethod __init_subclass__(**kwargs)¶
- activate() bool¶
- set_focus()¶
- focus_next_control()¶
- focus_previous_control()¶
- set_drag_preview(control: simvx.core.ui.core.Control)¶
- property is_overlay_open: bool¶
- show_overlay(modality: str = 'light', *, dim: bool | None = None, dismiss: bool | None = None, inert: bool | None = None, owner: simvx.core.ui.core.Control | None = None, initial_focus: simvx.core.ui.core.Control | None = None) None¶
- close_overlay() None¶
- position¶
‘_SpatialVecProperty(…)’
- rotation¶
‘Property(…)’
- scale¶
‘_SpatialVecProperty(…)’
- top_level¶
‘Property(…)’
- z_index¶
‘Property(…)’
- z_as_relative¶
‘Property(…)’
- render_layer¶
‘Property(…)’
- set_render_layer(index: int, enabled: bool = True) None¶
- is_on_render_layer(index: int) bool¶
- property absolute_z_index: int¶
- property rotation_degrees: float¶
- property world_position: simvx.core.math.types.Vec2¶
- property world_rotation: float¶
- property world_scale: simvx.core.math.types.Vec2¶
- property world_transform: tuple[simvx.core.math.types.Vec2, simvx.core.math.types.Vec2, float]¶
- property forward: simvx.core.math.types.Vec2¶
- property right: simvx.core.math.types.Vec2¶
- translate(offset: tuple[float, float] | numpy.ndarray)¶
- rotate(radians: float)¶
- rotate_deg(degrees: float)¶
- look_at(target: tuple[float, float] | numpy.ndarray)¶
- to_global(point) simvx.core.math.types.Vec2¶
- to_local(point) simvx.core.math.types.Vec2¶
- transform_points(points: list[simvx.core.math.types.Vec2]) list[simvx.core.math.types.Vec2]¶
- wrap_screen(margin: float = 20)¶
- post_processed¶
‘Property(…)’
- property transform_render_dirty: bool¶
- strict_errors: ClassVar[bool]¶
True
- dev_checks: ClassVar[bool]¶
None
- dev_warnings: ClassVar[bool]¶
None
- freeze_check_interval: ClassVar[float]¶
1.0
- script_error_raised¶
‘Signal(…)’
- dynamic: bool¶
False
- update_mode¶
‘Property(…)’
- drag_threshold¶
‘Property(…)’
- focus_entered¶
‘Signal(…)’
- focus_exited¶
‘Signal(…)’
- __properties__: ClassVar[dict[str, simvx.core.descriptors.Property]]¶
None
- property name: str¶
- property visible_in_tree: bool¶
- property input_player: simvx.core.input.players.InputPlayer¶
- property input_context: simvx.core.input.contexts.InputContext | None¶
- reset_error() None¶
- remove_child(node: simvx.core.node.Node) None¶
- reparent(new_parent: simvx.core.node.Node)¶
- node_at(path, default=_NO_DEFAULT)¶
- find(target, *, direct: bool = False)¶
- find_all(target, *, direct: bool = False)¶
- expect(target, *, direct: bool = False)¶
- ancestor(target)¶
- walk(*, include_self: bool = True) collections.abc.Iterator[simvx.core.node.Node]¶
- property path: str¶
- property is_scene_root: bool¶
- add_to_group(group: str)¶
- remove_from_group(group: str)¶
- is_in_group(group: str) bool¶
- on_ready() None¶
- on_enter_tree() None¶
- on_exit_tree() None¶
- on_fixed_update(dt: float) None¶
- on_draw(canvas) None¶
- on_draw_3d(gizmos) None¶
- on_picked(event: simvx.core.input.events.PickEvent) bool | None¶
- start_coroutine(gen: simvx.core.descriptors.Coroutine) simvx.core.descriptors.CoroutineHandle¶
- stop_coroutine(gen_or_handle)¶
- property focused: bool¶
- drag_threshold_for(pointer_type: simvx.core.input.enums.PointerType | str) float¶
- grab_focus() None¶
- release_focus() None¶
- capture_pointer(pointer_id: int | None = None) None¶
- release_pointer(pointer_id: int | None = None) None¶
- property render_dirty: bool¶
- clear_children()¶
- destroy()¶
- property destroying: bool¶
- call_deferred(method: collections.abc.Callable[..., Any], *args: Any) None¶
- property app¶
- property tree: simvx.core.scene_tree.SceneTree¶
- property physics¶
- property physics_2d¶
- __getitem__(key: str)¶
- classmethod get_properties() dict[str, simvx.core.descriptors.Property]¶
- __repr__()¶