kraken-engine 1.0.0__cp314-cp314-win_amd64.whl → 1.2.0__cp314-cp314-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,6 +2,7 @@ from __future__ import annotations
2
2
  import collections.abc
3
3
  import enum
4
4
  import typing
5
+ from . import collision
5
6
  from . import color
6
7
  from . import draw
7
8
  from . import ease
@@ -17,7 +18,18 @@ from . import renderer
17
18
  from . import time
18
19
  from . import transform
19
20
  from . import window
20
- __all__: list[str] = ['AUDIO_DEVICE_ADDED', 'AUDIO_DEVICE_FORMAT_CHANGED', 'AUDIO_DEVICE_REMOVED', 'Anchor', 'Animation', 'AnimationController', 'Audio', 'AudioStream', 'BOTTOM_LEFT', 'BOTTOM_MID', 'BOTTOM_RIGHT', 'CAMERA_ADDED', 'CAMERA_APPROVED', 'CAMERA_DENIED', 'CAMERA_REMOVED', 'CENTER', 'C_BACK', 'C_DPAD_DOWN', 'C_DPAD_LEFT', 'C_DPAD_RIGHT', 'C_DPAD_UP', 'C_EAST', 'C_GUIDE', 'C_LSHOULDER', 'C_LSTICK', 'C_LTRIGGER', 'C_LX', 'C_LY', 'C_NORTH', 'C_PS3', 'C_PS4', 'C_PS5', 'C_RSHOULDER', 'C_RSTICK', 'C_RTRIGGER', 'C_RX', 'C_RY', 'C_SOUTH', 'C_STANDARD', 'C_START', 'C_SWITCH_JOYCON_LEFT', 'C_SWITCH_JOYCON_PAIR', 'C_SWITCH_JOYCON_RIGHT', 'C_SWITCH_PRO', 'C_WEST', 'C_XBOX_360', 'C_XBOX_ONE', 'Camera', 'Circle', 'Color', 'DROP_BEGIN', 'DROP_COMPLETE', 'DROP_FILE', 'DROP_POSITION', 'DROP_TEXT', 'EasingAnimation', 'Event', 'EventType', 'Font', 'Frame', 'GAMEPAD_ADDED', 'GAMEPAD_AXIS_MOTION', 'GAMEPAD_BUTTON_DOWN', 'GAMEPAD_BUTTON_UP', 'GAMEPAD_REMOVED', 'GAMEPAD_TOUCHPAD_DOWN', 'GAMEPAD_TOUCHPAD_MOTION', 'GAMEPAD_TOUCHPAD_UP', 'GamepadAxis', 'GamepadButton', 'GamepadType', 'InputAction', 'KEYBOARD_ADDED', 'KEYBOARD_REMOVED', 'KEY_DOWN', 'KEY_UP', 'K_0', 'K_1', 'K_2', 'K_3', 'K_4', 'K_5', 'K_6', 'K_7', 'K_8', 'K_9', 'K_AGAIN', 'K_AMPERSAND', 'K_ASTERISK', 'K_AT', 'K_BACKSLASH', 'K_BACKSPACE', 'K_CAPS', 'K_CARET', 'K_COLON', 'K_COMMA', 'K_COPY', 'K_CUT', 'K_DBLQUOTE', 'K_DEL', 'K_DOLLAR', 'K_DOWN', 'K_END', 'K_EQ', 'K_ESC', 'K_EXCLAIM', 'K_F1', 'K_F10', 'K_F11', 'K_F12', 'K_F2', 'K_F3', 'K_F4', 'K_F5', 'K_F6', 'K_F7', 'K_F8', 'K_F9', 'K_FIND', 'K_GRAVE', 'K_GT', 'K_HASH', 'K_HOME', 'K_INS', 'K_KP_0', 'K_KP_1', 'K_KP_2', 'K_KP_3', 'K_KP_4', 'K_KP_5', 'K_KP_6', 'K_KP_7', 'K_KP_8', 'K_KP_9', 'K_KP_DIV', 'K_KP_ENTER', 'K_KP_MINUS', 'K_KP_MULT', 'K_KP_PERIOD', 'K_KP_PLUS', 'K_LALT', 'K_LBRACE', 'K_LBRACKET', 'K_LCTRL', 'K_LEFT', 'K_LGUI', 'K_LPAREN', 'K_LSHIFT', 'K_LT', 'K_MINUS', 'K_MUTE', 'K_NUMLOCK', 'K_PASTE', 'K_PAUSE', 'K_PERCENT', 'K_PERIOD', 'K_PGDOWN', 'K_PGUP', 'K_PIPE', 'K_PLUS', 'K_PRTSCR', 'K_QUESTION', 'K_RALT', 'K_RBRACE', 'K_RBRACKET', 'K_RCTRL', 'K_RETURN', 'K_RGUI', 'K_RIGHT', 'K_RPAREN', 'K_RSHIFT', 'K_SCRLK', 'K_SEMICOLON', 'K_SGLQUOTE', 'K_SLASH', 'K_SPACE', 'K_TAB', 'K_TILDE', 'K_UNDERSCORE', 'K_UNDO', 'K_UP', 'K_VOLDOWN', 'K_VOLUP', 'K_a', 'K_b', 'K_c', 'K_d', 'K_e', 'K_f', 'K_g', 'K_h', 'K_i', 'K_j', 'K_k', 'K_l', 'K_m', 'K_n', 'K_o', 'K_p', 'K_q', 'K_r', 'K_s', 'K_t', 'K_u', 'K_v', 'K_w', 'K_x', 'K_y', 'K_z', 'Keycode', 'Layer', 'Line', 'MID_LEFT', 'MID_RIGHT', 'MOUSE_ADDED', 'MOUSE_BUTTON_DOWN', 'MOUSE_BUTTON_UP', 'MOUSE_MOTION', 'MOUSE_REMOVED', 'MOUSE_WHEEL', 'M_LEFT', 'M_MIDDLE', 'M_RIGHT', 'M_SIDE1', 'M_SIDE2', 'Mask', 'MouseButton', 'PEN_AXIS', 'PEN_BUTTON_DOWN', 'PEN_BUTTON_UP', 'PEN_DOWN', 'PEN_MOTION', 'PEN_PROXIMITY_IN', 'PEN_PROXIMITY_OUT', 'PEN_UP', 'P_DISTANCE', 'P_PRESSURE', 'P_ROTATION', 'P_SLIDER', 'P_TANGENTIAL_PRESSURE', 'P_TILT_X', 'P_TILT_Y', 'PenAxis', 'PixelArray', 'PolarCoordinate', 'Polygon', 'QUIT', 'Rect', 'S_0', 'S_1', 'S_2', 'S_3', 'S_4', 'S_5', 'S_6', 'S_7', 'S_8', 'S_9', 'S_AGAIN', 'S_APOSTROPHE', 'S_BACKSLASH', 'S_BACKSPACE', 'S_CAPS', 'S_COMMA', 'S_COPY', 'S_CUT', 'S_DEL', 'S_DOWN', 'S_END', 'S_EQ', 'S_ESC', 'S_F1', 'S_F10', 'S_F11', 'S_F12', 'S_F2', 'S_F3', 'S_F4', 'S_F5', 'S_F6', 'S_F7', 'S_F8', 'S_F9', 'S_FIND', 'S_GRAVE', 'S_HOME', 'S_INS', 'S_KP_0', 'S_KP_1', 'S_KP_2', 'S_KP_3', 'S_KP_4', 'S_KP_5', 'S_KP_6', 'S_KP_7', 'S_KP_8', 'S_KP_9', 'S_KP_DIV', 'S_KP_ENTER', 'S_KP_MINUS', 'S_KP_MULT', 'S_KP_PERIOD', 'S_KP_PLUS', 'S_LALT', 'S_LBRACKET', 'S_LCTRL', 'S_LEFT', 'S_LGUI', 'S_LSHIFT', 'S_MINUS', 'S_MUTE', 'S_NUMLOCK', 'S_PASTE', 'S_PAUSE', 'S_PERIOD', 'S_PGDOWN', 'S_PGUP', 'S_PRTSCR', 'S_RALT', 'S_RBRACKET', 'S_RCTRL', 'S_RETURN', 'S_RGUI', 'S_RIGHT', 'S_RSHIFT', 'S_SCRLK', 'S_SEMICOLON', 'S_SLASH', 'S_SPACE', 'S_TAB', 'S_UNDO', 'S_UP', 'S_VOLDOWN', 'S_VOLUP', 'S_a', 'S_b', 'S_c', 'S_d', 'S_e', 'S_f', 'S_g', 'S_h', 'S_i', 'S_j', 'S_k', 'S_l', 'S_m', 'S_n', 'S_o', 'S_p', 'S_q', 'S_r', 'S_s', 'S_t', 'S_u', 'S_v', 'S_w', 'S_x', 'S_y', 'S_z', 'Scancode', 'TEXT_EDITING', 'TEXT_INPUT', 'TOP_LEFT', 'TOP_MID', 'TOP_RIGHT', 'Texture', 'Tile', 'TileMap', 'Timer', 'Vec2', 'WINDOW_ENTER_FULLSCREEN', 'WINDOW_EXPOSED', 'WINDOW_FOCUS_GAINED', 'WINDOW_FOCUS_LOST', 'WINDOW_HIDDEN', 'WINDOW_LEAVE_FULLSCREEN', 'WINDOW_MAXIMIZED', 'WINDOW_MINIMIZED', 'WINDOW_MOUSE_ENTER', 'WINDOW_MOUSE_LEAVE', 'WINDOW_MOVED', 'WINDOW_OCCLUDED', 'WINDOW_RESIZED', 'WINDOW_RESTORED', 'WINDOW_SHOWN', 'color', 'draw', 'ease', 'event', 'gamepad', 'init', 'input', 'key', 'line', 'math', 'mouse', 'quit', 'rect', 'renderer', 'time', 'transform', 'window']
21
+ __all__: list[str] = ['AUDIO_DEVICE_ADDED', 'AUDIO_DEVICE_FORMAT_CHANGED', 'AUDIO_DEVICE_REMOVED', 'Align', 'Anchor', 'Animation', 'AnimationController', 'Audio', 'AudioStream', 'BOTTOM_LEFT', 'BOTTOM_MID', 'BOTTOM_RIGHT', 'CAMERA_DEVICE_ADDED', 'CAMERA_DEVICE_APPROVED', 'CAMERA_DEVICE_DENIED', 'CAMERA_DEVICE_REMOVED', 'CENTER', 'CLIPBOARD_UPDATE', 'C_BACK', 'C_DPAD_DOWN', 'C_DPAD_LEFT', 'C_DPAD_RIGHT', 'C_DPAD_UP', 'C_EAST', 'C_GUIDE', 'C_LSHOULDER', 'C_LSTICK', 'C_LTRIGGER', 'C_LX', 'C_LY', 'C_NORTH', 'C_PS3', 'C_PS4', 'C_PS5', 'C_RSHOULDER', 'C_RSTICK', 'C_RTRIGGER', 'C_RX', 'C_RY', 'C_SOUTH', 'C_STANDARD', 'C_START', 'C_SWITCH_JOYCON_LEFT', 'C_SWITCH_JOYCON_PAIR', 'C_SWITCH_JOYCON_RIGHT', 'C_SWITCH_PRO', 'C_WEST', 'C_XBOX_360', 'C_XBOX_ONE', 'Camera', 'Circle', 'Color', 'DID_ENTER_BACKGROUND', 'DID_ENTER_FOREGROUND', 'DISPLAY_ADDED', 'DISPLAY_CONTENT_SCALE_CHANGED', 'DISPLAY_CURRENT_MODE_CHANGED', 'DISPLAY_DESKTOP_MODE_CHANGED', 'DISPLAY_MOVED', 'DISPLAY_ORIENTATION', 'DISPLAY_REMOVED', 'DROP_BEGIN', 'DROP_COMPLETE', 'DROP_FILE', 'DROP_POSITION', 'DROP_TEXT', 'EasingAnimation', 'Event', 'EventType', 'FINGER_CANCELED', 'FINGER_DOWN', 'FINGER_MOTION', 'FINGER_UP', 'Font', 'FontHint', 'Frame', 'GAMEPAD_ADDED', 'GAMEPAD_AXIS_MOTION', 'GAMEPAD_BUTTON_DOWN', 'GAMEPAD_BUTTON_UP', 'GAMEPAD_REMAPPED', 'GAMEPAD_REMOVED', 'GAMEPAD_SENSOR_UPDATE', 'GAMEPAD_STEAM_HANDLE_UPDATED', 'GAMEPAD_TOUCHPAD_DOWN', 'GAMEPAD_TOUCHPAD_MOTION', 'GAMEPAD_TOUCHPAD_UP', 'GAMEPAD_UPDATE_COMPLETE', 'GamepadAxis', 'GamepadButton', 'GamepadType', 'InputAction', 'KEYBOARD_ADDED', 'KEYBOARD_REMOVED', 'KEYMAP_CHANGED', 'KEY_DOWN', 'KEY_UP', 'K_0', 'K_1', 'K_2', 'K_3', 'K_4', 'K_5', 'K_6', 'K_7', 'K_8', 'K_9', 'K_AGAIN', 'K_AMPERSAND', 'K_APPLICATION', 'K_ASTERISK', 'K_AT', 'K_BACKSLASH', 'K_BACKSPACE', 'K_CALL', 'K_CAPS', 'K_CARET', 'K_CHANNEL_DEC', 'K_CHANNEL_INC', 'K_COLON', 'K_COMMA', 'K_COPY', 'K_CUT', 'K_DBLQUOTE', 'K_DEL', 'K_DOLLAR', 'K_DOWN', 'K_END', 'K_ENDCALL', 'K_EQ', 'K_ESC', 'K_EXCLAIM', 'K_EXECUTE', 'K_F1', 'K_F10', 'K_F11', 'K_F12', 'K_F13', 'K_F14', 'K_F15', 'K_F2', 'K_F3', 'K_F4', 'K_F5', 'K_F6', 'K_F7', 'K_F8', 'K_F9', 'K_FIND', 'K_GRAVE', 'K_GT', 'K_HASH', 'K_HELP', 'K_HOME', 'K_INS', 'K_KP_0', 'K_KP_1', 'K_KP_2', 'K_KP_3', 'K_KP_4', 'K_KP_5', 'K_KP_6', 'K_KP_7', 'K_KP_8', 'K_KP_9', 'K_KP_DIV', 'K_KP_ENTER', 'K_KP_MINUS', 'K_KP_MULT', 'K_KP_PERIOD', 'K_KP_PLUS', 'K_LALT', 'K_LBRACE', 'K_LBRACKET', 'K_LCTRL', 'K_LEFT', 'K_LGUI', 'K_LPAREN', 'K_LSHIFT', 'K_LT', 'K_MEDIA_EJECT', 'K_MEDIA_FF', 'K_MEDIA_NEXT', 'K_MEDIA_PAUSE', 'K_MEDIA_PLAY', 'K_MEDIA_PLAY_PAUSE', 'K_MEDIA_PREV', 'K_MEDIA_REC', 'K_MEDIA_REWIND', 'K_MEDIA_SELECT', 'K_MEDIA_STOP', 'K_MENU', 'K_MINUS', 'K_MODE', 'K_MUTE', 'K_NUMLOCK', 'K_PASTE', 'K_PAUSE', 'K_PERCENT', 'K_PERIOD', 'K_PGDOWN', 'K_PGUP', 'K_PIPE', 'K_PLUS', 'K_POWER', 'K_PRTSCR', 'K_QUESTION', 'K_RALT', 'K_RBRACE', 'K_RBRACKET', 'K_RCTRL', 'K_RETURN', 'K_RGUI', 'K_RIGHT', 'K_RPAREN', 'K_RSHIFT', 'K_SCRLK', 'K_SELECT', 'K_SEMICOLON', 'K_SGLQUOTE', 'K_SLASH', 'K_SLEEP', 'K_SOFTLEFT', 'K_SOFTRIGHT', 'K_SPACE', 'K_STOP', 'K_TAB', 'K_TILDE', 'K_UNDERSCORE', 'K_UNDO', 'K_UNKNOWN', 'K_UP', 'K_VOLDOWN', 'K_VOLUP', 'K_WAKE', 'K_a', 'K_b', 'K_c', 'K_d', 'K_e', 'K_f', 'K_g', 'K_h', 'K_i', 'K_j', 'K_k', 'K_l', 'K_m', 'K_n', 'K_o', 'K_p', 'K_q', 'K_r', 'K_s', 'K_t', 'K_u', 'K_v', 'K_w', 'K_x', 'K_y', 'K_z', 'Keycode', 'LOCALE_CHANGED', 'LOW_MEMORY', 'Line', 'MID_LEFT', 'MID_RIGHT', 'MOUSE_ADDED', 'MOUSE_BUTTON_DOWN', 'MOUSE_BUTTON_UP', 'MOUSE_MOTION', 'MOUSE_REMOVED', 'MOUSE_WHEEL', 'M_LEFT', 'M_MIDDLE', 'M_RIGHT', 'M_SIDE1', 'M_SIDE2', 'Mask', 'MouseButton', 'PEN_AXIS', 'PEN_BUTTON_DOWN', 'PEN_BUTTON_UP', 'PEN_DOWN', 'PEN_MOTION', 'PEN_PROXIMITY_IN', 'PEN_PROXIMITY_OUT', 'PEN_UP', 'P_DISTANCE', 'P_PRESSURE', 'P_ROTATION', 'P_SLIDER', 'P_TANGENTIAL_PRESSURE', 'P_TILT_X', 'P_TILT_Y', 'PenAxis', 'PixelArray', 'PolarCoordinate', 'Polygon', 'QUIT', 'RENDER_DEVICE_LOST', 'RENDER_DEVICE_RESET', 'RENDER_TARGETS_RESET', 'Rect', 'SENSOR_UPDATE', 'SYSTEM_THEME_CHANGED', 'S_0', 'S_1', 'S_2', 'S_3', 'S_4', 'S_5', 'S_6', 'S_7', 'S_8', 'S_9', 'S_AGAIN', 'S_APOSTROPHE', 'S_APPLICATION', 'S_BACKSLASH', 'S_BACKSPACE', 'S_CALL', 'S_CAPS', 'S_CHANNEL_DEC', 'S_CHANNEL_INC', 'S_COMMA', 'S_COPY', 'S_CUT', 'S_DEL', 'S_DOWN', 'S_END', 'S_ENDCALL', 'S_EQ', 'S_ESC', 'S_EXECUTE', 'S_F1', 'S_F10', 'S_F11', 'S_F12', 'S_F13', 'S_F14', 'S_F15', 'S_F2', 'S_F3', 'S_F4', 'S_F5', 'S_F6', 'S_F7', 'S_F8', 'S_F9', 'S_FIND', 'S_GRAVE', 'S_HELP', 'S_HOME', 'S_INS', 'S_KP_0', 'S_KP_1', 'S_KP_2', 'S_KP_3', 'S_KP_4', 'S_KP_5', 'S_KP_6', 'S_KP_7', 'S_KP_8', 'S_KP_9', 'S_KP_DIV', 'S_KP_ENTER', 'S_KP_MINUS', 'S_KP_MULT', 'S_KP_PERIOD', 'S_KP_PLUS', 'S_LALT', 'S_LBRACKET', 'S_LCTRL', 'S_LEFT', 'S_LGUI', 'S_LSHIFT', 'S_MEDIA_EJECT', 'S_MEDIA_FAST_FORWARD', 'S_MEDIA_NEXT', 'S_MEDIA_PAUSE', 'S_MEDIA_PLAY', 'S_MEDIA_PLAY_PAUSE', 'S_MEDIA_PREV', 'S_MEDIA_REC', 'S_MEDIA_REWIND', 'S_MEDIA_SELECT', 'S_MEDIA_STOP', 'S_MENU', 'S_MINUS', 'S_MODE', 'S_MUTE', 'S_NUMLOCK', 'S_PASTE', 'S_PAUSE', 'S_PERIOD', 'S_PGDOWN', 'S_PGUP', 'S_POWER', 'S_PRTSCR', 'S_RALT', 'S_RBRACKET', 'S_RCTRL', 'S_RETURN', 'S_RGUI', 'S_RIGHT', 'S_RSHIFT', 'S_SCRLK', 'S_SELECT', 'S_SEMICOLON', 'S_SLASH', 'S_SLEEP', 'S_SOFTLEFT', 'S_SOFTRIGHT', 'S_SPACE', 'S_STOP', 'S_TAB', 'S_UNDO', 'S_UP', 'S_VOLDOWN', 'S_VOLUP', 'S_WAKE', 'S_a', 'S_b', 'S_c', 'S_d', 'S_e', 'S_f', 'S_g', 'S_h', 'S_i', 'S_j', 'S_k', 'S_l', 'S_m', 'S_n', 'S_o', 'S_p', 'S_q', 'S_r', 'S_s', 'S_t', 'S_u', 'S_v', 'S_w', 'S_x', 'S_y', 'S_z', 'Scancode', 'ShaderState', 'SheetStrip', 'TERMINATING', 'TEXT_EDITING', 'TEXT_EDITING_CANDIDATES', 'TEXT_INPUT', 'TOP_LEFT', 'TOP_MID', 'TOP_RIGHT', 'Text', 'Texture', 'Tile', 'TileLayer', 'TileMap', 'Timer', 'Vec2', 'WILL_ENTER_BACKGROUND', 'WILL_ENTER_FOREGROUND', 'WINDOW_CLOSE_REQUESTED', 'WINDOW_DESTROYED', 'WINDOW_DISPLAY_CHANGED', 'WINDOW_DISPLAY_SCALE_CHANGED', 'WINDOW_ENTER_FULLSCREEN', 'WINDOW_EXPOSED', 'WINDOW_FOCUS_GAINED', 'WINDOW_FOCUS_LOST', 'WINDOW_HDR_STATE_CHANGED', 'WINDOW_HIDDEN', 'WINDOW_HIT_TEST', 'WINDOW_ICCPROF_CHANGED', 'WINDOW_LEAVE_FULLSCREEN', 'WINDOW_MAXIMIZED', 'WINDOW_MINIMIZED', 'WINDOW_MOUSE_ENTER', 'WINDOW_MOUSE_LEAVE', 'WINDOW_MOVED', 'WINDOW_OCCLUDED', 'WINDOW_RESIZED', 'WINDOW_RESTORED', 'WINDOW_SAFE_AREA_CHANGED', 'WINDOW_SHOWN', 'collision', 'color', 'draw', 'ease', 'event', 'gamepad', 'init', 'input', 'key', 'line', 'math', 'mouse', 'quit', 'rect', 'renderer', 'time', 'transform', 'window']
22
+ class Align(enum.IntEnum):
23
+ CENTER: typing.ClassVar[Align] # value = <Align.CENTER: 1>
24
+ LEFT: typing.ClassVar[Align] # value = <Align.LEFT: 0>
25
+ RIGHT: typing.ClassVar[Align] # value = <Align.RIGHT: 2>
26
+ @classmethod
27
+ def __new__(cls, value):
28
+ ...
29
+ def __format__(self, format_spec):
30
+ """
31
+ Convert to a string according to format_spec.
32
+ """
21
33
  class Anchor(enum.IntEnum):
22
34
  BOTTOM_LEFT: typing.ClassVar[Anchor] # value = <Anchor.BOTTOM_LEFT: 6>
23
35
  BOTTOM_MID: typing.ClassVar[Anchor] # value = <Anchor.BOTTOM_MID: 7>
@@ -75,37 +87,28 @@ class AnimationController:
75
87
  Returns:
76
88
  bool: True if the animation completed a loop during the last update.
77
89
  """
78
- def load_folder(self, name: str, dir_path: str, fps: typing.SupportsInt) -> None:
79
- """
80
- Load animation frames from a directory of image files.
81
-
82
- Loads all valid image files from the specified directory as animation frames.
83
- Supported formats include PNG, JPG, JPEG, BMP, TGA, and GIF.
84
-
85
- Args:
86
- name (str): Unique identifier for the animation.
87
- dir_path (str): Path to the directory containing image files.
88
- fps (int): Frames per second for playback timing.
89
-
90
- Raises:
91
- RuntimeError: If no valid image files are found in the directory.
92
- """
93
- def load_sprite_sheet(self, name: str, file_path: str, frame_size: Vec2, fps: typing.SupportsInt) -> None:
90
+ def load_sprite_sheet(self, file_path: str, frame_size: Vec2, strips: collections.abc.Sequence[SheetStrip]) -> None:
94
91
  """
95
- Load animation frames from a sprite sheet texture.
92
+ Load one or more animations from a sprite sheet texture.
96
93
 
97
- Divides the sprite sheet into equal-sized frames based on the specified frame size.
98
- The frames are read left-to-right, top-to-bottom.
94
+ Divides the sprite sheet into horizontal strips, where each strip represents a different
95
+ animation. Each strip is divided into equal-sized frames based on the specified frame size.
96
+ Frames are read left-to-right within each strip, and strips are read top-to-bottom.
99
97
 
100
98
  Args:
101
- name (str): Unique identifier for the animation.
102
99
  file_path (str): Path to the sprite sheet image file.
103
100
  frame_size (Vec2): Size of each frame as (width, height).
104
- fps (int): Frames per second for playback timing.
101
+ strips (list[SheetStrip]): List of strip definitions, each containing:
102
+ - name (str): Unique identifier for the animation
103
+ - frame_count (int): Number of frames in this strip/animation
104
+ - fps (int): Frames per second for playback timing
105
105
 
106
106
  Raises:
107
- RuntimeError: If sprite sheet dimensions are not divisible by frame dimensions,
108
- or no frames are found.
107
+ ValueError: If frame size is not positive, no strips provided, frame count is not
108
+ positive, or frame count exceeds sprite sheet width.
109
+ RuntimeError: If controller already has animations loaded, sprite sheet dimensions
110
+ are not divisible by frame dimensions, duplicate animation names exist,
111
+ or strip index exceeds sprite sheet height.
109
112
  """
110
113
  def pause(self) -> None:
111
114
  """
@@ -113,16 +116,30 @@ class AnimationController:
113
116
 
114
117
  Stops animation frame advancement while preserving the current frame position.
115
118
  """
116
- def remove(self, name: str) -> None:
119
+ def play(self, name: str) -> None:
117
120
  """
118
- Remove an animation from the controller.
121
+ Play an animation from the beginning.
122
+
123
+ Switches to the specified animation, rewinds it to frame 0, and starts playback.
119
124
 
120
125
  Args:
121
- name (str): The name of the animation to remove.
126
+ name (str): The name of the animation to play.
122
127
 
123
- Note:
124
- If the removed animation is currently active, the controller will be left
125
- without a current animation.
128
+ Raises:
129
+ ValueError: If the specified animation name is not found.
130
+ """
131
+ def play_from(self, frame_index: typing.SupportsInt) -> None:
132
+ """
133
+ Start playing the current animation from a specific frame.
134
+
135
+ Sets the animation to the specified frame index and resumes playback. Useful for
136
+ starting animations mid-sequence or implementing custom animation logic.
137
+
138
+ Args:
139
+ frame_index (int): The frame index to start from (0-based).
140
+
141
+ Raises:
142
+ IndexError: If the frame index is out of range for the current animation.
126
143
  """
127
144
  def resume(self) -> None:
128
145
  """
@@ -137,15 +154,15 @@ class AnimationController:
137
154
 
138
155
  Sets the animation back to frame 0 and resets loop detection state.
139
156
  """
140
- def set(self, name: str, rewind: bool = False) -> None:
157
+ def set(self, name: str) -> None:
141
158
  """
142
- Set the current active animation by name.
159
+ Set the current active animation by name without affecting playback state.
143
160
 
144
- Switches to the specified animation and resets playback to the beginning.
161
+ Switches to the specified animation while preserving the current frame index and
162
+ playback state (paused/playing). Useful for seamless animation transitions.
145
163
 
146
164
  Args:
147
165
  name (str): The name of the animation to activate.
148
- rewind (bool): Whether to rewind the animation to the start.
149
166
 
150
167
  Raises:
151
168
  ValueError: If the specified animation name is not found.
@@ -170,6 +187,27 @@ class AnimationController:
170
187
  RuntimeError: If no animation is currently set or the animation has no frames.
171
188
  """
172
189
  @property
190
+ def frame_index(self) -> int:
191
+ """
192
+ The current frame index in the animation sequence.
193
+
194
+ Returns the integer frame index (0-based) of the currently displayed frame.
195
+
196
+ Returns:
197
+ int: The current frame index.
198
+ """
199
+ @property
200
+ def looping(self) -> bool:
201
+ """
202
+ Whether the animation should loop when it reaches the end.
203
+
204
+ Returns:
205
+ bool: True if the animation is set to loop, False otherwise.
206
+ """
207
+ @looping.setter
208
+ def looping(self, arg1: bool) -> None:
209
+ ...
210
+ @property
173
211
  def playback_speed(self) -> float:
174
212
  """
175
213
  The playback speed multiplier for animation timing.
@@ -183,6 +221,18 @@ class AnimationController:
183
221
  @playback_speed.setter
184
222
  def playback_speed(self, arg1: typing.SupportsFloat) -> None:
185
223
  ...
224
+ @property
225
+ def progress(self) -> float:
226
+ """
227
+ The normalized progress through the current animation.
228
+
229
+ Returns a value between 0.0 (start) and 1.0 (end) representing how far through
230
+ the animation sequence the playback has progressed. Useful for UI progress bars
231
+ or triggering events at specific points in the animation.
232
+
233
+ Returns:
234
+ float: The animation progress as a value between 0.0 and 1.0.
235
+ """
186
236
  class Audio:
187
237
  """
188
238
 
@@ -268,16 +318,17 @@ class AudioStream:
268
318
 
269
319
  The stream position is preserved and can be resumed with resume().
270
320
  """
271
- def play(self, fade_in_ms: typing.SupportsInt = 0, loop: bool = False) -> None:
321
+ def play(self, fade_in_ms: typing.SupportsInt = 0, loop: bool = False, start_time_seconds: typing.SupportsFloat = 0.0) -> None:
272
322
  """
273
- Play the audio stream with optional fade-in time and loop setting.
323
+ Play the audio stream with optional fade-in time, loop setting, and start position.
274
324
 
275
- Rewinds the stream to the beginning and starts playback. If the stream is already
276
- playing, it will restart from the beginning.
325
+ Starts playback from the specified time position. If the stream is already
326
+ playing, it will restart from the specified position.
277
327
 
278
328
  Args:
279
329
  fade_in_ms (int, optional): Fade-in duration in milliseconds. Defaults to 0.
280
330
  loop (bool, optional): Whether to loop the audio continuously. Defaults to False.
331
+ start_time_seconds (float, optional): Time position in seconds to start playback from. Defaults to 0.0.
281
332
  """
282
333
  def resume(self) -> None:
283
334
  """
@@ -292,6 +343,16 @@ class AudioStream:
292
343
  Sets the playback position back to the start of the audio file. Does not affect
293
344
  the current play state (playing/paused).
294
345
  """
346
+ def seek(self, time_seconds: typing.SupportsFloat) -> None:
347
+ """
348
+ Seek to a specific time position in the audio stream.
349
+
350
+ Sets the playback position to the specified time in seconds. Does not affect
351
+ the current play state (playing/paused).
352
+
353
+ Args:
354
+ time_seconds (float): The time position in seconds to seek to.
355
+ """
295
356
  def set_looping(self, loop: bool) -> None:
296
357
  """
297
358
  Set whether the audio stream loops continuously.
@@ -308,6 +369,11 @@ class AudioStream:
308
369
  If > 0, fades out over the specified duration. Defaults to 0.
309
370
  """
310
371
  @property
372
+ def current_time(self) -> float:
373
+ """
374
+ The current playback time position in seconds.
375
+ """
376
+ @property
311
377
  def volume(self) -> float:
312
378
  """
313
379
  The volume level of the audio stream.
@@ -419,41 +485,6 @@ class Circle:
419
485
  """
420
486
  Return the smallest rectangle that fully contains the circle.
421
487
  """
422
- def collide_circle(self, circle: Circle) -> bool:
423
- """
424
- Check collision with another circle.
425
-
426
- Args:
427
- circle (Circle): The circle to test.
428
- """
429
- def collide_line(self, line: Line) -> bool:
430
- """
431
- Check collision with a line.
432
-
433
- Args:
434
- line (Line): The line to test.
435
- """
436
- def collide_point(self, point: Vec2) -> bool:
437
- """
438
- Check if a point lies inside the circle.
439
-
440
- Args:
441
- point (Vec2): The point to test.
442
- """
443
- def collide_rect(self, rect: Rect) -> bool:
444
- """
445
- Check collision with a rectangle.
446
-
447
- Args:
448
- rect (Rect): The rectangle to test.
449
- """
450
- def contains(self, shape: typing.Any) -> bool:
451
- """
452
- Check if the circle fully contains the given shape.
453
-
454
- Args:
455
- shape (Vec2, Circle, or Rect): The shape to test.
456
- """
457
488
  def copy(self) -> Circle:
458
489
  """
459
490
  Return a copy of the circle.
@@ -533,14 +564,22 @@ class Color:
533
564
  a (int, optional): Alpha value [0-255]. Defaults to 255.
534
565
  """
535
566
  @typing.overload
536
- def __init__(self, arg0: typing.Any) -> None:
567
+ def __init__(self, hex: str) -> None:
537
568
  """
538
- Create a Color from a hex string or a sequence of RGB(A) integers.
569
+ Create a Color from a hex string.
539
570
 
540
- Examples:
541
- Color("#ff00ff")
542
- Color([255, 0, 255])
543
- Color((255, 0, 255, 128))
571
+ Args:
572
+ hex (str): Hex color string (with or without '#' prefix).
573
+ """
574
+ @typing.overload
575
+ def __init__(self, sequence: collections.abc.Sequence) -> None:
576
+ """
577
+ Create a Color from a sequence of RGB(A) integers.
578
+
579
+ Args:
580
+ sequence (list or tuple): A sequence of 3 or 4 integers [0-255].
581
+ - 3 values: RGB (alpha defaults to 255)
582
+ - 4 values: RGBA
544
583
  """
545
584
  def __iter__(self) -> collections.abc.Iterator:
546
585
  """
@@ -560,6 +599,20 @@ class Color:
560
599
  Returns:
561
600
  int: Always returns 4 (for r, g, b, a channels).
562
601
  """
602
+ def __mul__(self, scalar: typing.SupportsFloat) -> Color:
603
+ """
604
+ Multiply RGB color channels by a scalar value.
605
+
606
+ Multiplies each RGB component by the scalar. Results are clamped to [0, 255].
607
+ The alpha channel is preserved unchanged.
608
+ Negative scalars invert the color before applying the absolute value.
609
+
610
+ Args:
611
+ scalar (float): Scalar multiplier (any positive or negative value).
612
+
613
+ Returns:
614
+ Color: New Color with scaled RGB values and original alpha.
615
+ """
563
616
  def __ne__(self, other: Color) -> bool:
564
617
  """
565
618
  Check if two Color objects are not equal.
@@ -570,6 +623,16 @@ class Color:
570
623
  Returns:
571
624
  bool: True if any component differs, False otherwise.
572
625
  """
626
+ def __neg__(self) -> Color:
627
+ """
628
+ Unary negation operator to invert the color.
629
+
630
+ Returns the inverted color by flipping RGB channels (255 - value).
631
+ The alpha channel is preserved unchanged.
632
+
633
+ Returns:
634
+ Color: New Color with inverted RGB values and original alpha.
635
+ """
573
636
  def __repr__(self) -> str:
574
637
  """
575
638
  Return a string suitable for debugging and recreation.
@@ -577,6 +640,20 @@ class Color:
577
640
  Returns:
578
641
  str: String in format "Color(r, g, b, a)" that can recreate the object.
579
642
  """
643
+ def __rmul__(self, scalar: typing.SupportsFloat) -> Color:
644
+ """
645
+ Multiply RGB color channels by a scalar value (reverse multiplication).
646
+
647
+ Allows scalar * color syntax in addition to color * scalar.
648
+ Results are clamped to [0, 255]. The alpha channel is preserved unchanged.
649
+ Negative scalars invert the color before applying the absolute value.
650
+
651
+ Args:
652
+ scalar (float): Scalar multiplier (any positive or negative value).
653
+
654
+ Returns:
655
+ Color: New Color with scaled RGB values and original alpha.
656
+ """
580
657
  def __setitem__(self, index: typing.SupportsInt, value: typing.SupportsInt) -> None:
581
658
  """
582
659
  Set a color channel by index.
@@ -595,6 +672,23 @@ class Color:
595
672
  Returns:
596
673
  str: String in format "(r, g, b, a)" with integer values.
597
674
  """
675
+ def __truediv__(self, scalar: typing.SupportsFloat) -> Color:
676
+ """
677
+ Divide RGB color channels by a scalar value.
678
+
679
+ Divides each RGB component by the scalar. Results are clamped to [0, 255].
680
+ The alpha channel is preserved unchanged.
681
+ Negative scalars invert the color before applying the absolute value.
682
+
683
+ Args:
684
+ scalar (float): Scalar divisor (any positive or negative value except 0).
685
+
686
+ Returns:
687
+ Color: New Color with divided RGB values and original alpha.
688
+
689
+ Raises:
690
+ ValueError: If scalar is zero.
691
+ """
598
692
  def copy(self) -> Color:
599
693
  """
600
694
  Create a copy of the color.
@@ -760,27 +854,48 @@ class EventType(enum.IntEnum):
760
854
  AUDIO_DEVICE_ADDED: typing.ClassVar[EventType] # value = <EventType.AUDIO_DEVICE_ADDED: 4352>
761
855
  AUDIO_DEVICE_FORMAT_CHANGED: typing.ClassVar[EventType] # value = <EventType.AUDIO_DEVICE_FORMAT_CHANGED: 4354>
762
856
  AUDIO_DEVICE_REMOVED: typing.ClassVar[EventType] # value = <EventType.AUDIO_DEVICE_REMOVED: 4353>
763
- CAMERA_ADDED: typing.ClassVar[EventType] # value = <EventType.CAMERA_ADDED: 5120>
764
- CAMERA_APPROVED: typing.ClassVar[EventType] # value = <EventType.CAMERA_APPROVED: 5122>
765
- CAMERA_DENIED: typing.ClassVar[EventType] # value = <EventType.CAMERA_DENIED: 5123>
766
- CAMERA_REMOVED: typing.ClassVar[EventType] # value = <EventType.CAMERA_REMOVED: 5121>
857
+ CAMERA_DEVICE_ADDED: typing.ClassVar[EventType] # value = <EventType.CAMERA_DEVICE_ADDED: 5120>
858
+ CAMERA_DEVICE_APPROVED: typing.ClassVar[EventType] # value = <EventType.CAMERA_DEVICE_APPROVED: 5122>
859
+ CAMERA_DEVICE_DENIED: typing.ClassVar[EventType] # value = <EventType.CAMERA_DEVICE_DENIED: 5123>
860
+ CAMERA_DEVICE_REMOVED: typing.ClassVar[EventType] # value = <EventType.CAMERA_DEVICE_REMOVED: 5121>
861
+ CLIPBOARD_UPDATE: typing.ClassVar[EventType] # value = <EventType.CLIPBOARD_UPDATE: 2304>
862
+ DID_ENTER_BACKGROUND: typing.ClassVar[EventType] # value = <EventType.DID_ENTER_BACKGROUND: 260>
863
+ DID_ENTER_FOREGROUND: typing.ClassVar[EventType] # value = <EventType.DID_ENTER_FOREGROUND: 262>
864
+ DISPLAY_ADDED: typing.ClassVar[EventType] # value = <EventType.DISPLAY_ADDED: 338>
865
+ DISPLAY_CONTENT_SCALE_CHANGED: typing.ClassVar[EventType] # value = <EventType.DISPLAY_CONTENT_SCALE_CHANGED: 343>
866
+ DISPLAY_CURRENT_MODE_CHANGED: typing.ClassVar[EventType] # value = <EventType.DISPLAY_CURRENT_MODE_CHANGED: 342>
867
+ DISPLAY_DESKTOP_MODE_CHANGED: typing.ClassVar[EventType] # value = <EventType.DISPLAY_DESKTOP_MODE_CHANGED: 341>
868
+ DISPLAY_MOVED: typing.ClassVar[EventType] # value = <EventType.DISPLAY_MOVED: 340>
869
+ DISPLAY_ORIENTATION: typing.ClassVar[EventType] # value = <EventType.DISPLAY_ORIENTATION: 337>
870
+ DISPLAY_REMOVED: typing.ClassVar[EventType] # value = <EventType.DISPLAY_REMOVED: 339>
767
871
  DROP_BEGIN: typing.ClassVar[EventType] # value = <EventType.DROP_BEGIN: 4098>
768
872
  DROP_COMPLETE: typing.ClassVar[EventType] # value = <EventType.DROP_COMPLETE: 4099>
769
873
  DROP_FILE: typing.ClassVar[EventType] # value = <EventType.DROP_FILE: 4096>
770
874
  DROP_POSITION: typing.ClassVar[EventType] # value = <EventType.DROP_POSITION: 4100>
771
875
  DROP_TEXT: typing.ClassVar[EventType] # value = <EventType.DROP_TEXT: 4097>
876
+ FINGER_CANCELED: typing.ClassVar[EventType] # value = <EventType.FINGER_CANCELED: 1795>
877
+ FINGER_DOWN: typing.ClassVar[EventType] # value = <EventType.FINGER_DOWN: 1792>
878
+ FINGER_MOTION: typing.ClassVar[EventType] # value = <EventType.FINGER_MOTION: 1794>
879
+ FINGER_UP: typing.ClassVar[EventType] # value = <EventType.FINGER_UP: 1793>
772
880
  GAMEPAD_ADDED: typing.ClassVar[EventType] # value = <EventType.GAMEPAD_ADDED: 1619>
773
881
  GAMEPAD_AXIS_MOTION: typing.ClassVar[EventType] # value = <EventType.GAMEPAD_AXIS_MOTION: 1616>
774
882
  GAMEPAD_BUTTON_DOWN: typing.ClassVar[EventType] # value = <EventType.GAMEPAD_BUTTON_DOWN: 1617>
775
883
  GAMEPAD_BUTTON_UP: typing.ClassVar[EventType] # value = <EventType.GAMEPAD_BUTTON_UP: 1618>
884
+ GAMEPAD_REMAPPED: typing.ClassVar[EventType] # value = <EventType.GAMEPAD_REMAPPED: 1621>
776
885
  GAMEPAD_REMOVED: typing.ClassVar[EventType] # value = <EventType.GAMEPAD_REMOVED: 1620>
886
+ GAMEPAD_SENSOR_UPDATE: typing.ClassVar[EventType] # value = <EventType.GAMEPAD_SENSOR_UPDATE: 1625>
887
+ GAMEPAD_STEAM_HANDLE_UPDATED: typing.ClassVar[EventType] # value = <EventType.GAMEPAD_STEAM_HANDLE_UPDATED: 1627>
777
888
  GAMEPAD_TOUCHPAD_DOWN: typing.ClassVar[EventType] # value = <EventType.GAMEPAD_TOUCHPAD_DOWN: 1622>
778
889
  GAMEPAD_TOUCHPAD_MOTION: typing.ClassVar[EventType] # value = <EventType.GAMEPAD_TOUCHPAD_MOTION: 1623>
779
890
  GAMEPAD_TOUCHPAD_UP: typing.ClassVar[EventType] # value = <EventType.GAMEPAD_TOUCHPAD_UP: 1624>
891
+ GAMEPAD_UPDATE_COMPLETE: typing.ClassVar[EventType] # value = <EventType.GAMEPAD_UPDATE_COMPLETE: 1626>
780
892
  KEYBOARD_ADDED: typing.ClassVar[EventType] # value = <EventType.KEYBOARD_ADDED: 773>
781
893
  KEYBOARD_REMOVED: typing.ClassVar[EventType] # value = <EventType.KEYBOARD_REMOVED: 774>
894
+ KEYMAP_CHANGED: typing.ClassVar[EventType] # value = <EventType.KEYMAP_CHANGED: 772>
782
895
  KEY_DOWN: typing.ClassVar[EventType] # value = <EventType.KEY_DOWN: 768>
783
896
  KEY_UP: typing.ClassVar[EventType] # value = <EventType.KEY_UP: 769>
897
+ LOCALE_CHANGED: typing.ClassVar[EventType] # value = <EventType.LOCALE_CHANGED: 263>
898
+ LOW_MEMORY: typing.ClassVar[EventType] # value = <EventType.LOW_MEMORY: 258>
784
899
  MOUSE_ADDED: typing.ClassVar[EventType] # value = <EventType.MOUSE_ADDED: 1028>
785
900
  MOUSE_BUTTON_DOWN: typing.ClassVar[EventType] # value = <EventType.MOUSE_BUTTON_DOWN: 1025>
786
901
  MOUSE_BUTTON_UP: typing.ClassVar[EventType] # value = <EventType.MOUSE_BUTTON_UP: 1026>
@@ -796,13 +911,29 @@ class EventType(enum.IntEnum):
796
911
  PEN_PROXIMITY_OUT: typing.ClassVar[EventType] # value = <EventType.PEN_PROXIMITY_OUT: 4865>
797
912
  PEN_UP: typing.ClassVar[EventType] # value = <EventType.PEN_UP: 4867>
798
913
  QUIT: typing.ClassVar[EventType] # value = <EventType.QUIT: 256>
914
+ RENDER_DEVICE_LOST: typing.ClassVar[EventType] # value = <EventType.RENDER_DEVICE_LOST: 8194>
915
+ RENDER_DEVICE_RESET: typing.ClassVar[EventType] # value = <EventType.RENDER_DEVICE_RESET: 8193>
916
+ RENDER_TARGETS_RESET: typing.ClassVar[EventType] # value = <EventType.RENDER_TARGETS_RESET: 8192>
917
+ SENSOR_UPDATE: typing.ClassVar[EventType] # value = <EventType.SENSOR_UPDATE: 4608>
918
+ SYSTEM_THEME_CHANGED: typing.ClassVar[EventType] # value = <EventType.SYSTEM_THEME_CHANGED: 264>
919
+ TERMINATING: typing.ClassVar[EventType] # value = <EventType.TERMINATING: 257>
799
920
  TEXT_EDITING: typing.ClassVar[EventType] # value = <EventType.TEXT_EDITING: 770>
921
+ TEXT_EDITING_CANDIDATES: typing.ClassVar[EventType] # value = <EventType.TEXT_EDITING_CANDIDATES: 775>
800
922
  TEXT_INPUT: typing.ClassVar[EventType] # value = <EventType.TEXT_INPUT: 771>
923
+ WILL_ENTER_BACKGROUND: typing.ClassVar[EventType] # value = <EventType.WILL_ENTER_BACKGROUND: 259>
924
+ WILL_ENTER_FOREGROUND: typing.ClassVar[EventType] # value = <EventType.WILL_ENTER_FOREGROUND: 261>
925
+ WINDOW_CLOSE_REQUESTED: typing.ClassVar[EventType] # value = <EventType.WINDOW_CLOSE_REQUESTED: 528>
926
+ WINDOW_DESTROYED: typing.ClassVar[EventType] # value = <EventType.WINDOW_DESTROYED: 537>
927
+ WINDOW_DISPLAY_CHANGED: typing.ClassVar[EventType] # value = <EventType.WINDOW_DISPLAY_CHANGED: 531>
928
+ WINDOW_DISPLAY_SCALE_CHANGED: typing.ClassVar[EventType] # value = <EventType.WINDOW_DISPLAY_SCALE_CHANGED: 532>
801
929
  WINDOW_ENTER_FULLSCREEN: typing.ClassVar[EventType] # value = <EventType.WINDOW_ENTER_FULLSCREEN: 535>
802
930
  WINDOW_EXPOSED: typing.ClassVar[EventType] # value = <EventType.WINDOW_EXPOSED: 516>
803
931
  WINDOW_FOCUS_GAINED: typing.ClassVar[EventType] # value = <EventType.WINDOW_FOCUS_GAINED: 526>
804
932
  WINDOW_FOCUS_LOST: typing.ClassVar[EventType] # value = <EventType.WINDOW_FOCUS_LOST: 527>
933
+ WINDOW_HDR_STATE_CHANGED: typing.ClassVar[EventType] # value = <EventType.WINDOW_HDR_STATE_CHANGED: 538>
805
934
  WINDOW_HIDDEN: typing.ClassVar[EventType] # value = <EventType.WINDOW_HIDDEN: 515>
935
+ WINDOW_HIT_TEST: typing.ClassVar[EventType] # value = <EventType.WINDOW_HIT_TEST: 529>
936
+ WINDOW_ICCPROF_CHANGED: typing.ClassVar[EventType] # value = <EventType.WINDOW_ICCPROF_CHANGED: 530>
806
937
  WINDOW_LEAVE_FULLSCREEN: typing.ClassVar[EventType] # value = <EventType.WINDOW_LEAVE_FULLSCREEN: 536>
807
938
  WINDOW_MAXIMIZED: typing.ClassVar[EventType] # value = <EventType.WINDOW_MAXIMIZED: 522>
808
939
  WINDOW_MINIMIZED: typing.ClassVar[EventType] # value = <EventType.WINDOW_MINIMIZED: 521>
@@ -812,6 +943,7 @@ class EventType(enum.IntEnum):
812
943
  WINDOW_OCCLUDED: typing.ClassVar[EventType] # value = <EventType.WINDOW_OCCLUDED: 534>
813
944
  WINDOW_RESIZED: typing.ClassVar[EventType] # value = <EventType.WINDOW_RESIZED: 518>
814
945
  WINDOW_RESTORED: typing.ClassVar[EventType] # value = <EventType.WINDOW_RESTORED: 523>
946
+ WINDOW_SAFE_AREA_CHANGED: typing.ClassVar[EventType] # value = <EventType.WINDOW_SAFE_AREA_CHANGED: 533>
815
947
  WINDOW_SHOWN: typing.ClassVar[EventType] # value = <EventType.WINDOW_SHOWN: 514>
816
948
  @classmethod
817
949
  def __new__(cls, value):
@@ -823,11 +955,11 @@ class EventType(enum.IntEnum):
823
955
  class Font:
824
956
  """
825
957
 
826
- A font object for rendering text to the active renderer.
958
+ A font typeface for rendering text.
827
959
 
828
- This class wraps an SDL_ttf font and an internal text object for efficient
829
- rendering. You can load fonts from a file path or use one of the built-in
830
- typefaces:
960
+ This class wraps an SDL_ttf font and manages font properties like size,
961
+ style, and alignment. You can load fonts from a file path or use one of
962
+ the built-in typefaces:
831
963
 
832
964
  - "kraken-clean": A clean sans-serif font bundled with the engine.
833
965
  - "kraken-retro": A pixel/retro font bundled with the engine. Point size is
@@ -838,7 +970,7 @@ class Font:
838
970
  call kn.window.create(...) first, which initializes the font engine.
839
971
 
840
972
  """
841
- def __init__(self, arg0: str, arg1: typing.SupportsInt) -> None:
973
+ def __init__(self, file_dir: str, pt_size: typing.SupportsInt) -> None:
842
974
  """
843
975
  Create a Font.
844
976
 
@@ -852,69 +984,87 @@ class Font:
852
984
  Raises:
853
985
  RuntimeError: If the font fails to load.
854
986
  """
855
- def draw(self, text: str, pos: typing.Any = None, color: typing.Any = None, wrap_width: typing.SupportsInt = 0) -> None:
987
+ @property
988
+ def alignment(self) -> Align:
856
989
  """
857
- Draw text to the renderer.
990
+ Get or set the text alignment for wrapped text.
858
991
 
859
- Args:
860
- text (str): The text to render.
861
- pos (Vec2 | None, optional): The position in pixels. Defaults to (0, 0).
862
- color (Color | None, optional): Text color. Defaults to white.
863
- wrap_width (int, optional): Wrap the text at this pixel width. Set to 0 for
864
- no wrapping. Defaults to 0.
865
-
866
- Returns:
867
- None
992
+ Valid values: Align.LEFT, Align.CENTER, Align.RIGHT
868
993
  """
869
- def set_bold(self, on: bool) -> None:
994
+ @alignment.setter
995
+ def alignment(self, arg1: Align) -> None:
996
+ ...
997
+ @property
998
+ def bold(self) -> bool:
870
999
  """
871
- Enable or disable bold text style.
872
-
873
- Args:
874
- on (bool): True to enable bold, False to disable.
875
-
876
- Returns:
877
- None
1000
+ Get or set whether bold text style is enabled.
878
1001
  """
879
- def set_italic(self, on: bool) -> None:
1002
+ @bold.setter
1003
+ def bold(self, arg1: bool) -> None:
1004
+ ...
1005
+ @property
1006
+ def hinting(self) -> FontHint:
880
1007
  """
881
- Enable or disable italic text style.
882
-
883
- Args:
884
- on (bool): True to enable italic, False to disable.
1008
+ Get or set the font hinting mode.
885
1009
 
886
- Returns:
887
- None
1010
+ Valid values: FontHinting.NORMAL, FontHinting.MONO, FontHinting.LIGHT,
1011
+ FontHinting.LIGHT_SUBPIXEL, FontHinting.NONE
888
1012
  """
889
- def set_pt_size(self, pt: typing.SupportsInt) -> None:
1013
+ @hinting.setter
1014
+ def hinting(self, arg1: FontHint) -> None:
1015
+ ...
1016
+ @property
1017
+ def italic(self) -> bool:
890
1018
  """
891
- Set the font point size.
892
-
893
- Args:
894
- pt (int): The new point size. Values below 8 are clamped to 8.
895
-
896
- Returns:
897
- None
1019
+ Get or set whether italic text style is enabled.
898
1020
  """
899
- def set_strikethrough(self, on: bool) -> None:
1021
+ @italic.setter
1022
+ def italic(self, arg1: bool) -> None:
1023
+ ...
1024
+ @property
1025
+ def pt_size(self) -> int:
900
1026
  """
901
- Enable or disable strikethrough text style.
902
-
903
- Args:
904
- on (bool): True to enable strikethrough, False to disable.
905
-
906
- Returns:
907
- None
1027
+ Get or set the point size of the font. Values below 8 are clamped to 8.
908
1028
  """
909
- def set_underline(self, on: bool) -> None:
1029
+ @pt_size.setter
1030
+ def pt_size(self, arg1: typing.SupportsInt) -> None:
1031
+ ...
1032
+ @property
1033
+ def strikethrough(self) -> bool:
910
1034
  """
911
- Enable or disable underline text style.
912
-
913
- Args:
914
- on (bool): True to enable underline, False to disable.
1035
+ Get or set whether strikethrough text style is enabled.
1036
+ """
1037
+ @strikethrough.setter
1038
+ def strikethrough(self, arg1: bool) -> None:
1039
+ ...
1040
+ @property
1041
+ def underline(self) -> bool:
1042
+ """
1043
+ Get or set whether underline text style is enabled.
1044
+ """
1045
+ @underline.setter
1046
+ def underline(self, arg1: bool) -> None:
1047
+ ...
1048
+ class FontHint(enum.IntEnum):
1049
+ """
1050
+
1051
+ Font hinting modes for controlling how fonts are rendered.
1052
+
1053
+ Hinting is the process of fitting font outlines to the pixel grid to improve
1054
+ readability at small sizes.
915
1055
 
916
- Returns:
917
- None
1056
+ """
1057
+ LIGHT: typing.ClassVar[FontHint] # value = <FontHint.LIGHT: 2>
1058
+ LIGHT_SUBPIXEL: typing.ClassVar[FontHint] # value = <FontHint.LIGHT_SUBPIXEL: 3>
1059
+ MONO: typing.ClassVar[FontHint] # value = <FontHint.MONO: 1>
1060
+ NONE: typing.ClassVar[FontHint] # value = <FontHint.NONE: 4>
1061
+ NORMAL: typing.ClassVar[FontHint] # value = <FontHint.NORMAL: 0>
1062
+ @classmethod
1063
+ def __new__(cls, value):
1064
+ ...
1065
+ def __format__(self, format_spec):
1066
+ """
1067
+ Convert to a string according to format_spec.
918
1068
  """
919
1069
  class Frame:
920
1070
  """
@@ -1052,12 +1202,16 @@ class Keycode(enum.IntEnum):
1052
1202
  K_9: typing.ClassVar[Keycode] # value = <Keycode.K_9: 57>
1053
1203
  K_AGAIN: typing.ClassVar[Keycode] # value = <Keycode.K_AGAIN: 1073741945>
1054
1204
  K_AMPERSAND: typing.ClassVar[Keycode] # value = <Keycode.K_AMPERSAND: 38>
1205
+ K_APPLICATION: typing.ClassVar[Keycode] # value = <Keycode.K_APPLICATION: 1073741925>
1055
1206
  K_ASTERISK: typing.ClassVar[Keycode] # value = <Keycode.K_ASTERISK: 42>
1056
1207
  K_AT: typing.ClassVar[Keycode] # value = <Keycode.K_AT: 64>
1057
1208
  K_BACKSLASH: typing.ClassVar[Keycode] # value = <Keycode.K_BACKSLASH: 92>
1058
1209
  K_BACKSPACE: typing.ClassVar[Keycode] # value = <Keycode.K_BACKSPACE: 8>
1210
+ K_CALL: typing.ClassVar[Keycode] # value = <Keycode.K_CALL: 1073742113>
1059
1211
  K_CAPS: typing.ClassVar[Keycode] # value = <Keycode.K_CAPS: 1073741881>
1060
1212
  K_CARET: typing.ClassVar[Keycode] # value = <Keycode.K_CARET: 94>
1213
+ K_CHANNEL_DEC: typing.ClassVar[Keycode] # value = <Keycode.K_CHANNEL_DEC: 1073742085>
1214
+ K_CHANNEL_INC: typing.ClassVar[Keycode] # value = <Keycode.K_CHANNEL_INC: 1073742084>
1061
1215
  K_COLON: typing.ClassVar[Keycode] # value = <Keycode.K_COLON: 58>
1062
1216
  K_COMMA: typing.ClassVar[Keycode] # value = <Keycode.K_COMMA: 44>
1063
1217
  K_COPY: typing.ClassVar[Keycode] # value = <Keycode.K_COPY: 1073741948>
@@ -1067,13 +1221,18 @@ class Keycode(enum.IntEnum):
1067
1221
  K_DOLLAR: typing.ClassVar[Keycode] # value = <Keycode.K_DOLLAR: 36>
1068
1222
  K_DOWN: typing.ClassVar[Keycode] # value = <Keycode.K_DOWN: 1073741905>
1069
1223
  K_END: typing.ClassVar[Keycode] # value = <Keycode.K_END: 1073741901>
1224
+ K_ENDCALL: typing.ClassVar[Keycode] # value = <Keycode.K_ENDCALL: 1073742114>
1070
1225
  K_EQ: typing.ClassVar[Keycode] # value = <Keycode.K_EQ: 61>
1071
1226
  K_ESC: typing.ClassVar[Keycode] # value = <Keycode.K_ESC: 27>
1072
1227
  K_EXCLAIM: typing.ClassVar[Keycode] # value = <Keycode.K_EXCLAIM: 33>
1228
+ K_EXECUTE: typing.ClassVar[Keycode] # value = <Keycode.K_EXECUTE: 1073741940>
1073
1229
  K_F1: typing.ClassVar[Keycode] # value = <Keycode.K_F1: 1073741882>
1074
1230
  K_F10: typing.ClassVar[Keycode] # value = <Keycode.K_F10: 1073741891>
1075
1231
  K_F11: typing.ClassVar[Keycode] # value = <Keycode.K_F11: 1073741892>
1076
1232
  K_F12: typing.ClassVar[Keycode] # value = <Keycode.K_F12: 1073741893>
1233
+ K_F13: typing.ClassVar[Keycode] # value = <Keycode.K_F13: 1073741928>
1234
+ K_F14: typing.ClassVar[Keycode] # value = <Keycode.K_F14: 1073741929>
1235
+ K_F15: typing.ClassVar[Keycode] # value = <Keycode.K_F15: 1073741930>
1077
1236
  K_F2: typing.ClassVar[Keycode] # value = <Keycode.K_F2: 1073741883>
1078
1237
  K_F3: typing.ClassVar[Keycode] # value = <Keycode.K_F3: 1073741884>
1079
1238
  K_F4: typing.ClassVar[Keycode] # value = <Keycode.K_F4: 1073741885>
@@ -1086,6 +1245,7 @@ class Keycode(enum.IntEnum):
1086
1245
  K_GRAVE: typing.ClassVar[Keycode] # value = <Keycode.K_GRAVE: 96>
1087
1246
  K_GT: typing.ClassVar[Keycode] # value = <Keycode.K_GT: 62>
1088
1247
  K_HASH: typing.ClassVar[Keycode] # value = <Keycode.K_HASH: 35>
1248
+ K_HELP: typing.ClassVar[Keycode] # value = <Keycode.K_HELP: 1073741941>
1089
1249
  K_HOME: typing.ClassVar[Keycode] # value = <Keycode.K_HOME: 1073741898>
1090
1250
  K_INS: typing.ClassVar[Keycode] # value = <Keycode.K_INS: 1073741897>
1091
1251
  K_KP_0: typing.ClassVar[Keycode] # value = <Keycode.K_KP_0: 1073741922>
@@ -1113,7 +1273,20 @@ class Keycode(enum.IntEnum):
1113
1273
  K_LPAREN: typing.ClassVar[Keycode] # value = <Keycode.K_LPAREN: 40>
1114
1274
  K_LSHIFT: typing.ClassVar[Keycode] # value = <Keycode.K_LSHIFT: 1073742049>
1115
1275
  K_LT: typing.ClassVar[Keycode] # value = <Keycode.K_LT: 60>
1276
+ K_MEDIA_EJECT: typing.ClassVar[Keycode] # value = <Keycode.K_MEDIA_EJECT: 1073742094>
1277
+ K_MEDIA_FF: typing.ClassVar[Keycode] # value = <Keycode.K_MEDIA_FF: 1073742089>
1278
+ K_MEDIA_NEXT: typing.ClassVar[Keycode] # value = <Keycode.K_MEDIA_NEXT: 1073742091>
1279
+ K_MEDIA_PAUSE: typing.ClassVar[Keycode] # value = <Keycode.K_MEDIA_PAUSE: 1073742087>
1280
+ K_MEDIA_PLAY: typing.ClassVar[Keycode] # value = <Keycode.K_MEDIA_PLAY: 1073742086>
1281
+ K_MEDIA_PLAY_PAUSE: typing.ClassVar[Keycode] # value = <Keycode.K_MEDIA_PLAY_PAUSE: 1073742095>
1282
+ K_MEDIA_PREV: typing.ClassVar[Keycode] # value = <Keycode.K_MEDIA_PREV: 1073742092>
1283
+ K_MEDIA_REC: typing.ClassVar[Keycode] # value = <Keycode.K_MEDIA_REC: 1073742088>
1284
+ K_MEDIA_REWIND: typing.ClassVar[Keycode] # value = <Keycode.K_MEDIA_REWIND: 1073742090>
1285
+ K_MEDIA_SELECT: typing.ClassVar[Keycode] # value = <Keycode.K_MEDIA_SELECT: 1073742096>
1286
+ K_MEDIA_STOP: typing.ClassVar[Keycode] # value = <Keycode.K_MEDIA_STOP: 1073742093>
1287
+ K_MENU: typing.ClassVar[Keycode] # value = <Keycode.K_MENU: 1073741942>
1116
1288
  K_MINUS: typing.ClassVar[Keycode] # value = <Keycode.K_MINUS: 45>
1289
+ K_MODE: typing.ClassVar[Keycode] # value = <Keycode.K_MODE: 1073742081>
1117
1290
  K_MUTE: typing.ClassVar[Keycode] # value = <Keycode.K_MUTE: 1073741951>
1118
1291
  K_NUMLOCK: typing.ClassVar[Keycode] # value = <Keycode.K_NUMLOCK: 1073741907>
1119
1292
  K_PASTE: typing.ClassVar[Keycode] # value = <Keycode.K_PASTE: 1073741949>
@@ -1124,6 +1297,7 @@ class Keycode(enum.IntEnum):
1124
1297
  K_PGUP: typing.ClassVar[Keycode] # value = <Keycode.K_PGUP: 1073741899>
1125
1298
  K_PIPE: typing.ClassVar[Keycode] # value = <Keycode.K_PIPE: 124>
1126
1299
  K_PLUS: typing.ClassVar[Keycode] # value = <Keycode.K_PLUS: 43>
1300
+ K_POWER: typing.ClassVar[Keycode] # value = <Keycode.K_POWER: 1073741926>
1127
1301
  K_PRTSCR: typing.ClassVar[Keycode] # value = <Keycode.K_PRTSCR: 1073741894>
1128
1302
  K_QUESTION: typing.ClassVar[Keycode] # value = <Keycode.K_QUESTION: 63>
1129
1303
  K_RALT: typing.ClassVar[Keycode] # value = <Keycode.K_RALT: 1073742054>
@@ -1136,17 +1310,24 @@ class Keycode(enum.IntEnum):
1136
1310
  K_RPAREN: typing.ClassVar[Keycode] # value = <Keycode.K_RPAREN: 41>
1137
1311
  K_RSHIFT: typing.ClassVar[Keycode] # value = <Keycode.K_RSHIFT: 1073742053>
1138
1312
  K_SCRLK: typing.ClassVar[Keycode] # value = <Keycode.K_SCRLK: 1073741895>
1313
+ K_SELECT: typing.ClassVar[Keycode] # value = <Keycode.K_SELECT: 1073741943>
1139
1314
  K_SEMICOLON: typing.ClassVar[Keycode] # value = <Keycode.K_SEMICOLON: 59>
1140
1315
  K_SGLQUOTE: typing.ClassVar[Keycode] # value = <Keycode.K_SGLQUOTE: 39>
1141
1316
  K_SLASH: typing.ClassVar[Keycode] # value = <Keycode.K_SLASH: 47>
1317
+ K_SLEEP: typing.ClassVar[Keycode] # value = <Keycode.K_SLEEP: 1073742082>
1318
+ K_SOFTLEFT: typing.ClassVar[Keycode] # value = <Keycode.K_SOFTLEFT: 1073742111>
1319
+ K_SOFTRIGHT: typing.ClassVar[Keycode] # value = <Keycode.K_SOFTRIGHT: 1073742112>
1142
1320
  K_SPACE: typing.ClassVar[Keycode] # value = <Keycode.K_SPACE: 32>
1321
+ K_STOP: typing.ClassVar[Keycode] # value = <Keycode.K_STOP: 1073741944>
1143
1322
  K_TAB: typing.ClassVar[Keycode] # value = <Keycode.K_TAB: 9>
1144
1323
  K_TILDE: typing.ClassVar[Keycode] # value = <Keycode.K_TILDE: 126>
1145
1324
  K_UNDERSCORE: typing.ClassVar[Keycode] # value = <Keycode.K_UNDERSCORE: 95>
1146
1325
  K_UNDO: typing.ClassVar[Keycode] # value = <Keycode.K_UNDO: 1073741946>
1326
+ K_UNKNOWN: typing.ClassVar[Keycode] # value = <Keycode.K_UNKNOWN: 0>
1147
1327
  K_UP: typing.ClassVar[Keycode] # value = <Keycode.K_UP: 1073741906>
1148
1328
  K_VOLDOWN: typing.ClassVar[Keycode] # value = <Keycode.K_VOLDOWN: 1073741953>
1149
1329
  K_VOLUP: typing.ClassVar[Keycode] # value = <Keycode.K_VOLUP: 1073741952>
1330
+ K_WAKE: typing.ClassVar[Keycode] # value = <Keycode.K_WAKE: 1073742083>
1150
1331
  K_a: typing.ClassVar[Keycode] # value = <Keycode.K_a: 97>
1151
1332
  K_b: typing.ClassVar[Keycode] # value = <Keycode.K_b: 98>
1152
1333
  K_c: typing.ClassVar[Keycode] # value = <Keycode.K_c: 99>
@@ -1180,55 +1361,6 @@ class Keycode(enum.IntEnum):
1180
1361
  """
1181
1362
  Convert to a string according to format_spec.
1182
1363
  """
1183
- class Layer:
1184
- """
1185
-
1186
- A layer within a tile map.
1187
-
1188
- Layers can be either tile layers or object layers and contain a list of tiles.
1189
-
1190
- """
1191
- class Type(enum.IntEnum):
1192
- """
1193
-
1194
- The type of a Layer.
1195
-
1196
- """
1197
- OBJECT: typing.ClassVar[Layer.Type] # value = <Type.OBJECT: 0>
1198
- TILE: typing.ClassVar[Layer.Type] # value = <Type.TILE: 1>
1199
- @classmethod
1200
- def __new__(cls, value):
1201
- ...
1202
- def __format__(self, format_spec):
1203
- """
1204
- Convert to a string according to format_spec.
1205
- """
1206
- OBJECT: typing.ClassVar[Layer.Type] # value = <Type.OBJECT: 0>
1207
- TILE: typing.ClassVar[Layer.Type] # value = <Type.TILE: 1>
1208
- def render(self) -> None:
1209
- """
1210
- Render the layer.
1211
- """
1212
- @property
1213
- def is_visible(self) -> bool:
1214
- """
1215
- Whether the layer is visible.
1216
- """
1217
- @property
1218
- def name(self) -> str:
1219
- """
1220
- The name of the layer.
1221
- """
1222
- @property
1223
- def tiles(self) -> list[Tile]:
1224
- """
1225
- The list of Tile instances contained in this layer.
1226
- """
1227
- @property
1228
- def type(self) -> Layer.Type:
1229
- """
1230
- The layer type (OBJECT or TILE).
1231
- """
1232
1364
  class Line:
1233
1365
  """
1234
1366
 
@@ -1983,6 +2115,71 @@ class Polygon:
1983
2115
  Returns:
1984
2116
  Polygon: A new polygon with the same points.
1985
2117
  """
2118
+ def rotate(self, angle: typing.SupportsFloat, pivot: Vec2) -> None:
2119
+ """
2120
+ Rotate the polygon around a pivot point.
2121
+
2122
+ Args:
2123
+ angle (float): The rotation angle in radians.
2124
+ pivot (Vec2): The point to rotate around.
2125
+ """
2126
+ @typing.overload
2127
+ def scale(self, factor: typing.SupportsFloat, pivot: Vec2) -> None:
2128
+ """
2129
+ Scale the polygon uniformly from a pivot point.
2130
+
2131
+ Args:
2132
+ factor (float): The scaling factor.
2133
+ pivot (Vec2): The point to scale from.
2134
+ """
2135
+ @typing.overload
2136
+ def scale(self, factor: Vec2, pivot: Vec2) -> None:
2137
+ """
2138
+ Scale the polygon non-uniformly from a pivot point.
2139
+
2140
+ Args:
2141
+ factor (Vec2): The scaling factors for x and y.
2142
+ pivot (Vec2): The point to scale from.
2143
+ """
2144
+ def translate(self, offset: Vec2) -> None:
2145
+ """
2146
+ Move the polygon by an offset.
2147
+
2148
+ Args:
2149
+ offset (Vec2): The offset to move by.
2150
+ """
2151
+ @property
2152
+ def area(self) -> float:
2153
+ """
2154
+ Get the area of the polygon.
2155
+
2156
+ Returns:
2157
+ float: The area enclosed by the polygon.
2158
+ """
2159
+ @property
2160
+ def bounds(self) -> Rect:
2161
+ """
2162
+ Get the bounding rectangle of the polygon.
2163
+
2164
+ Returns:
2165
+ Rect: The smallest rectangle that contains the polygon.
2166
+ """
2167
+ @property
2168
+ def centroid(self) -> Vec2:
2169
+ """
2170
+ Get the centroid of the polygon.
2171
+
2172
+ Returns:
2173
+ Vec2: The center point of the polygon.
2174
+ """
2175
+ @property
2176
+ def perimeter(self) -> float:
2177
+ """
2178
+ Get the perimeter of the polygon.
2179
+
2180
+ Returns:
2181
+ float: The total distance around the polygon.
2182
+ """
1986
2183
  @property
1987
2184
  def points(self) -> list[Vec2]:
1988
2185
  """
@@ -2148,36 +2345,6 @@ class Rect:
2148
2345
  Raises:
2149
2346
  ValueError: If min >= max or rectangle is larger than the clamp area.
2150
2347
  """
2151
- def collide_point(self, point: Vec2) -> bool:
2152
- """
2153
- Check if a point is inside this rectangle.
2154
-
2155
- Args:
2156
- point (Vec2): The point to check.
2157
-
2158
- Returns:
2159
- bool: True if the point is inside this rectangle.
2160
- """
2161
- def collide_rect(self, other: Rect) -> bool:
2162
- """
2163
- Check if this rectangle collides with another rectangle.
2164
-
2165
- Args:
2166
- other (Rect): The rectangle to check collision with.
2167
-
2168
- Returns:
2169
- bool: True if the rectangles overlap.
2170
- """
2171
- def contains(self, other: Rect) -> bool:
2172
- """
2173
- Check if this rectangle completely contains another rectangle.
2174
-
2175
- Args:
2176
- other (Rect): The rectangle to check.
2177
-
2178
- Returns:
2179
- bool: True if this rectangle completely contains the other.
2180
- """
2181
2348
  def copy(self) -> Rect:
2182
2349
  """
2183
2350
  Create a copy of this rectangle.
@@ -2401,21 +2568,30 @@ class Scancode(enum.IntEnum):
2401
2568
  S_9: typing.ClassVar[Scancode] # value = <Scancode.S_9: 38>
2402
2569
  S_AGAIN: typing.ClassVar[Scancode] # value = <Scancode.S_AGAIN: 121>
2403
2570
  S_APOSTROPHE: typing.ClassVar[Scancode] # value = <Scancode.S_APOSTROPHE: 52>
2571
+ S_APPLICATION: typing.ClassVar[Scancode] # value = <Scancode.S_APPLICATION: 101>
2404
2572
  S_BACKSLASH: typing.ClassVar[Scancode] # value = <Scancode.S_BACKSLASH: 49>
2405
2573
  S_BACKSPACE: typing.ClassVar[Scancode] # value = <Scancode.S_BACKSPACE: 42>
2574
+ S_CALL: typing.ClassVar[Scancode] # value = <Scancode.S_CALL: 289>
2406
2575
  S_CAPS: typing.ClassVar[Scancode] # value = <Scancode.S_CAPS: 57>
2576
+ S_CHANNEL_DEC: typing.ClassVar[Scancode] # value = <Scancode.S_CHANNEL_DEC: 261>
2577
+ S_CHANNEL_INC: typing.ClassVar[Scancode] # value = <Scancode.S_CHANNEL_INC: 260>
2407
2578
  S_COMMA: typing.ClassVar[Scancode] # value = <Scancode.S_COMMA: 54>
2408
2579
  S_COPY: typing.ClassVar[Scancode] # value = <Scancode.S_COPY: 124>
2409
2580
  S_CUT: typing.ClassVar[Scancode] # value = <Scancode.S_CUT: 123>
2410
2581
  S_DEL: typing.ClassVar[Scancode] # value = <Scancode.S_DEL: 76>
2411
2582
  S_DOWN: typing.ClassVar[Scancode] # value = <Scancode.S_DOWN: 81>
2412
2583
  S_END: typing.ClassVar[Scancode] # value = <Scancode.S_END: 77>
2584
+ S_ENDCALL: typing.ClassVar[Scancode] # value = <Scancode.S_ENDCALL: 290>
2413
2585
  S_EQ: typing.ClassVar[Scancode] # value = <Scancode.S_EQ: 46>
2414
2586
  S_ESC: typing.ClassVar[Scancode] # value = <Scancode.S_ESC: 41>
2587
+ S_EXECUTE: typing.ClassVar[Scancode] # value = <Scancode.S_EXECUTE: 116>
2415
2588
  S_F1: typing.ClassVar[Scancode] # value = <Scancode.S_F1: 58>
2416
2589
  S_F10: typing.ClassVar[Scancode] # value = <Scancode.S_F10: 67>
2417
2590
  S_F11: typing.ClassVar[Scancode] # value = <Scancode.S_F11: 68>
2418
2591
  S_F12: typing.ClassVar[Scancode] # value = <Scancode.S_F12: 69>
2592
+ S_F13: typing.ClassVar[Scancode] # value = <Scancode.S_F13: 104>
2593
+ S_F14: typing.ClassVar[Scancode] # value = <Scancode.S_F14: 105>
2594
+ S_F15: typing.ClassVar[Scancode] # value = <Scancode.S_F15: 106>
2419
2595
  S_F2: typing.ClassVar[Scancode] # value = <Scancode.S_F2: 59>
2420
2596
  S_F3: typing.ClassVar[Scancode] # value = <Scancode.S_F3: 60>
2421
2597
  S_F4: typing.ClassVar[Scancode] # value = <Scancode.S_F4: 61>
@@ -2426,6 +2602,7 @@ class Scancode(enum.IntEnum):
2426
2602
  S_F9: typing.ClassVar[Scancode] # value = <Scancode.S_F9: 66>
2427
2603
  S_FIND: typing.ClassVar[Scancode] # value = <Scancode.S_FIND: 126>
2428
2604
  S_GRAVE: typing.ClassVar[Scancode] # value = <Scancode.S_GRAVE: 53>
2605
+ S_HELP: typing.ClassVar[Scancode] # value = <Scancode.S_HELP: 117>
2429
2606
  S_HOME: typing.ClassVar[Scancode] # value = <Scancode.S_HOME: 74>
2430
2607
  S_INS: typing.ClassVar[Scancode] # value = <Scancode.S_INS: 73>
2431
2608
  S_KP_0: typing.ClassVar[Scancode] # value = <Scancode.S_KP_0: 98>
@@ -2450,7 +2627,20 @@ class Scancode(enum.IntEnum):
2450
2627
  S_LEFT: typing.ClassVar[Scancode] # value = <Scancode.S_LEFT: 80>
2451
2628
  S_LGUI: typing.ClassVar[Scancode] # value = <Scancode.S_LGUI: 227>
2452
2629
  S_LSHIFT: typing.ClassVar[Scancode] # value = <Scancode.S_LSHIFT: 225>
2630
+ S_MEDIA_EJECT: typing.ClassVar[Scancode] # value = <Scancode.S_MEDIA_EJECT: 270>
2631
+ S_MEDIA_FAST_FORWARD: typing.ClassVar[Scancode] # value = <Scancode.S_MEDIA_FAST_FORWARD: 265>
2632
+ S_MEDIA_NEXT: typing.ClassVar[Scancode] # value = <Scancode.S_MEDIA_NEXT: 267>
2633
+ S_MEDIA_PAUSE: typing.ClassVar[Scancode] # value = <Scancode.S_MEDIA_PAUSE: 263>
2634
+ S_MEDIA_PLAY: typing.ClassVar[Scancode] # value = <Scancode.S_MEDIA_PLAY: 262>
2635
+ S_MEDIA_PLAY_PAUSE: typing.ClassVar[Scancode] # value = <Scancode.S_MEDIA_PLAY_PAUSE: 271>
2636
+ S_MEDIA_PREV: typing.ClassVar[Scancode] # value = <Scancode.S_MEDIA_PREV: 268>
2637
+ S_MEDIA_REC: typing.ClassVar[Scancode] # value = <Scancode.S_MEDIA_REC: 264>
2638
+ S_MEDIA_REWIND: typing.ClassVar[Scancode] # value = <Scancode.S_MEDIA_REWIND: 266>
2639
+ S_MEDIA_SELECT: typing.ClassVar[Scancode] # value = <Scancode.S_MEDIA_SELECT: 272>
2640
+ S_MEDIA_STOP: typing.ClassVar[Scancode] # value = <Scancode.S_MEDIA_STOP: 269>
2641
+ S_MENU: typing.ClassVar[Scancode] # value = <Scancode.S_MENU: 118>
2453
2642
  S_MINUS: typing.ClassVar[Scancode] # value = <Scancode.S_MINUS: 45>
2643
+ S_MODE: typing.ClassVar[Scancode] # value = <Scancode.S_MODE: 257>
2454
2644
  S_MUTE: typing.ClassVar[Scancode] # value = <Scancode.S_MUTE: 127>
2455
2645
  S_NUMLOCK: typing.ClassVar[Scancode] # value = <Scancode.S_NUMLOCK: 83>
2456
2646
  S_PASTE: typing.ClassVar[Scancode] # value = <Scancode.S_PASTE: 125>
@@ -2458,6 +2648,7 @@ class Scancode(enum.IntEnum):
2458
2648
  S_PERIOD: typing.ClassVar[Scancode] # value = <Scancode.S_PERIOD: 55>
2459
2649
  S_PGDOWN: typing.ClassVar[Scancode] # value = <Scancode.S_PGDOWN: 78>
2460
2650
  S_PGUP: typing.ClassVar[Scancode] # value = <Scancode.S_PGUP: 75>
2651
+ S_POWER: typing.ClassVar[Scancode] # value = <Scancode.S_POWER: 102>
2461
2652
  S_PRTSCR: typing.ClassVar[Scancode] # value = <Scancode.S_PRTSCR: 70>
2462
2653
  S_RALT: typing.ClassVar[Scancode] # value = <Scancode.S_RALT: 230>
2463
2654
  S_RBRACKET: typing.ClassVar[Scancode] # value = <Scancode.S_RBRACKET: 48>
@@ -2467,14 +2658,20 @@ class Scancode(enum.IntEnum):
2467
2658
  S_RIGHT: typing.ClassVar[Scancode] # value = <Scancode.S_RIGHT: 79>
2468
2659
  S_RSHIFT: typing.ClassVar[Scancode] # value = <Scancode.S_RSHIFT: 229>
2469
2660
  S_SCRLK: typing.ClassVar[Scancode] # value = <Scancode.S_SCRLK: 71>
2661
+ S_SELECT: typing.ClassVar[Scancode] # value = <Scancode.S_SELECT: 119>
2470
2662
  S_SEMICOLON: typing.ClassVar[Scancode] # value = <Scancode.S_SEMICOLON: 51>
2471
2663
  S_SLASH: typing.ClassVar[Scancode] # value = <Scancode.S_SLASH: 56>
2664
+ S_SLEEP: typing.ClassVar[Scancode] # value = <Scancode.S_SLEEP: 258>
2665
+ S_SOFTLEFT: typing.ClassVar[Scancode] # value = <Scancode.S_SOFTLEFT: 287>
2666
+ S_SOFTRIGHT: typing.ClassVar[Scancode] # value = <Scancode.S_SOFTRIGHT: 288>
2472
2667
  S_SPACE: typing.ClassVar[Scancode] # value = <Scancode.S_SPACE: 44>
2668
+ S_STOP: typing.ClassVar[Scancode] # value = <Scancode.S_STOP: 120>
2473
2669
  S_TAB: typing.ClassVar[Scancode] # value = <Scancode.S_TAB: 43>
2474
2670
  S_UNDO: typing.ClassVar[Scancode] # value = <Scancode.S_UNDO: 122>
2475
2671
  S_UP: typing.ClassVar[Scancode] # value = <Scancode.S_UP: 82>
2476
2672
  S_VOLDOWN: typing.ClassVar[Scancode] # value = <Scancode.S_VOLDOWN: 129>
2477
2673
  S_VOLUP: typing.ClassVar[Scancode] # value = <Scancode.S_VOLUP: 128>
2674
+ S_WAKE: typing.ClassVar[Scancode] # value = <Scancode.S_WAKE: 259>
2478
2675
  S_a: typing.ClassVar[Scancode] # value = <Scancode.S_a: 4>
2479
2676
  S_b: typing.ClassVar[Scancode] # value = <Scancode.S_b: 5>
2480
2677
  S_c: typing.ClassVar[Scancode] # value = <Scancode.S_c: 6>
@@ -2508,6 +2705,187 @@ class Scancode(enum.IntEnum):
2508
2705
  """
2509
2706
  Convert to a string according to format_spec.
2510
2707
  """
2708
+ class ShaderState:
2709
+ """
2710
+ Encapsulates a GPU shader and its associated render state.
2711
+ """
2712
+ def __init__(self, fragment_file_path: str, uniform_buffer_count: typing.SupportsInt = 0, sampler_count: typing.SupportsInt = 1) -> None:
2713
+ """
2714
+ Creates a ShaderState from the specified fragment shader file.
2715
+
2716
+ Parameters:
2717
+ fragment_file_path (str): Path to the fragment shader file.
2718
+ uniform_buffer_count (int, optional): Number of uniform buffers used by the shader. Default is 0.
2719
+ sampler_count (int, optional): Number of samplers used by the shader. Default is 1.
2720
+ """
2721
+ def bind(self) -> None:
2722
+ """
2723
+ Binds this shader state to the current render pass, making it active for subsequent draw calls.
2724
+ """
2725
+ def set_uniform(self, binding: typing.SupportsInt, data: collections.abc.Buffer) -> None:
2726
+ """
2727
+ Sets uniform data for the fragment shader at the specified binding point.
2728
+
2729
+ Parameters:
2730
+ binding (int): The uniform buffer binding index.
2731
+ data (buffer): A buffer or bytes object containing the uniform data to upload.
2732
+ """
2733
+ def unbind(self) -> None:
2734
+ """
2735
+ Unbinds the current shader state, reverting to the default render state.
2736
+ """
2737
+ class SheetStrip:
2738
+ """
2739
+
2740
+ A descriptor for one horizontal strip (row) in a sprite sheet.
2741
+
2742
+ Defines a single animation within a sprite sheet by specifying the animation name,
2743
+ the number of frames to extract from the strip, and the playback speed in frames
2744
+ per second (FPS).
2745
+
2746
+ """
2747
+ def __init__(self, name: str, frame_count: typing.SupportsInt, fps: typing.SupportsInt) -> None:
2748
+ """
2749
+ Create a sprite sheet strip definition.
2750
+
2751
+ Args:
2752
+ name (str): Unique identifier for this animation.
2753
+ frame_count (int): Number of frames to extract from this strip/row.
2754
+ fps (int): Frames per second for playback timing.
2755
+ """
2756
+ @property
2757
+ def fps(self) -> int:
2758
+ """
2759
+ The playback speed in frames per second.
2760
+
2761
+ Determines how fast the animation plays. Higher values result in faster playback.
2762
+
2763
+ Type:
2764
+ int: The frames per second for this animation.
2765
+ """
2766
+ @fps.setter
2767
+ def fps(self, arg0: typing.SupportsInt) -> None:
2768
+ ...
2769
+ @property
2770
+ def frame_count(self) -> int:
2771
+ """
2772
+ The number of frames in this animation strip.
2773
+
2774
+ Specifies how many frames to extract from the horizontal strip in the sprite sheet,
2775
+ reading from left to right.
2776
+
2777
+ Type:
2778
+ int: The number of frames (must be positive).
2779
+ """
2780
+ @frame_count.setter
2781
+ def frame_count(self, arg0: typing.SupportsInt) -> None:
2782
+ ...
2783
+ @property
2784
+ def name(self) -> str:
2785
+ """
2786
+ The unique name identifier for this animation strip.
2787
+
2788
+ Type:
2789
+ str: The animation name used to reference this strip.
2790
+ """
2791
+ @name.setter
2792
+ def name(self, arg0: str) -> None:
2793
+ ...
2794
+ class Text:
2795
+ """
2796
+
2797
+ A text object for rendering text to the active renderer.
2798
+
2799
+ This class handles the rendered text instance. You must provide a Font object
2800
+ when creating a Text instance.
2801
+
2802
+ Note:
2803
+ A window/renderer must be created before using text. Typically you should
2804
+ call kn.window.create(...) first, which initializes the text engine.
2805
+
2806
+ """
2807
+ def __init__(self, font: Font) -> None:
2808
+ """
2809
+ Create a Text object.
2810
+
2811
+ Args:
2812
+ font (Font): The font to use for rendering this text.
2813
+
2814
+ Raises:
2815
+ RuntimeError: If text creation fails.
2816
+ """
2817
+ def draw(self, pos: typing.Any = None, anchor: Anchor = Anchor.TOP_LEFT) -> None:
2818
+ """
2819
+ Draw the text to the renderer at the specified position with alignment.
2820
+
2821
+ Args:
2822
+ pos (Vec2 | None): The position in pixels. Defaults to (0, 0).
2823
+ anchor (Anchor): The anchor point for alignment. Defaults to TopLeft.
2824
+ """
2825
+ def get_rect(self) -> Rect:
2826
+ """
2827
+ Get the bounding rectangle of the current text.
2828
+
2829
+ Returns:
2830
+ Rect: A rectangle with x=0, y=0, and width/height of the text.
2831
+ """
2832
+ def set_font(self, font: Font) -> None:
2833
+ """
2834
+ Set the font to use for rendering this text.
2835
+
2836
+ Args:
2837
+ font (Font): The font to use.
2838
+ """
2839
+ @property
2840
+ def color(self) -> Color:
2841
+ """
2842
+ Get or set the color of the rendered text.
2843
+ """
2844
+ @color.setter
2845
+ def color(self, arg1: Color) -> None:
2846
+ ...
2847
+ @property
2848
+ def height(self) -> int:
2849
+ """
2850
+ Get the height in pixels of the current text.
2851
+
2852
+ Returns:
2853
+ int: The text height.
2854
+ """
2855
+ @property
2856
+ def size(self) -> Vec2:
2857
+ """
2858
+ Get the size (width, height) of the current text as a Vec2.
2859
+
2860
+ Returns:
2861
+ Vec2: The text dimensions.
2862
+ """
2863
+ @property
2864
+ def text(self) -> str:
2865
+ """
2866
+ Get or set the text string to be rendered.
2867
+ """
2868
+ @text.setter
2869
+ def text(self, arg1: str) -> None:
2870
+ ...
2871
+ @property
2872
+ def width(self) -> int:
2873
+ """
2874
+ Get the width in pixels of the current text.
2875
+
2876
+ Returns:
2877
+ int: The text width.
2878
+ """
2879
+ @property
2880
+ def wrap_width(self) -> int:
2881
+ """
2882
+ Get or set the wrap width in pixels for text wrapping.
2883
+
2884
+ Set to 0 to disable wrapping. Negative values are clamped to 0.
2885
+ """
2886
+ @wrap_width.setter
2887
+ def wrap_width(self, arg1: typing.SupportsInt) -> None:
2888
+ ...
2511
2889
  class Texture:
2512
2890
  """
2513
2891
 
@@ -2645,9 +3023,6 @@ class Tile:
2645
3023
  """
2646
3024
 
2647
3025
  Represents a single tile instance in a layer.
2648
-
2649
- Contains source and destination rectangles, a collider, flip flags, rotation angle,
2650
- and a reference to its owning Layer.
2651
3026
 
2652
3027
  """
2653
3028
  @property
@@ -2676,7 +3051,7 @@ class Tile:
2676
3051
  Whether the tile is flipped horizontally.
2677
3052
  """
2678
3053
  @property
2679
- def layer(self) -> Layer:
3054
+ def layer(self) -> TileLayer:
2680
3055
  """
2681
3056
  Get the owning Layer.
2682
3057
 
@@ -2693,6 +3068,76 @@ class Tile:
2693
3068
  """
2694
3069
  Whether the tile is flipped vertically.
2695
3070
  """
3071
+ class TileLayer:
3072
+ """
3073
+
3074
+ A layer of a tile map.
3075
+
3076
+ Layers can be either tile layers or object layers and contain a list of tiles.
3077
+
3078
+ """
3079
+ class Type(enum.IntEnum):
3080
+ """
3081
+
3082
+ The type of a Layer.
3083
+
3084
+ """
3085
+ OBJECT: typing.ClassVar[TileLayer.Type] # value = <Type.OBJECT: 0>
3086
+ TILE: typing.ClassVar[TileLayer.Type] # value = <Type.TILE: 1>
3087
+ @classmethod
3088
+ def __new__(cls, value):
3089
+ ...
3090
+ def __format__(self, format_spec):
3091
+ """
3092
+ Convert to a string according to format_spec.
3093
+ """
3094
+ OBJECT: typing.ClassVar[TileLayer.Type] # value = <Type.OBJECT: 0>
3095
+ TILE: typing.ClassVar[TileLayer.Type] # value = <Type.TILE: 1>
3096
+ def get_from_area(self, area: Rect) -> list[Tile]:
3097
+ """
3098
+ Get all tiles whose destination rectangles fall within a query rect.
3099
+
3100
+ Args:
3101
+ area (Rect): The world-space rectangle to test.
3102
+
3103
+ Returns:
3104
+ list[Tile]: Tiles intersecting the given area.
3105
+ """
3106
+ def get_tile_at(self, column: typing.SupportsInt, row: typing.SupportsInt) -> pykraken._core.Tile | None:
3107
+ """
3108
+ Get the tile located at the specified grid coordinates.
3109
+
3110
+ Args:
3111
+ column (int): The tile column index.
3112
+ row (int): The tile row index.
3113
+
3114
+ Returns:
3115
+ Tile | None: The tile at the grid coordinate, or None if empty/out of range.
3116
+ """
3117
+ def render(self) -> None:
3118
+ """
3119
+ Render the layer.
3120
+ """
3121
+ @property
3122
+ def is_visible(self) -> bool:
3123
+ """
3124
+ Whether the layer is visible.
3125
+ """
3126
+ @property
3127
+ def name(self) -> str:
3128
+ """
3129
+ The name of the layer.
3130
+ """
3131
+ @property
3132
+ def tiles(self) -> list[Tile]:
3133
+ """
3134
+ The list of Tile instances contained in this layer.
3135
+ """
3136
+ @property
3137
+ def type(self) -> TileLayer.Type:
3138
+ """
3139
+ The layer type (OBJECT or TILE).
3140
+ """
2696
3141
  class TileMap:
2697
3142
  """
2698
3143
 
@@ -2702,7 +3147,7 @@ class TileMap:
2702
3147
 
2703
3148
  """
2704
3149
  @staticmethod
2705
- def get_tile_collection(layers: collections.abc.Sequence[Layer]) -> list[Tile]:
3150
+ def get_tile_collection(layers: collections.abc.Sequence[TileLayer]) -> list[Tile]:
2706
3151
  """
2707
3152
  Collect all tiles from the provided layers into a single list.
2708
3153
 
@@ -2723,7 +3168,7 @@ class TileMap:
2723
3168
  Raises:
2724
3169
  RuntimeError: If the TMX or TSX files cannot be loaded or parsed.
2725
3170
  """
2726
- def get_layer(self, name: str, type: Layer.Type = Layer.Type.TILE) -> Layer:
3171
+ def get_layer(self, name: str, type: TileLayer.Type = TileLayer.Type.TILE) -> TileLayer:
2727
3172
  """
2728
3173
  Get a layer by name and type.
2729
3174
 
@@ -2737,7 +3182,7 @@ class TileMap:
2737
3182
  Raises:
2738
3183
  ValueError: If no matching layer is found or the type doesn't match.
2739
3184
  """
2740
- def get_layers(self) -> list[Layer]:
3185
+ def get_layers(self) -> list[TileLayer]:
2741
3186
  """
2742
3187
  Get all layers in the map.
2743
3188
 
@@ -3227,11 +3672,12 @@ AUDIO_DEVICE_REMOVED: EventType # value = <EventType.AUDIO_DEVICE_REMOVED: 4353
3227
3672
  BOTTOM_LEFT: Anchor # value = <Anchor.BOTTOM_LEFT: 6>
3228
3673
  BOTTOM_MID: Anchor # value = <Anchor.BOTTOM_MID: 7>
3229
3674
  BOTTOM_RIGHT: Anchor # value = <Anchor.BOTTOM_RIGHT: 8>
3230
- CAMERA_ADDED: EventType # value = <EventType.CAMERA_ADDED: 5120>
3231
- CAMERA_APPROVED: EventType # value = <EventType.CAMERA_APPROVED: 5122>
3232
- CAMERA_DENIED: EventType # value = <EventType.CAMERA_DENIED: 5123>
3233
- CAMERA_REMOVED: EventType # value = <EventType.CAMERA_REMOVED: 5121>
3675
+ CAMERA_DEVICE_ADDED: EventType # value = <EventType.CAMERA_DEVICE_ADDED: 5120>
3676
+ CAMERA_DEVICE_APPROVED: EventType # value = <EventType.CAMERA_DEVICE_APPROVED: 5122>
3677
+ CAMERA_DEVICE_DENIED: EventType # value = <EventType.CAMERA_DEVICE_DENIED: 5123>
3678
+ CAMERA_DEVICE_REMOVED: EventType # value = <EventType.CAMERA_DEVICE_REMOVED: 5121>
3234
3679
  CENTER: Anchor # value = <Anchor.CENTER: 4>
3680
+ CLIPBOARD_UPDATE: EventType # value = <EventType.CLIPBOARD_UPDATE: 2304>
3235
3681
  C_BACK: GamepadButton # value = <GamepadButton.C_BACK: 4>
3236
3682
  C_DPAD_DOWN: GamepadButton # value = <GamepadButton.C_DPAD_DOWN: 12>
3237
3683
  C_DPAD_LEFT: GamepadButton # value = <GamepadButton.C_DPAD_LEFT: 13>
@@ -3263,21 +3709,39 @@ C_SWITCH_PRO: GamepadType # value = <GamepadType.C_SWITCH_PRO: 7>
3263
3709
  C_WEST: GamepadButton # value = <GamepadButton.C_WEST: 2>
3264
3710
  C_XBOX_360: GamepadType # value = <GamepadType.C_XBOX_360: 2>
3265
3711
  C_XBOX_ONE: GamepadType # value = <GamepadType.C_XBOX_ONE: 3>
3712
+ DID_ENTER_BACKGROUND: EventType # value = <EventType.DID_ENTER_BACKGROUND: 260>
3713
+ DID_ENTER_FOREGROUND: EventType # value = <EventType.DID_ENTER_FOREGROUND: 262>
3714
+ DISPLAY_ADDED: EventType # value = <EventType.DISPLAY_ADDED: 338>
3715
+ DISPLAY_CONTENT_SCALE_CHANGED: EventType # value = <EventType.DISPLAY_CONTENT_SCALE_CHANGED: 343>
3716
+ DISPLAY_CURRENT_MODE_CHANGED: EventType # value = <EventType.DISPLAY_CURRENT_MODE_CHANGED: 342>
3717
+ DISPLAY_DESKTOP_MODE_CHANGED: EventType # value = <EventType.DISPLAY_DESKTOP_MODE_CHANGED: 341>
3718
+ DISPLAY_MOVED: EventType # value = <EventType.DISPLAY_MOVED: 340>
3719
+ DISPLAY_ORIENTATION: EventType # value = <EventType.DISPLAY_ORIENTATION: 337>
3720
+ DISPLAY_REMOVED: EventType # value = <EventType.DISPLAY_REMOVED: 339>
3266
3721
  DROP_BEGIN: EventType # value = <EventType.DROP_BEGIN: 4098>
3267
3722
  DROP_COMPLETE: EventType # value = <EventType.DROP_COMPLETE: 4099>
3268
3723
  DROP_FILE: EventType # value = <EventType.DROP_FILE: 4096>
3269
3724
  DROP_POSITION: EventType # value = <EventType.DROP_POSITION: 4100>
3270
3725
  DROP_TEXT: EventType # value = <EventType.DROP_TEXT: 4097>
3726
+ FINGER_CANCELED: EventType # value = <EventType.FINGER_CANCELED: 1795>
3727
+ FINGER_DOWN: EventType # value = <EventType.FINGER_DOWN: 1792>
3728
+ FINGER_MOTION: EventType # value = <EventType.FINGER_MOTION: 1794>
3729
+ FINGER_UP: EventType # value = <EventType.FINGER_UP: 1793>
3271
3730
  GAMEPAD_ADDED: EventType # value = <EventType.GAMEPAD_ADDED: 1619>
3272
3731
  GAMEPAD_AXIS_MOTION: EventType # value = <EventType.GAMEPAD_AXIS_MOTION: 1616>
3273
3732
  GAMEPAD_BUTTON_DOWN: EventType # value = <EventType.GAMEPAD_BUTTON_DOWN: 1617>
3274
3733
  GAMEPAD_BUTTON_UP: EventType # value = <EventType.GAMEPAD_BUTTON_UP: 1618>
3734
+ GAMEPAD_REMAPPED: EventType # value = <EventType.GAMEPAD_REMAPPED: 1621>
3275
3735
  GAMEPAD_REMOVED: EventType # value = <EventType.GAMEPAD_REMOVED: 1620>
3736
+ GAMEPAD_SENSOR_UPDATE: EventType # value = <EventType.GAMEPAD_SENSOR_UPDATE: 1625>
3737
+ GAMEPAD_STEAM_HANDLE_UPDATED: EventType # value = <EventType.GAMEPAD_STEAM_HANDLE_UPDATED: 1627>
3276
3738
  GAMEPAD_TOUCHPAD_DOWN: EventType # value = <EventType.GAMEPAD_TOUCHPAD_DOWN: 1622>
3277
3739
  GAMEPAD_TOUCHPAD_MOTION: EventType # value = <EventType.GAMEPAD_TOUCHPAD_MOTION: 1623>
3278
3740
  GAMEPAD_TOUCHPAD_UP: EventType # value = <EventType.GAMEPAD_TOUCHPAD_UP: 1624>
3741
+ GAMEPAD_UPDATE_COMPLETE: EventType # value = <EventType.GAMEPAD_UPDATE_COMPLETE: 1626>
3279
3742
  KEYBOARD_ADDED: EventType # value = <EventType.KEYBOARD_ADDED: 773>
3280
3743
  KEYBOARD_REMOVED: EventType # value = <EventType.KEYBOARD_REMOVED: 774>
3744
+ KEYMAP_CHANGED: EventType # value = <EventType.KEYMAP_CHANGED: 772>
3281
3745
  KEY_DOWN: EventType # value = <EventType.KEY_DOWN: 768>
3282
3746
  KEY_UP: EventType # value = <EventType.KEY_UP: 769>
3283
3747
  K_0: Keycode # value = <Keycode.K_0: 48>
@@ -3292,12 +3756,16 @@ K_8: Keycode # value = <Keycode.K_8: 56>
3292
3756
  K_9: Keycode # value = <Keycode.K_9: 57>
3293
3757
  K_AGAIN: Keycode # value = <Keycode.K_AGAIN: 1073741945>
3294
3758
  K_AMPERSAND: Keycode # value = <Keycode.K_AMPERSAND: 38>
3759
+ K_APPLICATION: Keycode # value = <Keycode.K_APPLICATION: 1073741925>
3295
3760
  K_ASTERISK: Keycode # value = <Keycode.K_ASTERISK: 42>
3296
3761
  K_AT: Keycode # value = <Keycode.K_AT: 64>
3297
3762
  K_BACKSLASH: Keycode # value = <Keycode.K_BACKSLASH: 92>
3298
3763
  K_BACKSPACE: Keycode # value = <Keycode.K_BACKSPACE: 8>
3764
+ K_CALL: Keycode # value = <Keycode.K_CALL: 1073742113>
3299
3765
  K_CAPS: Keycode # value = <Keycode.K_CAPS: 1073741881>
3300
3766
  K_CARET: Keycode # value = <Keycode.K_CARET: 94>
3767
+ K_CHANNEL_DEC: Keycode # value = <Keycode.K_CHANNEL_DEC: 1073742085>
3768
+ K_CHANNEL_INC: Keycode # value = <Keycode.K_CHANNEL_INC: 1073742084>
3301
3769
  K_COLON: Keycode # value = <Keycode.K_COLON: 58>
3302
3770
  K_COMMA: Keycode # value = <Keycode.K_COMMA: 44>
3303
3771
  K_COPY: Keycode # value = <Keycode.K_COPY: 1073741948>
@@ -3307,13 +3775,18 @@ K_DEL: Keycode # value = <Keycode.K_DEL: 127>
3307
3775
  K_DOLLAR: Keycode # value = <Keycode.K_DOLLAR: 36>
3308
3776
  K_DOWN: Keycode # value = <Keycode.K_DOWN: 1073741905>
3309
3777
  K_END: Keycode # value = <Keycode.K_END: 1073741901>
3778
+ K_ENDCALL: Keycode # value = <Keycode.K_ENDCALL: 1073742114>
3310
3779
  K_EQ: Keycode # value = <Keycode.K_EQ: 61>
3311
3780
  K_ESC: Keycode # value = <Keycode.K_ESC: 27>
3312
3781
  K_EXCLAIM: Keycode # value = <Keycode.K_EXCLAIM: 33>
3782
+ K_EXECUTE: Keycode # value = <Keycode.K_EXECUTE: 1073741940>
3313
3783
  K_F1: Keycode # value = <Keycode.K_F1: 1073741882>
3314
3784
  K_F10: Keycode # value = <Keycode.K_F10: 1073741891>
3315
3785
  K_F11: Keycode # value = <Keycode.K_F11: 1073741892>
3316
3786
  K_F12: Keycode # value = <Keycode.K_F12: 1073741893>
3787
+ K_F13: Keycode # value = <Keycode.K_F13: 1073741928>
3788
+ K_F14: Keycode # value = <Keycode.K_F14: 1073741929>
3789
+ K_F15: Keycode # value = <Keycode.K_F15: 1073741930>
3317
3790
  K_F2: Keycode # value = <Keycode.K_F2: 1073741883>
3318
3791
  K_F3: Keycode # value = <Keycode.K_F3: 1073741884>
3319
3792
  K_F4: Keycode # value = <Keycode.K_F4: 1073741885>
@@ -3326,6 +3799,7 @@ K_FIND: Keycode # value = <Keycode.K_FIND: 1073741950>
3326
3799
  K_GRAVE: Keycode # value = <Keycode.K_GRAVE: 96>
3327
3800
  K_GT: Keycode # value = <Keycode.K_GT: 62>
3328
3801
  K_HASH: Keycode # value = <Keycode.K_HASH: 35>
3802
+ K_HELP: Keycode # value = <Keycode.K_HELP: 1073741941>
3329
3803
  K_HOME: Keycode # value = <Keycode.K_HOME: 1073741898>
3330
3804
  K_INS: Keycode # value = <Keycode.K_INS: 1073741897>
3331
3805
  K_KP_0: Keycode # value = <Keycode.K_KP_0: 1073741922>
@@ -3353,7 +3827,20 @@ K_LGUI: Keycode # value = <Keycode.K_LGUI: 1073742051>
3353
3827
  K_LPAREN: Keycode # value = <Keycode.K_LPAREN: 40>
3354
3828
  K_LSHIFT: Keycode # value = <Keycode.K_LSHIFT: 1073742049>
3355
3829
  K_LT: Keycode # value = <Keycode.K_LT: 60>
3830
+ K_MEDIA_EJECT: Keycode # value = <Keycode.K_MEDIA_EJECT: 1073742094>
3831
+ K_MEDIA_FF: Keycode # value = <Keycode.K_MEDIA_FF: 1073742089>
3832
+ K_MEDIA_NEXT: Keycode # value = <Keycode.K_MEDIA_NEXT: 1073742091>
3833
+ K_MEDIA_PAUSE: Keycode # value = <Keycode.K_MEDIA_PAUSE: 1073742087>
3834
+ K_MEDIA_PLAY: Keycode # value = <Keycode.K_MEDIA_PLAY: 1073742086>
3835
+ K_MEDIA_PLAY_PAUSE: Keycode # value = <Keycode.K_MEDIA_PLAY_PAUSE: 1073742095>
3836
+ K_MEDIA_PREV: Keycode # value = <Keycode.K_MEDIA_PREV: 1073742092>
3837
+ K_MEDIA_REC: Keycode # value = <Keycode.K_MEDIA_REC: 1073742088>
3838
+ K_MEDIA_REWIND: Keycode # value = <Keycode.K_MEDIA_REWIND: 1073742090>
3839
+ K_MEDIA_SELECT: Keycode # value = <Keycode.K_MEDIA_SELECT: 1073742096>
3840
+ K_MEDIA_STOP: Keycode # value = <Keycode.K_MEDIA_STOP: 1073742093>
3841
+ K_MENU: Keycode # value = <Keycode.K_MENU: 1073741942>
3356
3842
  K_MINUS: Keycode # value = <Keycode.K_MINUS: 45>
3843
+ K_MODE: Keycode # value = <Keycode.K_MODE: 1073742081>
3357
3844
  K_MUTE: Keycode # value = <Keycode.K_MUTE: 1073741951>
3358
3845
  K_NUMLOCK: Keycode # value = <Keycode.K_NUMLOCK: 1073741907>
3359
3846
  K_PASTE: Keycode # value = <Keycode.K_PASTE: 1073741949>
@@ -3364,6 +3851,7 @@ K_PGDOWN: Keycode # value = <Keycode.K_PGDOWN: 1073741902>
3364
3851
  K_PGUP: Keycode # value = <Keycode.K_PGUP: 1073741899>
3365
3852
  K_PIPE: Keycode # value = <Keycode.K_PIPE: 124>
3366
3853
  K_PLUS: Keycode # value = <Keycode.K_PLUS: 43>
3854
+ K_POWER: Keycode # value = <Keycode.K_POWER: 1073741926>
3367
3855
  K_PRTSCR: Keycode # value = <Keycode.K_PRTSCR: 1073741894>
3368
3856
  K_QUESTION: Keycode # value = <Keycode.K_QUESTION: 63>
3369
3857
  K_RALT: Keycode # value = <Keycode.K_RALT: 1073742054>
@@ -3376,17 +3864,24 @@ K_RIGHT: Keycode # value = <Keycode.K_RIGHT: 1073741903>
3376
3864
  K_RPAREN: Keycode # value = <Keycode.K_RPAREN: 41>
3377
3865
  K_RSHIFT: Keycode # value = <Keycode.K_RSHIFT: 1073742053>
3378
3866
  K_SCRLK: Keycode # value = <Keycode.K_SCRLK: 1073741895>
3867
+ K_SELECT: Keycode # value = <Keycode.K_SELECT: 1073741943>
3379
3868
  K_SEMICOLON: Keycode # value = <Keycode.K_SEMICOLON: 59>
3380
3869
  K_SGLQUOTE: Keycode # value = <Keycode.K_SGLQUOTE: 39>
3381
3870
  K_SLASH: Keycode # value = <Keycode.K_SLASH: 47>
3871
+ K_SLEEP: Keycode # value = <Keycode.K_SLEEP: 1073742082>
3872
+ K_SOFTLEFT: Keycode # value = <Keycode.K_SOFTLEFT: 1073742111>
3873
+ K_SOFTRIGHT: Keycode # value = <Keycode.K_SOFTRIGHT: 1073742112>
3382
3874
  K_SPACE: Keycode # value = <Keycode.K_SPACE: 32>
3875
+ K_STOP: Keycode # value = <Keycode.K_STOP: 1073741944>
3383
3876
  K_TAB: Keycode # value = <Keycode.K_TAB: 9>
3384
3877
  K_TILDE: Keycode # value = <Keycode.K_TILDE: 126>
3385
3878
  K_UNDERSCORE: Keycode # value = <Keycode.K_UNDERSCORE: 95>
3386
3879
  K_UNDO: Keycode # value = <Keycode.K_UNDO: 1073741946>
3880
+ K_UNKNOWN: Keycode # value = <Keycode.K_UNKNOWN: 0>
3387
3881
  K_UP: Keycode # value = <Keycode.K_UP: 1073741906>
3388
3882
  K_VOLDOWN: Keycode # value = <Keycode.K_VOLDOWN: 1073741953>
3389
3883
  K_VOLUP: Keycode # value = <Keycode.K_VOLUP: 1073741952>
3884
+ K_WAKE: Keycode # value = <Keycode.K_WAKE: 1073742083>
3390
3885
  K_a: Keycode # value = <Keycode.K_a: 97>
3391
3886
  K_b: Keycode # value = <Keycode.K_b: 98>
3392
3887
  K_c: Keycode # value = <Keycode.K_c: 99>
@@ -3413,6 +3908,8 @@ K_w: Keycode # value = <Keycode.K_w: 119>
3413
3908
  K_x: Keycode # value = <Keycode.K_x: 120>
3414
3909
  K_y: Keycode # value = <Keycode.K_y: 121>
3415
3910
  K_z: Keycode # value = <Keycode.K_z: 122>
3911
+ LOCALE_CHANGED: EventType # value = <EventType.LOCALE_CHANGED: 263>
3912
+ LOW_MEMORY: EventType # value = <EventType.LOW_MEMORY: 258>
3416
3913
  MID_LEFT: Anchor # value = <Anchor.MID_LEFT: 3>
3417
3914
  MID_RIGHT: Anchor # value = <Anchor.MID_RIGHT: 5>
3418
3915
  MOUSE_ADDED: EventType # value = <EventType.MOUSE_ADDED: 1028>
@@ -3442,6 +3939,11 @@ P_TANGENTIAL_PRESSURE: PenAxis # value = <PenAxis.P_TANGENTIAL_PRESSURE: 6>
3442
3939
  P_TILT_X: PenAxis # value = <PenAxis.P_TILT_X: 1>
3443
3940
  P_TILT_Y: PenAxis # value = <PenAxis.P_TILT_Y: 2>
3444
3941
  QUIT: EventType # value = <EventType.QUIT: 256>
3942
+ RENDER_DEVICE_LOST: EventType # value = <EventType.RENDER_DEVICE_LOST: 8194>
3943
+ RENDER_DEVICE_RESET: EventType # value = <EventType.RENDER_DEVICE_RESET: 8193>
3944
+ RENDER_TARGETS_RESET: EventType # value = <EventType.RENDER_TARGETS_RESET: 8192>
3945
+ SENSOR_UPDATE: EventType # value = <EventType.SENSOR_UPDATE: 4608>
3946
+ SYSTEM_THEME_CHANGED: EventType # value = <EventType.SYSTEM_THEME_CHANGED: 264>
3445
3947
  S_0: Scancode # value = <Scancode.S_0: 39>
3446
3948
  S_1: Scancode # value = <Scancode.S_1: 30>
3447
3949
  S_2: Scancode # value = <Scancode.S_2: 31>
@@ -3454,21 +3956,30 @@ S_8: Scancode # value = <Scancode.S_8: 37>
3454
3956
  S_9: Scancode # value = <Scancode.S_9: 38>
3455
3957
  S_AGAIN: Scancode # value = <Scancode.S_AGAIN: 121>
3456
3958
  S_APOSTROPHE: Scancode # value = <Scancode.S_APOSTROPHE: 52>
3959
+ S_APPLICATION: Scancode # value = <Scancode.S_APPLICATION: 101>
3457
3960
  S_BACKSLASH: Scancode # value = <Scancode.S_BACKSLASH: 49>
3458
3961
  S_BACKSPACE: Scancode # value = <Scancode.S_BACKSPACE: 42>
3962
+ S_CALL: Scancode # value = <Scancode.S_CALL: 289>
3459
3963
  S_CAPS: Scancode # value = <Scancode.S_CAPS: 57>
3964
+ S_CHANNEL_DEC: Scancode # value = <Scancode.S_CHANNEL_DEC: 261>
3965
+ S_CHANNEL_INC: Scancode # value = <Scancode.S_CHANNEL_INC: 260>
3460
3966
  S_COMMA: Scancode # value = <Scancode.S_COMMA: 54>
3461
3967
  S_COPY: Scancode # value = <Scancode.S_COPY: 124>
3462
3968
  S_CUT: Scancode # value = <Scancode.S_CUT: 123>
3463
3969
  S_DEL: Scancode # value = <Scancode.S_DEL: 76>
3464
3970
  S_DOWN: Scancode # value = <Scancode.S_DOWN: 81>
3465
3971
  S_END: Scancode # value = <Scancode.S_END: 77>
3972
+ S_ENDCALL: Scancode # value = <Scancode.S_ENDCALL: 290>
3466
3973
  S_EQ: Scancode # value = <Scancode.S_EQ: 46>
3467
3974
  S_ESC: Scancode # value = <Scancode.S_ESC: 41>
3975
+ S_EXECUTE: Scancode # value = <Scancode.S_EXECUTE: 116>
3468
3976
  S_F1: Scancode # value = <Scancode.S_F1: 58>
3469
3977
  S_F10: Scancode # value = <Scancode.S_F10: 67>
3470
3978
  S_F11: Scancode # value = <Scancode.S_F11: 68>
3471
3979
  S_F12: Scancode # value = <Scancode.S_F12: 69>
3980
+ S_F13: Scancode # value = <Scancode.S_F13: 104>
3981
+ S_F14: Scancode # value = <Scancode.S_F14: 105>
3982
+ S_F15: Scancode # value = <Scancode.S_F15: 106>
3472
3983
  S_F2: Scancode # value = <Scancode.S_F2: 59>
3473
3984
  S_F3: Scancode # value = <Scancode.S_F3: 60>
3474
3985
  S_F4: Scancode # value = <Scancode.S_F4: 61>
@@ -3479,6 +3990,7 @@ S_F8: Scancode # value = <Scancode.S_F8: 65>
3479
3990
  S_F9: Scancode # value = <Scancode.S_F9: 66>
3480
3991
  S_FIND: Scancode # value = <Scancode.S_FIND: 126>
3481
3992
  S_GRAVE: Scancode # value = <Scancode.S_GRAVE: 53>
3993
+ S_HELP: Scancode # value = <Scancode.S_HELP: 117>
3482
3994
  S_HOME: Scancode # value = <Scancode.S_HOME: 74>
3483
3995
  S_INS: Scancode # value = <Scancode.S_INS: 73>
3484
3996
  S_KP_0: Scancode # value = <Scancode.S_KP_0: 98>
@@ -3503,7 +4015,20 @@ S_LCTRL: Scancode # value = <Scancode.S_LCTRL: 224>
3503
4015
  S_LEFT: Scancode # value = <Scancode.S_LEFT: 80>
3504
4016
  S_LGUI: Scancode # value = <Scancode.S_LGUI: 227>
3505
4017
  S_LSHIFT: Scancode # value = <Scancode.S_LSHIFT: 225>
4018
+ S_MEDIA_EJECT: Scancode # value = <Scancode.S_MEDIA_EJECT: 270>
4019
+ S_MEDIA_FAST_FORWARD: Scancode # value = <Scancode.S_MEDIA_FAST_FORWARD: 265>
4020
+ S_MEDIA_NEXT: Scancode # value = <Scancode.S_MEDIA_NEXT: 267>
4021
+ S_MEDIA_PAUSE: Scancode # value = <Scancode.S_MEDIA_PAUSE: 263>
4022
+ S_MEDIA_PLAY: Scancode # value = <Scancode.S_MEDIA_PLAY: 262>
4023
+ S_MEDIA_PLAY_PAUSE: Scancode # value = <Scancode.S_MEDIA_PLAY_PAUSE: 271>
4024
+ S_MEDIA_PREV: Scancode # value = <Scancode.S_MEDIA_PREV: 268>
4025
+ S_MEDIA_REC: Scancode # value = <Scancode.S_MEDIA_REC: 264>
4026
+ S_MEDIA_REWIND: Scancode # value = <Scancode.S_MEDIA_REWIND: 266>
4027
+ S_MEDIA_SELECT: Scancode # value = <Scancode.S_MEDIA_SELECT: 272>
4028
+ S_MEDIA_STOP: Scancode # value = <Scancode.S_MEDIA_STOP: 269>
4029
+ S_MENU: Scancode # value = <Scancode.S_MENU: 118>
3506
4030
  S_MINUS: Scancode # value = <Scancode.S_MINUS: 45>
4031
+ S_MODE: Scancode # value = <Scancode.S_MODE: 257>
3507
4032
  S_MUTE: Scancode # value = <Scancode.S_MUTE: 127>
3508
4033
  S_NUMLOCK: Scancode # value = <Scancode.S_NUMLOCK: 83>
3509
4034
  S_PASTE: Scancode # value = <Scancode.S_PASTE: 125>
@@ -3511,6 +4036,7 @@ S_PAUSE: Scancode # value = <Scancode.S_PAUSE: 72>
3511
4036
  S_PERIOD: Scancode # value = <Scancode.S_PERIOD: 55>
3512
4037
  S_PGDOWN: Scancode # value = <Scancode.S_PGDOWN: 78>
3513
4038
  S_PGUP: Scancode # value = <Scancode.S_PGUP: 75>
4039
+ S_POWER: Scancode # value = <Scancode.S_POWER: 102>
3514
4040
  S_PRTSCR: Scancode # value = <Scancode.S_PRTSCR: 70>
3515
4041
  S_RALT: Scancode # value = <Scancode.S_RALT: 230>
3516
4042
  S_RBRACKET: Scancode # value = <Scancode.S_RBRACKET: 48>
@@ -3520,14 +4046,20 @@ S_RGUI: Scancode # value = <Scancode.S_RGUI: 231>
3520
4046
  S_RIGHT: Scancode # value = <Scancode.S_RIGHT: 79>
3521
4047
  S_RSHIFT: Scancode # value = <Scancode.S_RSHIFT: 229>
3522
4048
  S_SCRLK: Scancode # value = <Scancode.S_SCRLK: 71>
4049
+ S_SELECT: Scancode # value = <Scancode.S_SELECT: 119>
3523
4050
  S_SEMICOLON: Scancode # value = <Scancode.S_SEMICOLON: 51>
3524
4051
  S_SLASH: Scancode # value = <Scancode.S_SLASH: 56>
4052
+ S_SLEEP: Scancode # value = <Scancode.S_SLEEP: 258>
4053
+ S_SOFTLEFT: Scancode # value = <Scancode.S_SOFTLEFT: 287>
4054
+ S_SOFTRIGHT: Scancode # value = <Scancode.S_SOFTRIGHT: 288>
3525
4055
  S_SPACE: Scancode # value = <Scancode.S_SPACE: 44>
4056
+ S_STOP: Scancode # value = <Scancode.S_STOP: 120>
3526
4057
  S_TAB: Scancode # value = <Scancode.S_TAB: 43>
3527
4058
  S_UNDO: Scancode # value = <Scancode.S_UNDO: 122>
3528
4059
  S_UP: Scancode # value = <Scancode.S_UP: 82>
3529
4060
  S_VOLDOWN: Scancode # value = <Scancode.S_VOLDOWN: 129>
3530
4061
  S_VOLUP: Scancode # value = <Scancode.S_VOLUP: 128>
4062
+ S_WAKE: Scancode # value = <Scancode.S_WAKE: 259>
3531
4063
  S_a: Scancode # value = <Scancode.S_a: 4>
3532
4064
  S_b: Scancode # value = <Scancode.S_b: 5>
3533
4065
  S_c: Scancode # value = <Scancode.S_c: 6>
@@ -3554,16 +4086,27 @@ S_w: Scancode # value = <Scancode.S_w: 26>
3554
4086
  S_x: Scancode # value = <Scancode.S_x: 27>
3555
4087
  S_y: Scancode # value = <Scancode.S_y: 28>
3556
4088
  S_z: Scancode # value = <Scancode.S_z: 29>
4089
+ TERMINATING: EventType # value = <EventType.TERMINATING: 257>
3557
4090
  TEXT_EDITING: EventType # value = <EventType.TEXT_EDITING: 770>
4091
+ TEXT_EDITING_CANDIDATES: EventType # value = <EventType.TEXT_EDITING_CANDIDATES: 775>
3558
4092
  TEXT_INPUT: EventType # value = <EventType.TEXT_INPUT: 771>
3559
4093
  TOP_LEFT: Anchor # value = <Anchor.TOP_LEFT: 0>
3560
4094
  TOP_MID: Anchor # value = <Anchor.TOP_MID: 1>
3561
4095
  TOP_RIGHT: Anchor # value = <Anchor.TOP_RIGHT: 2>
4096
+ WILL_ENTER_BACKGROUND: EventType # value = <EventType.WILL_ENTER_BACKGROUND: 259>
4097
+ WILL_ENTER_FOREGROUND: EventType # value = <EventType.WILL_ENTER_FOREGROUND: 261>
4098
+ WINDOW_CLOSE_REQUESTED: EventType # value = <EventType.WINDOW_CLOSE_REQUESTED: 528>
4099
+ WINDOW_DESTROYED: EventType # value = <EventType.WINDOW_DESTROYED: 537>
4100
+ WINDOW_DISPLAY_CHANGED: EventType # value = <EventType.WINDOW_DISPLAY_CHANGED: 531>
4101
+ WINDOW_DISPLAY_SCALE_CHANGED: EventType # value = <EventType.WINDOW_DISPLAY_SCALE_CHANGED: 532>
3562
4102
  WINDOW_ENTER_FULLSCREEN: EventType # value = <EventType.WINDOW_ENTER_FULLSCREEN: 535>
3563
4103
  WINDOW_EXPOSED: EventType # value = <EventType.WINDOW_EXPOSED: 516>
3564
4104
  WINDOW_FOCUS_GAINED: EventType # value = <EventType.WINDOW_FOCUS_GAINED: 526>
3565
4105
  WINDOW_FOCUS_LOST: EventType # value = <EventType.WINDOW_FOCUS_LOST: 527>
4106
+ WINDOW_HDR_STATE_CHANGED: EventType # value = <EventType.WINDOW_HDR_STATE_CHANGED: 538>
3566
4107
  WINDOW_HIDDEN: EventType # value = <EventType.WINDOW_HIDDEN: 515>
4108
+ WINDOW_HIT_TEST: EventType # value = <EventType.WINDOW_HIT_TEST: 529>
4109
+ WINDOW_ICCPROF_CHANGED: EventType # value = <EventType.WINDOW_ICCPROF_CHANGED: 530>
3567
4110
  WINDOW_LEAVE_FULLSCREEN: EventType # value = <EventType.WINDOW_LEAVE_FULLSCREEN: 536>
3568
4111
  WINDOW_MAXIMIZED: EventType # value = <EventType.WINDOW_MAXIMIZED: 522>
3569
4112
  WINDOW_MINIMIZED: EventType # value = <EventType.WINDOW_MINIMIZED: 521>
@@ -3573,4 +4116,5 @@ WINDOW_MOVED: EventType # value = <EventType.WINDOW_MOVED: 517>
3573
4116
  WINDOW_OCCLUDED: EventType # value = <EventType.WINDOW_OCCLUDED: 534>
3574
4117
  WINDOW_RESIZED: EventType # value = <EventType.WINDOW_RESIZED: 518>
3575
4118
  WINDOW_RESTORED: EventType # value = <EventType.WINDOW_RESTORED: 523>
4119
+ WINDOW_SAFE_AREA_CHANGED: EventType # value = <EventType.WINDOW_SAFE_AREA_CHANGED: 533>
3576
4120
  WINDOW_SHOWN: EventType # value = <EventType.WINDOW_SHOWN: 514>