kraken-engine 0.4.0__cp312-cp312-win_amd64.whl → 1.1.0__cp312-cp312-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.

Potentially problematic release.


This version of kraken-engine might be problematic. Click here for more details.

@@ -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,7 @@ 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', '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', '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', 'TERMINATING', 'TEXT_EDITING', 'TEXT_EDITING_CANDIDATES', 'TEXT_INPUT', 'TOP_LEFT', 'TOP_MID', 'TOP_RIGHT', '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']
21
22
  class Anchor(enum.IntEnum):
22
23
  BOTTOM_LEFT: typing.ClassVar[Anchor] # value = <Anchor.BOTTOM_LEFT: 6>
23
24
  BOTTOM_MID: typing.ClassVar[Anchor] # value = <Anchor.BOTTOM_MID: 7>
@@ -419,41 +420,6 @@ class Circle:
419
420
  """
420
421
  Return the smallest rectangle that fully contains the circle.
421
422
  """
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
423
  def copy(self) -> Circle:
458
424
  """
459
425
  Return a copy of the circle.
@@ -492,6 +458,17 @@ class Color:
492
458
  Each channel (r, g, b, a) is an 8-bit unsigned integer.
493
459
 
494
460
  """
461
+ __hash__: typing.ClassVar[None] = None
462
+ def __eq__(self, other: Color) -> bool:
463
+ """
464
+ Check if two Color objects are equal (all RGBA components match).
465
+
466
+ Args:
467
+ other (Color): The color to compare with.
468
+
469
+ Returns:
470
+ bool: True if colors are identical, False otherwise.
471
+ """
495
472
  def __getitem__(self, index: typing.SupportsInt) -> int:
496
473
  """
497
474
  Access color channels by index.
@@ -522,14 +499,22 @@ class Color:
522
499
  a (int, optional): Alpha value [0-255]. Defaults to 255.
523
500
  """
524
501
  @typing.overload
525
- def __init__(self, arg0: typing.Any) -> None:
502
+ def __init__(self, hex: str) -> None:
526
503
  """
527
- Create a Color from a hex string or a sequence of RGB(A) integers.
504
+ Create a Color from a hex string.
528
505
 
529
- Examples:
530
- Color("#ff00ff")
531
- Color([255, 0, 255])
532
- Color((255, 0, 255, 128))
506
+ Args:
507
+ hex (str): Hex color string (with or without '#' prefix).
508
+ """
509
+ @typing.overload
510
+ def __init__(self, sequence: collections.abc.Sequence) -> None:
511
+ """
512
+ Create a Color from a sequence of RGB(A) integers.
513
+
514
+ Args:
515
+ sequence (list or tuple): A sequence of 3 or 4 integers [0-255].
516
+ - 3 values: RGB (alpha defaults to 255)
517
+ - 4 values: RGBA
533
518
  """
534
519
  def __iter__(self) -> collections.abc.Iterator:
535
520
  """
@@ -549,6 +534,40 @@ class Color:
549
534
  Returns:
550
535
  int: Always returns 4 (for r, g, b, a channels).
551
536
  """
537
+ def __mul__(self, scalar: typing.SupportsFloat) -> Color:
538
+ """
539
+ Multiply RGB color channels by a scalar value.
540
+
541
+ Multiplies each RGB component by the scalar. Results are clamped to [0, 255].
542
+ The alpha channel is preserved unchanged.
543
+ Negative scalars invert the color before applying the absolute value.
544
+
545
+ Args:
546
+ scalar (float): Scalar multiplier (any positive or negative value).
547
+
548
+ Returns:
549
+ Color: New Color with scaled RGB values and original alpha.
550
+ """
551
+ def __ne__(self, other: Color) -> bool:
552
+ """
553
+ Check if two Color objects are not equal.
554
+
555
+ Args:
556
+ other (Color): The color to compare with.
557
+
558
+ Returns:
559
+ bool: True if any component differs, False otherwise.
560
+ """
561
+ def __neg__(self) -> Color:
562
+ """
563
+ Unary negation operator to invert the color.
564
+
565
+ Returns the inverted color by flipping RGB channels (255 - value).
566
+ The alpha channel is preserved unchanged.
567
+
568
+ Returns:
569
+ Color: New Color with inverted RGB values and original alpha.
570
+ """
552
571
  def __repr__(self) -> str:
553
572
  """
554
573
  Return a string suitable for debugging and recreation.
@@ -556,6 +575,20 @@ class Color:
556
575
  Returns:
557
576
  str: String in format "Color(r, g, b, a)" that can recreate the object.
558
577
  """
578
+ def __rmul__(self, scalar: typing.SupportsFloat) -> Color:
579
+ """
580
+ Multiply RGB color channels by a scalar value (reverse multiplication).
581
+
582
+ Allows scalar * color syntax in addition to color * scalar.
583
+ Results are clamped to [0, 255]. The alpha channel is preserved unchanged.
584
+ Negative scalars invert the color before applying the absolute value.
585
+
586
+ Args:
587
+ scalar (float): Scalar multiplier (any positive or negative value).
588
+
589
+ Returns:
590
+ Color: New Color with scaled RGB values and original alpha.
591
+ """
559
592
  def __setitem__(self, index: typing.SupportsInt, value: typing.SupportsInt) -> None:
560
593
  """
561
594
  Set a color channel by index.
@@ -574,6 +607,23 @@ class Color:
574
607
  Returns:
575
608
  str: String in format "(r, g, b, a)" with integer values.
576
609
  """
610
+ def __truediv__(self, scalar: typing.SupportsFloat) -> Color:
611
+ """
612
+ Divide RGB color channels by a scalar value.
613
+
614
+ Divides each RGB component by the scalar. Results are clamped to [0, 255].
615
+ The alpha channel is preserved unchanged.
616
+ Negative scalars invert the color before applying the absolute value.
617
+
618
+ Args:
619
+ scalar (float): Scalar divisor (any positive or negative value except 0).
620
+
621
+ Returns:
622
+ Color: New Color with divided RGB values and original alpha.
623
+
624
+ Raises:
625
+ ValueError: If scalar is zero.
626
+ """
577
627
  def copy(self) -> Color:
578
628
  """
579
629
  Create a copy of the color.
@@ -739,27 +789,48 @@ class EventType(enum.IntEnum):
739
789
  AUDIO_DEVICE_ADDED: typing.ClassVar[EventType] # value = <EventType.AUDIO_DEVICE_ADDED: 4352>
740
790
  AUDIO_DEVICE_FORMAT_CHANGED: typing.ClassVar[EventType] # value = <EventType.AUDIO_DEVICE_FORMAT_CHANGED: 4354>
741
791
  AUDIO_DEVICE_REMOVED: typing.ClassVar[EventType] # value = <EventType.AUDIO_DEVICE_REMOVED: 4353>
742
- CAMERA_ADDED: typing.ClassVar[EventType] # value = <EventType.CAMERA_ADDED: 5120>
743
- CAMERA_APPROVED: typing.ClassVar[EventType] # value = <EventType.CAMERA_APPROVED: 5122>
744
- CAMERA_DENIED: typing.ClassVar[EventType] # value = <EventType.CAMERA_DENIED: 5123>
745
- CAMERA_REMOVED: typing.ClassVar[EventType] # value = <EventType.CAMERA_REMOVED: 5121>
792
+ CAMERA_DEVICE_ADDED: typing.ClassVar[EventType] # value = <EventType.CAMERA_DEVICE_ADDED: 5120>
793
+ CAMERA_DEVICE_APPROVED: typing.ClassVar[EventType] # value = <EventType.CAMERA_DEVICE_APPROVED: 5122>
794
+ CAMERA_DEVICE_DENIED: typing.ClassVar[EventType] # value = <EventType.CAMERA_DEVICE_DENIED: 5123>
795
+ CAMERA_DEVICE_REMOVED: typing.ClassVar[EventType] # value = <EventType.CAMERA_DEVICE_REMOVED: 5121>
796
+ CLIPBOARD_UPDATE: typing.ClassVar[EventType] # value = <EventType.CLIPBOARD_UPDATE: 2304>
797
+ DID_ENTER_BACKGROUND: typing.ClassVar[EventType] # value = <EventType.DID_ENTER_BACKGROUND: 260>
798
+ DID_ENTER_FOREGROUND: typing.ClassVar[EventType] # value = <EventType.DID_ENTER_FOREGROUND: 262>
799
+ DISPLAY_ADDED: typing.ClassVar[EventType] # value = <EventType.DISPLAY_ADDED: 338>
800
+ DISPLAY_CONTENT_SCALE_CHANGED: typing.ClassVar[EventType] # value = <EventType.DISPLAY_CONTENT_SCALE_CHANGED: 343>
801
+ DISPLAY_CURRENT_MODE_CHANGED: typing.ClassVar[EventType] # value = <EventType.DISPLAY_CURRENT_MODE_CHANGED: 342>
802
+ DISPLAY_DESKTOP_MODE_CHANGED: typing.ClassVar[EventType] # value = <EventType.DISPLAY_DESKTOP_MODE_CHANGED: 341>
803
+ DISPLAY_MOVED: typing.ClassVar[EventType] # value = <EventType.DISPLAY_MOVED: 340>
804
+ DISPLAY_ORIENTATION: typing.ClassVar[EventType] # value = <EventType.DISPLAY_ORIENTATION: 337>
805
+ DISPLAY_REMOVED: typing.ClassVar[EventType] # value = <EventType.DISPLAY_REMOVED: 339>
746
806
  DROP_BEGIN: typing.ClassVar[EventType] # value = <EventType.DROP_BEGIN: 4098>
747
807
  DROP_COMPLETE: typing.ClassVar[EventType] # value = <EventType.DROP_COMPLETE: 4099>
748
808
  DROP_FILE: typing.ClassVar[EventType] # value = <EventType.DROP_FILE: 4096>
749
809
  DROP_POSITION: typing.ClassVar[EventType] # value = <EventType.DROP_POSITION: 4100>
750
810
  DROP_TEXT: typing.ClassVar[EventType] # value = <EventType.DROP_TEXT: 4097>
811
+ FINGER_CANCELED: typing.ClassVar[EventType] # value = <EventType.FINGER_CANCELED: 1795>
812
+ FINGER_DOWN: typing.ClassVar[EventType] # value = <EventType.FINGER_DOWN: 1792>
813
+ FINGER_MOTION: typing.ClassVar[EventType] # value = <EventType.FINGER_MOTION: 1794>
814
+ FINGER_UP: typing.ClassVar[EventType] # value = <EventType.FINGER_UP: 1793>
751
815
  GAMEPAD_ADDED: typing.ClassVar[EventType] # value = <EventType.GAMEPAD_ADDED: 1619>
752
816
  GAMEPAD_AXIS_MOTION: typing.ClassVar[EventType] # value = <EventType.GAMEPAD_AXIS_MOTION: 1616>
753
817
  GAMEPAD_BUTTON_DOWN: typing.ClassVar[EventType] # value = <EventType.GAMEPAD_BUTTON_DOWN: 1617>
754
818
  GAMEPAD_BUTTON_UP: typing.ClassVar[EventType] # value = <EventType.GAMEPAD_BUTTON_UP: 1618>
819
+ GAMEPAD_REMAPPED: typing.ClassVar[EventType] # value = <EventType.GAMEPAD_REMAPPED: 1621>
755
820
  GAMEPAD_REMOVED: typing.ClassVar[EventType] # value = <EventType.GAMEPAD_REMOVED: 1620>
821
+ GAMEPAD_SENSOR_UPDATE: typing.ClassVar[EventType] # value = <EventType.GAMEPAD_SENSOR_UPDATE: 1625>
822
+ GAMEPAD_STEAM_HANDLE_UPDATED: typing.ClassVar[EventType] # value = <EventType.GAMEPAD_STEAM_HANDLE_UPDATED: 1627>
756
823
  GAMEPAD_TOUCHPAD_DOWN: typing.ClassVar[EventType] # value = <EventType.GAMEPAD_TOUCHPAD_DOWN: 1622>
757
824
  GAMEPAD_TOUCHPAD_MOTION: typing.ClassVar[EventType] # value = <EventType.GAMEPAD_TOUCHPAD_MOTION: 1623>
758
825
  GAMEPAD_TOUCHPAD_UP: typing.ClassVar[EventType] # value = <EventType.GAMEPAD_TOUCHPAD_UP: 1624>
826
+ GAMEPAD_UPDATE_COMPLETE: typing.ClassVar[EventType] # value = <EventType.GAMEPAD_UPDATE_COMPLETE: 1626>
759
827
  KEYBOARD_ADDED: typing.ClassVar[EventType] # value = <EventType.KEYBOARD_ADDED: 773>
760
828
  KEYBOARD_REMOVED: typing.ClassVar[EventType] # value = <EventType.KEYBOARD_REMOVED: 774>
829
+ KEYMAP_CHANGED: typing.ClassVar[EventType] # value = <EventType.KEYMAP_CHANGED: 772>
761
830
  KEY_DOWN: typing.ClassVar[EventType] # value = <EventType.KEY_DOWN: 768>
762
831
  KEY_UP: typing.ClassVar[EventType] # value = <EventType.KEY_UP: 769>
832
+ LOCALE_CHANGED: typing.ClassVar[EventType] # value = <EventType.LOCALE_CHANGED: 263>
833
+ LOW_MEMORY: typing.ClassVar[EventType] # value = <EventType.LOW_MEMORY: 258>
763
834
  MOUSE_ADDED: typing.ClassVar[EventType] # value = <EventType.MOUSE_ADDED: 1028>
764
835
  MOUSE_BUTTON_DOWN: typing.ClassVar[EventType] # value = <EventType.MOUSE_BUTTON_DOWN: 1025>
765
836
  MOUSE_BUTTON_UP: typing.ClassVar[EventType] # value = <EventType.MOUSE_BUTTON_UP: 1026>
@@ -775,13 +846,29 @@ class EventType(enum.IntEnum):
775
846
  PEN_PROXIMITY_OUT: typing.ClassVar[EventType] # value = <EventType.PEN_PROXIMITY_OUT: 4865>
776
847
  PEN_UP: typing.ClassVar[EventType] # value = <EventType.PEN_UP: 4867>
777
848
  QUIT: typing.ClassVar[EventType] # value = <EventType.QUIT: 256>
849
+ RENDER_DEVICE_LOST: typing.ClassVar[EventType] # value = <EventType.RENDER_DEVICE_LOST: 8194>
850
+ RENDER_DEVICE_RESET: typing.ClassVar[EventType] # value = <EventType.RENDER_DEVICE_RESET: 8193>
851
+ RENDER_TARGETS_RESET: typing.ClassVar[EventType] # value = <EventType.RENDER_TARGETS_RESET: 8192>
852
+ SENSOR_UPDATE: typing.ClassVar[EventType] # value = <EventType.SENSOR_UPDATE: 4608>
853
+ SYSTEM_THEME_CHANGED: typing.ClassVar[EventType] # value = <EventType.SYSTEM_THEME_CHANGED: 264>
854
+ TERMINATING: typing.ClassVar[EventType] # value = <EventType.TERMINATING: 257>
778
855
  TEXT_EDITING: typing.ClassVar[EventType] # value = <EventType.TEXT_EDITING: 770>
856
+ TEXT_EDITING_CANDIDATES: typing.ClassVar[EventType] # value = <EventType.TEXT_EDITING_CANDIDATES: 775>
779
857
  TEXT_INPUT: typing.ClassVar[EventType] # value = <EventType.TEXT_INPUT: 771>
858
+ WILL_ENTER_BACKGROUND: typing.ClassVar[EventType] # value = <EventType.WILL_ENTER_BACKGROUND: 259>
859
+ WILL_ENTER_FOREGROUND: typing.ClassVar[EventType] # value = <EventType.WILL_ENTER_FOREGROUND: 261>
860
+ WINDOW_CLOSE_REQUESTED: typing.ClassVar[EventType] # value = <EventType.WINDOW_CLOSE_REQUESTED: 528>
861
+ WINDOW_DESTROYED: typing.ClassVar[EventType] # value = <EventType.WINDOW_DESTROYED: 537>
862
+ WINDOW_DISPLAY_CHANGED: typing.ClassVar[EventType] # value = <EventType.WINDOW_DISPLAY_CHANGED: 531>
863
+ WINDOW_DISPLAY_SCALE_CHANGED: typing.ClassVar[EventType] # value = <EventType.WINDOW_DISPLAY_SCALE_CHANGED: 532>
780
864
  WINDOW_ENTER_FULLSCREEN: typing.ClassVar[EventType] # value = <EventType.WINDOW_ENTER_FULLSCREEN: 535>
781
865
  WINDOW_EXPOSED: typing.ClassVar[EventType] # value = <EventType.WINDOW_EXPOSED: 516>
782
866
  WINDOW_FOCUS_GAINED: typing.ClassVar[EventType] # value = <EventType.WINDOW_FOCUS_GAINED: 526>
783
867
  WINDOW_FOCUS_LOST: typing.ClassVar[EventType] # value = <EventType.WINDOW_FOCUS_LOST: 527>
868
+ WINDOW_HDR_STATE_CHANGED: typing.ClassVar[EventType] # value = <EventType.WINDOW_HDR_STATE_CHANGED: 538>
784
869
  WINDOW_HIDDEN: typing.ClassVar[EventType] # value = <EventType.WINDOW_HIDDEN: 515>
870
+ WINDOW_HIT_TEST: typing.ClassVar[EventType] # value = <EventType.WINDOW_HIT_TEST: 529>
871
+ WINDOW_ICCPROF_CHANGED: typing.ClassVar[EventType] # value = <EventType.WINDOW_ICCPROF_CHANGED: 530>
785
872
  WINDOW_LEAVE_FULLSCREEN: typing.ClassVar[EventType] # value = <EventType.WINDOW_LEAVE_FULLSCREEN: 536>
786
873
  WINDOW_MAXIMIZED: typing.ClassVar[EventType] # value = <EventType.WINDOW_MAXIMIZED: 522>
787
874
  WINDOW_MINIMIZED: typing.ClassVar[EventType] # value = <EventType.WINDOW_MINIMIZED: 521>
@@ -791,6 +878,7 @@ class EventType(enum.IntEnum):
791
878
  WINDOW_OCCLUDED: typing.ClassVar[EventType] # value = <EventType.WINDOW_OCCLUDED: 534>
792
879
  WINDOW_RESIZED: typing.ClassVar[EventType] # value = <EventType.WINDOW_RESIZED: 518>
793
880
  WINDOW_RESTORED: typing.ClassVar[EventType] # value = <EventType.WINDOW_RESTORED: 523>
881
+ WINDOW_SAFE_AREA_CHANGED: typing.ClassVar[EventType] # value = <EventType.WINDOW_SAFE_AREA_CHANGED: 533>
794
882
  WINDOW_SHOWN: typing.ClassVar[EventType] # value = <EventType.WINDOW_SHOWN: 514>
795
883
  @classmethod
796
884
  def __new__(cls, value):
@@ -1031,12 +1119,16 @@ class Keycode(enum.IntEnum):
1031
1119
  K_9: typing.ClassVar[Keycode] # value = <Keycode.K_9: 57>
1032
1120
  K_AGAIN: typing.ClassVar[Keycode] # value = <Keycode.K_AGAIN: 1073741945>
1033
1121
  K_AMPERSAND: typing.ClassVar[Keycode] # value = <Keycode.K_AMPERSAND: 38>
1122
+ K_APPLICATION: typing.ClassVar[Keycode] # value = <Keycode.K_APPLICATION: 1073741925>
1034
1123
  K_ASTERISK: typing.ClassVar[Keycode] # value = <Keycode.K_ASTERISK: 42>
1035
1124
  K_AT: typing.ClassVar[Keycode] # value = <Keycode.K_AT: 64>
1036
1125
  K_BACKSLASH: typing.ClassVar[Keycode] # value = <Keycode.K_BACKSLASH: 92>
1037
1126
  K_BACKSPACE: typing.ClassVar[Keycode] # value = <Keycode.K_BACKSPACE: 8>
1127
+ K_CALL: typing.ClassVar[Keycode] # value = <Keycode.K_CALL: 1073742113>
1038
1128
  K_CAPS: typing.ClassVar[Keycode] # value = <Keycode.K_CAPS: 1073741881>
1039
1129
  K_CARET: typing.ClassVar[Keycode] # value = <Keycode.K_CARET: 94>
1130
+ K_CHANNEL_DEC: typing.ClassVar[Keycode] # value = <Keycode.K_CHANNEL_DEC: 1073742085>
1131
+ K_CHANNEL_INC: typing.ClassVar[Keycode] # value = <Keycode.K_CHANNEL_INC: 1073742084>
1040
1132
  K_COLON: typing.ClassVar[Keycode] # value = <Keycode.K_COLON: 58>
1041
1133
  K_COMMA: typing.ClassVar[Keycode] # value = <Keycode.K_COMMA: 44>
1042
1134
  K_COPY: typing.ClassVar[Keycode] # value = <Keycode.K_COPY: 1073741948>
@@ -1046,13 +1138,18 @@ class Keycode(enum.IntEnum):
1046
1138
  K_DOLLAR: typing.ClassVar[Keycode] # value = <Keycode.K_DOLLAR: 36>
1047
1139
  K_DOWN: typing.ClassVar[Keycode] # value = <Keycode.K_DOWN: 1073741905>
1048
1140
  K_END: typing.ClassVar[Keycode] # value = <Keycode.K_END: 1073741901>
1141
+ K_ENDCALL: typing.ClassVar[Keycode] # value = <Keycode.K_ENDCALL: 1073742114>
1049
1142
  K_EQ: typing.ClassVar[Keycode] # value = <Keycode.K_EQ: 61>
1050
1143
  K_ESC: typing.ClassVar[Keycode] # value = <Keycode.K_ESC: 27>
1051
1144
  K_EXCLAIM: typing.ClassVar[Keycode] # value = <Keycode.K_EXCLAIM: 33>
1145
+ K_EXECUTE: typing.ClassVar[Keycode] # value = <Keycode.K_EXECUTE: 1073741940>
1052
1146
  K_F1: typing.ClassVar[Keycode] # value = <Keycode.K_F1: 1073741882>
1053
1147
  K_F10: typing.ClassVar[Keycode] # value = <Keycode.K_F10: 1073741891>
1054
1148
  K_F11: typing.ClassVar[Keycode] # value = <Keycode.K_F11: 1073741892>
1055
1149
  K_F12: typing.ClassVar[Keycode] # value = <Keycode.K_F12: 1073741893>
1150
+ K_F13: typing.ClassVar[Keycode] # value = <Keycode.K_F13: 1073741928>
1151
+ K_F14: typing.ClassVar[Keycode] # value = <Keycode.K_F14: 1073741929>
1152
+ K_F15: typing.ClassVar[Keycode] # value = <Keycode.K_F15: 1073741930>
1056
1153
  K_F2: typing.ClassVar[Keycode] # value = <Keycode.K_F2: 1073741883>
1057
1154
  K_F3: typing.ClassVar[Keycode] # value = <Keycode.K_F3: 1073741884>
1058
1155
  K_F4: typing.ClassVar[Keycode] # value = <Keycode.K_F4: 1073741885>
@@ -1065,6 +1162,7 @@ class Keycode(enum.IntEnum):
1065
1162
  K_GRAVE: typing.ClassVar[Keycode] # value = <Keycode.K_GRAVE: 96>
1066
1163
  K_GT: typing.ClassVar[Keycode] # value = <Keycode.K_GT: 62>
1067
1164
  K_HASH: typing.ClassVar[Keycode] # value = <Keycode.K_HASH: 35>
1165
+ K_HELP: typing.ClassVar[Keycode] # value = <Keycode.K_HELP: 1073741941>
1068
1166
  K_HOME: typing.ClassVar[Keycode] # value = <Keycode.K_HOME: 1073741898>
1069
1167
  K_INS: typing.ClassVar[Keycode] # value = <Keycode.K_INS: 1073741897>
1070
1168
  K_KP_0: typing.ClassVar[Keycode] # value = <Keycode.K_KP_0: 1073741922>
@@ -1092,7 +1190,20 @@ class Keycode(enum.IntEnum):
1092
1190
  K_LPAREN: typing.ClassVar[Keycode] # value = <Keycode.K_LPAREN: 40>
1093
1191
  K_LSHIFT: typing.ClassVar[Keycode] # value = <Keycode.K_LSHIFT: 1073742049>
1094
1192
  K_LT: typing.ClassVar[Keycode] # value = <Keycode.K_LT: 60>
1193
+ K_MEDIA_EJECT: typing.ClassVar[Keycode] # value = <Keycode.K_MEDIA_EJECT: 1073742094>
1194
+ K_MEDIA_FF: typing.ClassVar[Keycode] # value = <Keycode.K_MEDIA_FF: 1073742089>
1195
+ K_MEDIA_NEXT: typing.ClassVar[Keycode] # value = <Keycode.K_MEDIA_NEXT: 1073742091>
1196
+ K_MEDIA_PAUSE: typing.ClassVar[Keycode] # value = <Keycode.K_MEDIA_PAUSE: 1073742087>
1197
+ K_MEDIA_PLAY: typing.ClassVar[Keycode] # value = <Keycode.K_MEDIA_PLAY: 1073742086>
1198
+ K_MEDIA_PLAY_PAUSE: typing.ClassVar[Keycode] # value = <Keycode.K_MEDIA_PLAY_PAUSE: 1073742095>
1199
+ K_MEDIA_PREV: typing.ClassVar[Keycode] # value = <Keycode.K_MEDIA_PREV: 1073742092>
1200
+ K_MEDIA_REC: typing.ClassVar[Keycode] # value = <Keycode.K_MEDIA_REC: 1073742088>
1201
+ K_MEDIA_REWIND: typing.ClassVar[Keycode] # value = <Keycode.K_MEDIA_REWIND: 1073742090>
1202
+ K_MEDIA_SELECT: typing.ClassVar[Keycode] # value = <Keycode.K_MEDIA_SELECT: 1073742096>
1203
+ K_MEDIA_STOP: typing.ClassVar[Keycode] # value = <Keycode.K_MEDIA_STOP: 1073742093>
1204
+ K_MENU: typing.ClassVar[Keycode] # value = <Keycode.K_MENU: 1073741942>
1095
1205
  K_MINUS: typing.ClassVar[Keycode] # value = <Keycode.K_MINUS: 45>
1206
+ K_MODE: typing.ClassVar[Keycode] # value = <Keycode.K_MODE: 1073742081>
1096
1207
  K_MUTE: typing.ClassVar[Keycode] # value = <Keycode.K_MUTE: 1073741951>
1097
1208
  K_NUMLOCK: typing.ClassVar[Keycode] # value = <Keycode.K_NUMLOCK: 1073741907>
1098
1209
  K_PASTE: typing.ClassVar[Keycode] # value = <Keycode.K_PASTE: 1073741949>
@@ -1103,6 +1214,7 @@ class Keycode(enum.IntEnum):
1103
1214
  K_PGUP: typing.ClassVar[Keycode] # value = <Keycode.K_PGUP: 1073741899>
1104
1215
  K_PIPE: typing.ClassVar[Keycode] # value = <Keycode.K_PIPE: 124>
1105
1216
  K_PLUS: typing.ClassVar[Keycode] # value = <Keycode.K_PLUS: 43>
1217
+ K_POWER: typing.ClassVar[Keycode] # value = <Keycode.K_POWER: 1073741926>
1106
1218
  K_PRTSCR: typing.ClassVar[Keycode] # value = <Keycode.K_PRTSCR: 1073741894>
1107
1219
  K_QUESTION: typing.ClassVar[Keycode] # value = <Keycode.K_QUESTION: 63>
1108
1220
  K_RALT: typing.ClassVar[Keycode] # value = <Keycode.K_RALT: 1073742054>
@@ -1115,17 +1227,24 @@ class Keycode(enum.IntEnum):
1115
1227
  K_RPAREN: typing.ClassVar[Keycode] # value = <Keycode.K_RPAREN: 41>
1116
1228
  K_RSHIFT: typing.ClassVar[Keycode] # value = <Keycode.K_RSHIFT: 1073742053>
1117
1229
  K_SCRLK: typing.ClassVar[Keycode] # value = <Keycode.K_SCRLK: 1073741895>
1230
+ K_SELECT: typing.ClassVar[Keycode] # value = <Keycode.K_SELECT: 1073741943>
1118
1231
  K_SEMICOLON: typing.ClassVar[Keycode] # value = <Keycode.K_SEMICOLON: 59>
1119
1232
  K_SGLQUOTE: typing.ClassVar[Keycode] # value = <Keycode.K_SGLQUOTE: 39>
1120
1233
  K_SLASH: typing.ClassVar[Keycode] # value = <Keycode.K_SLASH: 47>
1234
+ K_SLEEP: typing.ClassVar[Keycode] # value = <Keycode.K_SLEEP: 1073742082>
1235
+ K_SOFTLEFT: typing.ClassVar[Keycode] # value = <Keycode.K_SOFTLEFT: 1073742111>
1236
+ K_SOFTRIGHT: typing.ClassVar[Keycode] # value = <Keycode.K_SOFTRIGHT: 1073742112>
1121
1237
  K_SPACE: typing.ClassVar[Keycode] # value = <Keycode.K_SPACE: 32>
1238
+ K_STOP: typing.ClassVar[Keycode] # value = <Keycode.K_STOP: 1073741944>
1122
1239
  K_TAB: typing.ClassVar[Keycode] # value = <Keycode.K_TAB: 9>
1123
1240
  K_TILDE: typing.ClassVar[Keycode] # value = <Keycode.K_TILDE: 126>
1124
1241
  K_UNDERSCORE: typing.ClassVar[Keycode] # value = <Keycode.K_UNDERSCORE: 95>
1125
1242
  K_UNDO: typing.ClassVar[Keycode] # value = <Keycode.K_UNDO: 1073741946>
1243
+ K_UNKNOWN: typing.ClassVar[Keycode] # value = <Keycode.K_UNKNOWN: 0>
1126
1244
  K_UP: typing.ClassVar[Keycode] # value = <Keycode.K_UP: 1073741906>
1127
1245
  K_VOLDOWN: typing.ClassVar[Keycode] # value = <Keycode.K_VOLDOWN: 1073741953>
1128
1246
  K_VOLUP: typing.ClassVar[Keycode] # value = <Keycode.K_VOLUP: 1073741952>
1247
+ K_WAKE: typing.ClassVar[Keycode] # value = <Keycode.K_WAKE: 1073742083>
1129
1248
  K_a: typing.ClassVar[Keycode] # value = <Keycode.K_a: 97>
1130
1249
  K_b: typing.ClassVar[Keycode] # value = <Keycode.K_b: 98>
1131
1250
  K_c: typing.ClassVar[Keycode] # value = <Keycode.K_c: 99>
@@ -1159,55 +1278,6 @@ class Keycode(enum.IntEnum):
1159
1278
  """
1160
1279
  Convert to a string according to format_spec.
1161
1280
  """
1162
- class Layer:
1163
- """
1164
-
1165
- A layer within a tile map.
1166
-
1167
- Layers can be either tile layers or object layers and contain a list of tiles.
1168
-
1169
- """
1170
- class Type(enum.IntEnum):
1171
- """
1172
-
1173
- The type of a Layer.
1174
-
1175
- """
1176
- OBJECT: typing.ClassVar[Layer.Type] # value = <Type.OBJECT: 0>
1177
- TILE: typing.ClassVar[Layer.Type] # value = <Type.TILE: 1>
1178
- @classmethod
1179
- def __new__(cls, value):
1180
- ...
1181
- def __format__(self, format_spec):
1182
- """
1183
- Convert to a string according to format_spec.
1184
- """
1185
- OBJECT: typing.ClassVar[Layer.Type] # value = <Type.OBJECT: 0>
1186
- TILE: typing.ClassVar[Layer.Type] # value = <Type.TILE: 1>
1187
- def render(self) -> None:
1188
- """
1189
- Render the layer.
1190
- """
1191
- @property
1192
- def is_visible(self) -> bool:
1193
- """
1194
- Whether the layer is visible.
1195
- """
1196
- @property
1197
- def name(self) -> str:
1198
- """
1199
- The name of the layer.
1200
- """
1201
- @property
1202
- def tiles(self) -> list[Tile]:
1203
- """
1204
- The list of Tile instances contained in this layer.
1205
- """
1206
- @property
1207
- def type(self) -> Layer.Type:
1208
- """
1209
- The layer type (OBJECT or TILE).
1210
- """
1211
1281
  class Line:
1212
1282
  """
1213
1283
 
@@ -1530,6 +1600,10 @@ class Mask:
1530
1600
  Raises:
1531
1601
  RuntimeError: If pixel array creation fails.
1532
1602
  """
1603
+ def get_rect(self) -> Rect:
1604
+ """
1605
+ Get the bounding rectangle of the mask starting at (0, 0).
1606
+ """
1533
1607
  def invert(self) -> None:
1534
1608
  """
1535
1609
  Invert all pixels in the mask.
@@ -1567,11 +1641,6 @@ class Mask:
1567
1641
  The height of the mask in pixels.
1568
1642
  """
1569
1643
  @property
1570
- def rect(self) -> Rect:
1571
- """
1572
- The bounding rectangle of the mask starting at (0, 0).
1573
- """
1574
- @property
1575
1644
  def size(self) -> Vec2:
1576
1645
  """
1577
1646
  The size of the mask as a Vec2.
@@ -1698,6 +1767,13 @@ class PixelArray:
1698
1767
  Raises:
1699
1768
  IndexError: If coordinates are outside the pixel array bounds.
1700
1769
  """
1770
+ def get_rect(self) -> Rect:
1771
+ """
1772
+ Get a rectangle representing the pixel array bounds.
1773
+
1774
+ Returns:
1775
+ Rect: A rectangle with position (0, 0) and the pixel array's dimensions.
1776
+ """
1701
1777
  def set_at(self, coord: Vec2, color: Color) -> None:
1702
1778
  """
1703
1779
  Set the color of a pixel at the specified coordinates.
@@ -1752,14 +1828,6 @@ class PixelArray:
1752
1828
  int: The pixel array height.
1753
1829
  """
1754
1830
  @property
1755
- def rect(self) -> Rect:
1756
- """
1757
- A rectangle representing the pixel array bounds.
1758
-
1759
- Returns:
1760
- Rect: A rectangle with position (0, 0) and the pixel array's dimensions.
1761
- """
1762
- @property
1763
1831
  def size(self) -> Vec2:
1764
1832
  """
1765
1833
  The size of the pixel array as a Vec2.
@@ -1946,17 +2014,6 @@ class Polygon:
1946
2014
  Args:
1947
2015
  points (list[Vec2]): List of Vec2 points defining the polygon vertices.
1948
2016
  """
1949
- @typing.overload
1950
- def __init__(self, points: collections.abc.Sequence) -> None:
1951
- """
1952
- Create a polygon from a sequence of points.
1953
-
1954
- Args:
1955
- points: A sequence of Vec2 objects or 2-element sequences [[x, y], ...].
1956
-
1957
- Raises:
1958
- ValueError: If points are not properly formatted.
1959
- """
1960
2017
  def __iter__(self) -> collections.abc.Iterator:
1961
2018
  """
1962
2019
  Return an iterator over the polygon's points.
@@ -2140,36 +2197,6 @@ class Rect:
2140
2197
  Raises:
2141
2198
  ValueError: If min >= max or rectangle is larger than the clamp area.
2142
2199
  """
2143
- def collide_point(self, point: Vec2) -> bool:
2144
- """
2145
- Check if a point is inside this rectangle.
2146
-
2147
- Args:
2148
- point (Vec2): The point to check.
2149
-
2150
- Returns:
2151
- bool: True if the point is inside this rectangle.
2152
- """
2153
- def collide_rect(self, other: Rect) -> bool:
2154
- """
2155
- Check if this rectangle collides with another rectangle.
2156
-
2157
- Args:
2158
- other (Rect): The rectangle to check collision with.
2159
-
2160
- Returns:
2161
- bool: True if the rectangles overlap.
2162
- """
2163
- def contains(self, other: Rect) -> bool:
2164
- """
2165
- Check if this rectangle completely contains another rectangle.
2166
-
2167
- Args:
2168
- other (Rect): The rectangle to check.
2169
-
2170
- Returns:
2171
- bool: True if this rectangle completely contains the other.
2172
- """
2173
2200
  def copy(self) -> Rect:
2174
2201
  """
2175
2202
  Create a copy of this rectangle.
@@ -2393,21 +2420,30 @@ class Scancode(enum.IntEnum):
2393
2420
  S_9: typing.ClassVar[Scancode] # value = <Scancode.S_9: 38>
2394
2421
  S_AGAIN: typing.ClassVar[Scancode] # value = <Scancode.S_AGAIN: 121>
2395
2422
  S_APOSTROPHE: typing.ClassVar[Scancode] # value = <Scancode.S_APOSTROPHE: 52>
2423
+ S_APPLICATION: typing.ClassVar[Scancode] # value = <Scancode.S_APPLICATION: 101>
2396
2424
  S_BACKSLASH: typing.ClassVar[Scancode] # value = <Scancode.S_BACKSLASH: 49>
2397
2425
  S_BACKSPACE: typing.ClassVar[Scancode] # value = <Scancode.S_BACKSPACE: 42>
2426
+ S_CALL: typing.ClassVar[Scancode] # value = <Scancode.S_CALL: 289>
2398
2427
  S_CAPS: typing.ClassVar[Scancode] # value = <Scancode.S_CAPS: 57>
2428
+ S_CHANNEL_DEC: typing.ClassVar[Scancode] # value = <Scancode.S_CHANNEL_DEC: 261>
2429
+ S_CHANNEL_INC: typing.ClassVar[Scancode] # value = <Scancode.S_CHANNEL_INC: 260>
2399
2430
  S_COMMA: typing.ClassVar[Scancode] # value = <Scancode.S_COMMA: 54>
2400
2431
  S_COPY: typing.ClassVar[Scancode] # value = <Scancode.S_COPY: 124>
2401
2432
  S_CUT: typing.ClassVar[Scancode] # value = <Scancode.S_CUT: 123>
2402
2433
  S_DEL: typing.ClassVar[Scancode] # value = <Scancode.S_DEL: 76>
2403
2434
  S_DOWN: typing.ClassVar[Scancode] # value = <Scancode.S_DOWN: 81>
2404
2435
  S_END: typing.ClassVar[Scancode] # value = <Scancode.S_END: 77>
2436
+ S_ENDCALL: typing.ClassVar[Scancode] # value = <Scancode.S_ENDCALL: 290>
2405
2437
  S_EQ: typing.ClassVar[Scancode] # value = <Scancode.S_EQ: 46>
2406
2438
  S_ESC: typing.ClassVar[Scancode] # value = <Scancode.S_ESC: 41>
2439
+ S_EXECUTE: typing.ClassVar[Scancode] # value = <Scancode.S_EXECUTE: 116>
2407
2440
  S_F1: typing.ClassVar[Scancode] # value = <Scancode.S_F1: 58>
2408
2441
  S_F10: typing.ClassVar[Scancode] # value = <Scancode.S_F10: 67>
2409
2442
  S_F11: typing.ClassVar[Scancode] # value = <Scancode.S_F11: 68>
2410
2443
  S_F12: typing.ClassVar[Scancode] # value = <Scancode.S_F12: 69>
2444
+ S_F13: typing.ClassVar[Scancode] # value = <Scancode.S_F13: 104>
2445
+ S_F14: typing.ClassVar[Scancode] # value = <Scancode.S_F14: 105>
2446
+ S_F15: typing.ClassVar[Scancode] # value = <Scancode.S_F15: 106>
2411
2447
  S_F2: typing.ClassVar[Scancode] # value = <Scancode.S_F2: 59>
2412
2448
  S_F3: typing.ClassVar[Scancode] # value = <Scancode.S_F3: 60>
2413
2449
  S_F4: typing.ClassVar[Scancode] # value = <Scancode.S_F4: 61>
@@ -2418,6 +2454,7 @@ class Scancode(enum.IntEnum):
2418
2454
  S_F9: typing.ClassVar[Scancode] # value = <Scancode.S_F9: 66>
2419
2455
  S_FIND: typing.ClassVar[Scancode] # value = <Scancode.S_FIND: 126>
2420
2456
  S_GRAVE: typing.ClassVar[Scancode] # value = <Scancode.S_GRAVE: 53>
2457
+ S_HELP: typing.ClassVar[Scancode] # value = <Scancode.S_HELP: 117>
2421
2458
  S_HOME: typing.ClassVar[Scancode] # value = <Scancode.S_HOME: 74>
2422
2459
  S_INS: typing.ClassVar[Scancode] # value = <Scancode.S_INS: 73>
2423
2460
  S_KP_0: typing.ClassVar[Scancode] # value = <Scancode.S_KP_0: 98>
@@ -2442,7 +2479,20 @@ class Scancode(enum.IntEnum):
2442
2479
  S_LEFT: typing.ClassVar[Scancode] # value = <Scancode.S_LEFT: 80>
2443
2480
  S_LGUI: typing.ClassVar[Scancode] # value = <Scancode.S_LGUI: 227>
2444
2481
  S_LSHIFT: typing.ClassVar[Scancode] # value = <Scancode.S_LSHIFT: 225>
2482
+ S_MEDIA_EJECT: typing.ClassVar[Scancode] # value = <Scancode.S_MEDIA_EJECT: 270>
2483
+ S_MEDIA_FAST_FORWARD: typing.ClassVar[Scancode] # value = <Scancode.S_MEDIA_FAST_FORWARD: 265>
2484
+ S_MEDIA_NEXT: typing.ClassVar[Scancode] # value = <Scancode.S_MEDIA_NEXT: 267>
2485
+ S_MEDIA_PAUSE: typing.ClassVar[Scancode] # value = <Scancode.S_MEDIA_PAUSE: 263>
2486
+ S_MEDIA_PLAY: typing.ClassVar[Scancode] # value = <Scancode.S_MEDIA_PLAY: 262>
2487
+ S_MEDIA_PLAY_PAUSE: typing.ClassVar[Scancode] # value = <Scancode.S_MEDIA_PLAY_PAUSE: 271>
2488
+ S_MEDIA_PREV: typing.ClassVar[Scancode] # value = <Scancode.S_MEDIA_PREV: 268>
2489
+ S_MEDIA_REC: typing.ClassVar[Scancode] # value = <Scancode.S_MEDIA_REC: 264>
2490
+ S_MEDIA_REWIND: typing.ClassVar[Scancode] # value = <Scancode.S_MEDIA_REWIND: 266>
2491
+ S_MEDIA_SELECT: typing.ClassVar[Scancode] # value = <Scancode.S_MEDIA_SELECT: 272>
2492
+ S_MEDIA_STOP: typing.ClassVar[Scancode] # value = <Scancode.S_MEDIA_STOP: 269>
2493
+ S_MENU: typing.ClassVar[Scancode] # value = <Scancode.S_MENU: 118>
2445
2494
  S_MINUS: typing.ClassVar[Scancode] # value = <Scancode.S_MINUS: 45>
2495
+ S_MODE: typing.ClassVar[Scancode] # value = <Scancode.S_MODE: 257>
2446
2496
  S_MUTE: typing.ClassVar[Scancode] # value = <Scancode.S_MUTE: 127>
2447
2497
  S_NUMLOCK: typing.ClassVar[Scancode] # value = <Scancode.S_NUMLOCK: 83>
2448
2498
  S_PASTE: typing.ClassVar[Scancode] # value = <Scancode.S_PASTE: 125>
@@ -2450,6 +2500,7 @@ class Scancode(enum.IntEnum):
2450
2500
  S_PERIOD: typing.ClassVar[Scancode] # value = <Scancode.S_PERIOD: 55>
2451
2501
  S_PGDOWN: typing.ClassVar[Scancode] # value = <Scancode.S_PGDOWN: 78>
2452
2502
  S_PGUP: typing.ClassVar[Scancode] # value = <Scancode.S_PGUP: 75>
2503
+ S_POWER: typing.ClassVar[Scancode] # value = <Scancode.S_POWER: 102>
2453
2504
  S_PRTSCR: typing.ClassVar[Scancode] # value = <Scancode.S_PRTSCR: 70>
2454
2505
  S_RALT: typing.ClassVar[Scancode] # value = <Scancode.S_RALT: 230>
2455
2506
  S_RBRACKET: typing.ClassVar[Scancode] # value = <Scancode.S_RBRACKET: 48>
@@ -2459,14 +2510,20 @@ class Scancode(enum.IntEnum):
2459
2510
  S_RIGHT: typing.ClassVar[Scancode] # value = <Scancode.S_RIGHT: 79>
2460
2511
  S_RSHIFT: typing.ClassVar[Scancode] # value = <Scancode.S_RSHIFT: 229>
2461
2512
  S_SCRLK: typing.ClassVar[Scancode] # value = <Scancode.S_SCRLK: 71>
2513
+ S_SELECT: typing.ClassVar[Scancode] # value = <Scancode.S_SELECT: 119>
2462
2514
  S_SEMICOLON: typing.ClassVar[Scancode] # value = <Scancode.S_SEMICOLON: 51>
2463
2515
  S_SLASH: typing.ClassVar[Scancode] # value = <Scancode.S_SLASH: 56>
2516
+ S_SLEEP: typing.ClassVar[Scancode] # value = <Scancode.S_SLEEP: 258>
2517
+ S_SOFTLEFT: typing.ClassVar[Scancode] # value = <Scancode.S_SOFTLEFT: 287>
2518
+ S_SOFTRIGHT: typing.ClassVar[Scancode] # value = <Scancode.S_SOFTRIGHT: 288>
2464
2519
  S_SPACE: typing.ClassVar[Scancode] # value = <Scancode.S_SPACE: 44>
2520
+ S_STOP: typing.ClassVar[Scancode] # value = <Scancode.S_STOP: 120>
2465
2521
  S_TAB: typing.ClassVar[Scancode] # value = <Scancode.S_TAB: 43>
2466
2522
  S_UNDO: typing.ClassVar[Scancode] # value = <Scancode.S_UNDO: 122>
2467
2523
  S_UP: typing.ClassVar[Scancode] # value = <Scancode.S_UP: 82>
2468
2524
  S_VOLDOWN: typing.ClassVar[Scancode] # value = <Scancode.S_VOLDOWN: 129>
2469
2525
  S_VOLUP: typing.ClassVar[Scancode] # value = <Scancode.S_VOLUP: 128>
2526
+ S_WAKE: typing.ClassVar[Scancode] # value = <Scancode.S_WAKE: 259>
2470
2527
  S_a: typing.ClassVar[Scancode] # value = <Scancode.S_a: 4>
2471
2528
  S_b: typing.ClassVar[Scancode] # value = <Scancode.S_b: 5>
2472
2529
  S_c: typing.ClassVar[Scancode] # value = <Scancode.S_c: 6>
@@ -2500,6 +2557,28 @@ class Scancode(enum.IntEnum):
2500
2557
  """
2501
2558
  Convert to a string according to format_spec.
2502
2559
  """
2560
+ class ShaderState:
2561
+ """
2562
+ Encapsulates a GPU shader and its associated render state.
2563
+ """
2564
+ def __init__(self, fragment_file_path: str, sampler_count: typing.SupportsInt, storage_texture_count: typing.SupportsInt, storage_buffer_count: typing.SupportsInt, uniform_buffer_count: typing.SupportsInt) -> None:
2565
+ ...
2566
+ def bind(self) -> None:
2567
+ """
2568
+ Binds this shader state to the current render pass, making it active for subsequent draw calls.
2569
+ """
2570
+ def set_uniform(self, binding: typing.SupportsInt, data: collections.abc.Buffer) -> None:
2571
+ """
2572
+ Sets uniform data for the fragment shader at the specified binding point.
2573
+
2574
+ Parameters:
2575
+ binding (int): The uniform buffer binding index.
2576
+ data (buffer): A buffer or bytes object containing the uniform data to upload.
2577
+ """
2578
+ def unbind(self) -> None:
2579
+ """
2580
+ Unbinds the current shader state, reverting to the default render state.
2581
+ """
2503
2582
  class Texture:
2504
2583
  """
2505
2584
 
@@ -2562,13 +2641,6 @@ class Texture:
2562
2641
  Raises:
2563
2642
  RuntimeError: If texture creation from pixel array fails.
2564
2643
  """
2565
- def get_alpha(self) -> float:
2566
- """
2567
- Get the current alpha modulation value.
2568
-
2569
- Returns:
2570
- float: The current alpha value.
2571
- """
2572
2644
  def get_rect(self) -> Rect:
2573
2645
  """
2574
2646
  Get a rectangle representing the texture bounds.
@@ -2576,20 +2648,6 @@ class Texture:
2576
2648
  Returns:
2577
2649
  Rect: A rectangle with position (0, 0) and the texture's dimensions.
2578
2650
  """
2579
- def get_size(self) -> Vec2:
2580
- """
2581
- Get the size of the texture.
2582
-
2583
- Returns:
2584
- Vec2: The texture size as (width, height).
2585
- """
2586
- def get_tint(self) -> Color:
2587
- """
2588
- Get the current color tint applied to the texture.
2589
-
2590
- Returns:
2591
- Color: The current tint color.
2592
- """
2593
2651
  def make_additive(self) -> None:
2594
2652
  """
2595
2653
  Set the texture to use additive blending mode.
@@ -2610,30 +2668,20 @@ class Texture:
2610
2668
 
2611
2669
  This is the default blending mode for standard transparency effects.
2612
2670
  """
2613
- def set_alpha(self, alpha: typing.SupportsFloat) -> None:
2614
- """
2615
- Set the alpha (transparency) modulation for the texture.
2616
-
2617
- Args:
2618
- alpha (float): The alpha value, typically in range [0.0, 1.0] where
2619
- 0.0 is fully transparent and 1.0 is fully opaque.
2671
+ @property
2672
+ def alpha(self) -> float:
2620
2673
  """
2621
- def set_tint(self, color: Color) -> None:
2622
- """
2623
- Set the color tint applied to the texture during rendering.
2624
-
2625
- The tint color is multiplied with the texture's pixels, allowing for
2626
- color effects and lighting.
2627
-
2628
- Args:
2629
- color (Color): The tint color to apply.
2674
+ Get or set the alpha modulation of the texture as a float between `0.0` and `1.0`.
2630
2675
  """
2676
+ @alpha.setter
2677
+ def alpha(self, arg1: typing.SupportsFloat) -> None:
2678
+ ...
2631
2679
  @property
2632
2680
  def angle(self) -> float:
2633
2681
  """
2634
- The rotation angle in degrees for rendering.
2682
+ The rotation angle in radians for rendering.
2635
2683
 
2636
- When the texture is drawn, it will be rotated by this angle around its center.
2684
+ When the texture is drawn, it will be rotated by this angle about its center.
2637
2685
  """
2638
2686
  @angle.setter
2639
2687
  def angle(self, arg0: typing.SupportsFloat) -> None:
@@ -2648,6 +2696,22 @@ class Texture:
2648
2696
  @flip.setter
2649
2697
  def flip(self, arg0: Texture.Flip) -> None:
2650
2698
  ...
2699
+ @property
2700
+ def size(self) -> Vec2:
2701
+ """
2702
+ Get the size of the texture.
2703
+
2704
+ Returns:
2705
+ Vec2: The texture size as (width, height).
2706
+ """
2707
+ @property
2708
+ def tint(self) -> Color:
2709
+ """
2710
+ Get or set the color tint applied to the texture during rendering.
2711
+ """
2712
+ @tint.setter
2713
+ def tint(self, arg1: Color) -> None:
2714
+ ...
2651
2715
  class Tile:
2652
2716
  """
2653
2717
 
@@ -2683,7 +2747,7 @@ class Tile:
2683
2747
  Whether the tile is flipped horizontally.
2684
2748
  """
2685
2749
  @property
2686
- def layer(self) -> Layer:
2750
+ def layer(self) -> TileLayer:
2687
2751
  """
2688
2752
  Get the owning Layer.
2689
2753
 
@@ -2700,6 +2764,76 @@ class Tile:
2700
2764
  """
2701
2765
  Whether the tile is flipped vertically.
2702
2766
  """
2767
+ class TileLayer:
2768
+ """
2769
+
2770
+ A layer of a tile map.
2771
+
2772
+ Layers can be either tile layers or object layers and contain a list of tiles.
2773
+
2774
+ """
2775
+ class Type(enum.IntEnum):
2776
+ """
2777
+
2778
+ The type of a Layer.
2779
+
2780
+ """
2781
+ OBJECT: typing.ClassVar[TileLayer.Type] # value = <Type.OBJECT: 0>
2782
+ TILE: typing.ClassVar[TileLayer.Type] # value = <Type.TILE: 1>
2783
+ @classmethod
2784
+ def __new__(cls, value):
2785
+ ...
2786
+ def __format__(self, format_spec):
2787
+ """
2788
+ Convert to a string according to format_spec.
2789
+ """
2790
+ OBJECT: typing.ClassVar[TileLayer.Type] # value = <Type.OBJECT: 0>
2791
+ TILE: typing.ClassVar[TileLayer.Type] # value = <Type.TILE: 1>
2792
+ def get_from_area(self, area: Rect) -> list[Tile]:
2793
+ """
2794
+ Get all tiles whose destination rectangles fall within a query rect.
2795
+
2796
+ Args:
2797
+ area (Rect): The world-space rectangle to test.
2798
+
2799
+ Returns:
2800
+ list[Tile]: Tiles intersecting the given area.
2801
+ """
2802
+ def get_tile_at(self, column: typing.SupportsInt, row: typing.SupportsInt) -> pykraken._core.Tile | None:
2803
+ """
2804
+ Get the tile located at the specified grid coordinates.
2805
+
2806
+ Args:
2807
+ column (int): The tile column index.
2808
+ row (int): The tile row index.
2809
+
2810
+ Returns:
2811
+ Tile | None: The tile at the grid coordinate, or None if empty/out of range.
2812
+ """
2813
+ def render(self) -> None:
2814
+ """
2815
+ Render the layer.
2816
+ """
2817
+ @property
2818
+ def is_visible(self) -> bool:
2819
+ """
2820
+ Whether the layer is visible.
2821
+ """
2822
+ @property
2823
+ def name(self) -> str:
2824
+ """
2825
+ The name of the layer.
2826
+ """
2827
+ @property
2828
+ def tiles(self) -> list[Tile]:
2829
+ """
2830
+ The list of Tile instances contained in this layer.
2831
+ """
2832
+ @property
2833
+ def type(self) -> TileLayer.Type:
2834
+ """
2835
+ The layer type (OBJECT or TILE).
2836
+ """
2703
2837
  class TileMap:
2704
2838
  """
2705
2839
 
@@ -2709,7 +2843,7 @@ class TileMap:
2709
2843
 
2710
2844
  """
2711
2845
  @staticmethod
2712
- def get_tile_collection(layers: collections.abc.Sequence[Layer]) -> list[Tile]:
2846
+ def get_tile_collection(layers: collections.abc.Sequence[TileLayer]) -> list[Tile]:
2713
2847
  """
2714
2848
  Collect all tiles from the provided layers into a single list.
2715
2849
 
@@ -2730,7 +2864,7 @@ class TileMap:
2730
2864
  Raises:
2731
2865
  RuntimeError: If the TMX or TSX files cannot be loaded or parsed.
2732
2866
  """
2733
- def get_layer(self, name: str, type: Layer.Type = Layer.Type.TILE) -> Layer:
2867
+ def get_layer(self, name: str, type: TileLayer.Type = TileLayer.Type.TILE) -> TileLayer:
2734
2868
  """
2735
2869
  Get a layer by name and type.
2736
2870
 
@@ -2744,7 +2878,7 @@ class TileMap:
2744
2878
  Raises:
2745
2879
  ValueError: If no matching layer is found or the type doesn't match.
2746
2880
  """
2747
- def get_layers(self) -> list[Layer]:
2881
+ def get_layers(self) -> list[TileLayer]:
2748
2882
  """
2749
2883
  Get all layers in the map.
2750
2884
 
@@ -3234,11 +3368,12 @@ AUDIO_DEVICE_REMOVED: EventType # value = <EventType.AUDIO_DEVICE_REMOVED: 4353
3234
3368
  BOTTOM_LEFT: Anchor # value = <Anchor.BOTTOM_LEFT: 6>
3235
3369
  BOTTOM_MID: Anchor # value = <Anchor.BOTTOM_MID: 7>
3236
3370
  BOTTOM_RIGHT: Anchor # value = <Anchor.BOTTOM_RIGHT: 8>
3237
- CAMERA_ADDED: EventType # value = <EventType.CAMERA_ADDED: 5120>
3238
- CAMERA_APPROVED: EventType # value = <EventType.CAMERA_APPROVED: 5122>
3239
- CAMERA_DENIED: EventType # value = <EventType.CAMERA_DENIED: 5123>
3240
- CAMERA_REMOVED: EventType # value = <EventType.CAMERA_REMOVED: 5121>
3371
+ CAMERA_DEVICE_ADDED: EventType # value = <EventType.CAMERA_DEVICE_ADDED: 5120>
3372
+ CAMERA_DEVICE_APPROVED: EventType # value = <EventType.CAMERA_DEVICE_APPROVED: 5122>
3373
+ CAMERA_DEVICE_DENIED: EventType # value = <EventType.CAMERA_DEVICE_DENIED: 5123>
3374
+ CAMERA_DEVICE_REMOVED: EventType # value = <EventType.CAMERA_DEVICE_REMOVED: 5121>
3241
3375
  CENTER: Anchor # value = <Anchor.CENTER: 4>
3376
+ CLIPBOARD_UPDATE: EventType # value = <EventType.CLIPBOARD_UPDATE: 2304>
3242
3377
  C_BACK: GamepadButton # value = <GamepadButton.C_BACK: 4>
3243
3378
  C_DPAD_DOWN: GamepadButton # value = <GamepadButton.C_DPAD_DOWN: 12>
3244
3379
  C_DPAD_LEFT: GamepadButton # value = <GamepadButton.C_DPAD_LEFT: 13>
@@ -3270,21 +3405,39 @@ C_SWITCH_PRO: GamepadType # value = <GamepadType.C_SWITCH_PRO: 7>
3270
3405
  C_WEST: GamepadButton # value = <GamepadButton.C_WEST: 2>
3271
3406
  C_XBOX_360: GamepadType # value = <GamepadType.C_XBOX_360: 2>
3272
3407
  C_XBOX_ONE: GamepadType # value = <GamepadType.C_XBOX_ONE: 3>
3408
+ DID_ENTER_BACKGROUND: EventType # value = <EventType.DID_ENTER_BACKGROUND: 260>
3409
+ DID_ENTER_FOREGROUND: EventType # value = <EventType.DID_ENTER_FOREGROUND: 262>
3410
+ DISPLAY_ADDED: EventType # value = <EventType.DISPLAY_ADDED: 338>
3411
+ DISPLAY_CONTENT_SCALE_CHANGED: EventType # value = <EventType.DISPLAY_CONTENT_SCALE_CHANGED: 343>
3412
+ DISPLAY_CURRENT_MODE_CHANGED: EventType # value = <EventType.DISPLAY_CURRENT_MODE_CHANGED: 342>
3413
+ DISPLAY_DESKTOP_MODE_CHANGED: EventType # value = <EventType.DISPLAY_DESKTOP_MODE_CHANGED: 341>
3414
+ DISPLAY_MOVED: EventType # value = <EventType.DISPLAY_MOVED: 340>
3415
+ DISPLAY_ORIENTATION: EventType # value = <EventType.DISPLAY_ORIENTATION: 337>
3416
+ DISPLAY_REMOVED: EventType # value = <EventType.DISPLAY_REMOVED: 339>
3273
3417
  DROP_BEGIN: EventType # value = <EventType.DROP_BEGIN: 4098>
3274
3418
  DROP_COMPLETE: EventType # value = <EventType.DROP_COMPLETE: 4099>
3275
3419
  DROP_FILE: EventType # value = <EventType.DROP_FILE: 4096>
3276
3420
  DROP_POSITION: EventType # value = <EventType.DROP_POSITION: 4100>
3277
3421
  DROP_TEXT: EventType # value = <EventType.DROP_TEXT: 4097>
3422
+ FINGER_CANCELED: EventType # value = <EventType.FINGER_CANCELED: 1795>
3423
+ FINGER_DOWN: EventType # value = <EventType.FINGER_DOWN: 1792>
3424
+ FINGER_MOTION: EventType # value = <EventType.FINGER_MOTION: 1794>
3425
+ FINGER_UP: EventType # value = <EventType.FINGER_UP: 1793>
3278
3426
  GAMEPAD_ADDED: EventType # value = <EventType.GAMEPAD_ADDED: 1619>
3279
3427
  GAMEPAD_AXIS_MOTION: EventType # value = <EventType.GAMEPAD_AXIS_MOTION: 1616>
3280
3428
  GAMEPAD_BUTTON_DOWN: EventType # value = <EventType.GAMEPAD_BUTTON_DOWN: 1617>
3281
3429
  GAMEPAD_BUTTON_UP: EventType # value = <EventType.GAMEPAD_BUTTON_UP: 1618>
3430
+ GAMEPAD_REMAPPED: EventType # value = <EventType.GAMEPAD_REMAPPED: 1621>
3282
3431
  GAMEPAD_REMOVED: EventType # value = <EventType.GAMEPAD_REMOVED: 1620>
3432
+ GAMEPAD_SENSOR_UPDATE: EventType # value = <EventType.GAMEPAD_SENSOR_UPDATE: 1625>
3433
+ GAMEPAD_STEAM_HANDLE_UPDATED: EventType # value = <EventType.GAMEPAD_STEAM_HANDLE_UPDATED: 1627>
3283
3434
  GAMEPAD_TOUCHPAD_DOWN: EventType # value = <EventType.GAMEPAD_TOUCHPAD_DOWN: 1622>
3284
3435
  GAMEPAD_TOUCHPAD_MOTION: EventType # value = <EventType.GAMEPAD_TOUCHPAD_MOTION: 1623>
3285
3436
  GAMEPAD_TOUCHPAD_UP: EventType # value = <EventType.GAMEPAD_TOUCHPAD_UP: 1624>
3437
+ GAMEPAD_UPDATE_COMPLETE: EventType # value = <EventType.GAMEPAD_UPDATE_COMPLETE: 1626>
3286
3438
  KEYBOARD_ADDED: EventType # value = <EventType.KEYBOARD_ADDED: 773>
3287
3439
  KEYBOARD_REMOVED: EventType # value = <EventType.KEYBOARD_REMOVED: 774>
3440
+ KEYMAP_CHANGED: EventType # value = <EventType.KEYMAP_CHANGED: 772>
3288
3441
  KEY_DOWN: EventType # value = <EventType.KEY_DOWN: 768>
3289
3442
  KEY_UP: EventType # value = <EventType.KEY_UP: 769>
3290
3443
  K_0: Keycode # value = <Keycode.K_0: 48>
@@ -3299,12 +3452,16 @@ K_8: Keycode # value = <Keycode.K_8: 56>
3299
3452
  K_9: Keycode # value = <Keycode.K_9: 57>
3300
3453
  K_AGAIN: Keycode # value = <Keycode.K_AGAIN: 1073741945>
3301
3454
  K_AMPERSAND: Keycode # value = <Keycode.K_AMPERSAND: 38>
3455
+ K_APPLICATION: Keycode # value = <Keycode.K_APPLICATION: 1073741925>
3302
3456
  K_ASTERISK: Keycode # value = <Keycode.K_ASTERISK: 42>
3303
3457
  K_AT: Keycode # value = <Keycode.K_AT: 64>
3304
3458
  K_BACKSLASH: Keycode # value = <Keycode.K_BACKSLASH: 92>
3305
3459
  K_BACKSPACE: Keycode # value = <Keycode.K_BACKSPACE: 8>
3460
+ K_CALL: Keycode # value = <Keycode.K_CALL: 1073742113>
3306
3461
  K_CAPS: Keycode # value = <Keycode.K_CAPS: 1073741881>
3307
3462
  K_CARET: Keycode # value = <Keycode.K_CARET: 94>
3463
+ K_CHANNEL_DEC: Keycode # value = <Keycode.K_CHANNEL_DEC: 1073742085>
3464
+ K_CHANNEL_INC: Keycode # value = <Keycode.K_CHANNEL_INC: 1073742084>
3308
3465
  K_COLON: Keycode # value = <Keycode.K_COLON: 58>
3309
3466
  K_COMMA: Keycode # value = <Keycode.K_COMMA: 44>
3310
3467
  K_COPY: Keycode # value = <Keycode.K_COPY: 1073741948>
@@ -3314,13 +3471,18 @@ K_DEL: Keycode # value = <Keycode.K_DEL: 127>
3314
3471
  K_DOLLAR: Keycode # value = <Keycode.K_DOLLAR: 36>
3315
3472
  K_DOWN: Keycode # value = <Keycode.K_DOWN: 1073741905>
3316
3473
  K_END: Keycode # value = <Keycode.K_END: 1073741901>
3474
+ K_ENDCALL: Keycode # value = <Keycode.K_ENDCALL: 1073742114>
3317
3475
  K_EQ: Keycode # value = <Keycode.K_EQ: 61>
3318
3476
  K_ESC: Keycode # value = <Keycode.K_ESC: 27>
3319
3477
  K_EXCLAIM: Keycode # value = <Keycode.K_EXCLAIM: 33>
3478
+ K_EXECUTE: Keycode # value = <Keycode.K_EXECUTE: 1073741940>
3320
3479
  K_F1: Keycode # value = <Keycode.K_F1: 1073741882>
3321
3480
  K_F10: Keycode # value = <Keycode.K_F10: 1073741891>
3322
3481
  K_F11: Keycode # value = <Keycode.K_F11: 1073741892>
3323
3482
  K_F12: Keycode # value = <Keycode.K_F12: 1073741893>
3483
+ K_F13: Keycode # value = <Keycode.K_F13: 1073741928>
3484
+ K_F14: Keycode # value = <Keycode.K_F14: 1073741929>
3485
+ K_F15: Keycode # value = <Keycode.K_F15: 1073741930>
3324
3486
  K_F2: Keycode # value = <Keycode.K_F2: 1073741883>
3325
3487
  K_F3: Keycode # value = <Keycode.K_F3: 1073741884>
3326
3488
  K_F4: Keycode # value = <Keycode.K_F4: 1073741885>
@@ -3333,6 +3495,7 @@ K_FIND: Keycode # value = <Keycode.K_FIND: 1073741950>
3333
3495
  K_GRAVE: Keycode # value = <Keycode.K_GRAVE: 96>
3334
3496
  K_GT: Keycode # value = <Keycode.K_GT: 62>
3335
3497
  K_HASH: Keycode # value = <Keycode.K_HASH: 35>
3498
+ K_HELP: Keycode # value = <Keycode.K_HELP: 1073741941>
3336
3499
  K_HOME: Keycode # value = <Keycode.K_HOME: 1073741898>
3337
3500
  K_INS: Keycode # value = <Keycode.K_INS: 1073741897>
3338
3501
  K_KP_0: Keycode # value = <Keycode.K_KP_0: 1073741922>
@@ -3360,7 +3523,20 @@ K_LGUI: Keycode # value = <Keycode.K_LGUI: 1073742051>
3360
3523
  K_LPAREN: Keycode # value = <Keycode.K_LPAREN: 40>
3361
3524
  K_LSHIFT: Keycode # value = <Keycode.K_LSHIFT: 1073742049>
3362
3525
  K_LT: Keycode # value = <Keycode.K_LT: 60>
3526
+ K_MEDIA_EJECT: Keycode # value = <Keycode.K_MEDIA_EJECT: 1073742094>
3527
+ K_MEDIA_FF: Keycode # value = <Keycode.K_MEDIA_FF: 1073742089>
3528
+ K_MEDIA_NEXT: Keycode # value = <Keycode.K_MEDIA_NEXT: 1073742091>
3529
+ K_MEDIA_PAUSE: Keycode # value = <Keycode.K_MEDIA_PAUSE: 1073742087>
3530
+ K_MEDIA_PLAY: Keycode # value = <Keycode.K_MEDIA_PLAY: 1073742086>
3531
+ K_MEDIA_PLAY_PAUSE: Keycode # value = <Keycode.K_MEDIA_PLAY_PAUSE: 1073742095>
3532
+ K_MEDIA_PREV: Keycode # value = <Keycode.K_MEDIA_PREV: 1073742092>
3533
+ K_MEDIA_REC: Keycode # value = <Keycode.K_MEDIA_REC: 1073742088>
3534
+ K_MEDIA_REWIND: Keycode # value = <Keycode.K_MEDIA_REWIND: 1073742090>
3535
+ K_MEDIA_SELECT: Keycode # value = <Keycode.K_MEDIA_SELECT: 1073742096>
3536
+ K_MEDIA_STOP: Keycode # value = <Keycode.K_MEDIA_STOP: 1073742093>
3537
+ K_MENU: Keycode # value = <Keycode.K_MENU: 1073741942>
3363
3538
  K_MINUS: Keycode # value = <Keycode.K_MINUS: 45>
3539
+ K_MODE: Keycode # value = <Keycode.K_MODE: 1073742081>
3364
3540
  K_MUTE: Keycode # value = <Keycode.K_MUTE: 1073741951>
3365
3541
  K_NUMLOCK: Keycode # value = <Keycode.K_NUMLOCK: 1073741907>
3366
3542
  K_PASTE: Keycode # value = <Keycode.K_PASTE: 1073741949>
@@ -3371,6 +3547,7 @@ K_PGDOWN: Keycode # value = <Keycode.K_PGDOWN: 1073741902>
3371
3547
  K_PGUP: Keycode # value = <Keycode.K_PGUP: 1073741899>
3372
3548
  K_PIPE: Keycode # value = <Keycode.K_PIPE: 124>
3373
3549
  K_PLUS: Keycode # value = <Keycode.K_PLUS: 43>
3550
+ K_POWER: Keycode # value = <Keycode.K_POWER: 1073741926>
3374
3551
  K_PRTSCR: Keycode # value = <Keycode.K_PRTSCR: 1073741894>
3375
3552
  K_QUESTION: Keycode # value = <Keycode.K_QUESTION: 63>
3376
3553
  K_RALT: Keycode # value = <Keycode.K_RALT: 1073742054>
@@ -3383,17 +3560,24 @@ K_RIGHT: Keycode # value = <Keycode.K_RIGHT: 1073741903>
3383
3560
  K_RPAREN: Keycode # value = <Keycode.K_RPAREN: 41>
3384
3561
  K_RSHIFT: Keycode # value = <Keycode.K_RSHIFT: 1073742053>
3385
3562
  K_SCRLK: Keycode # value = <Keycode.K_SCRLK: 1073741895>
3563
+ K_SELECT: Keycode # value = <Keycode.K_SELECT: 1073741943>
3386
3564
  K_SEMICOLON: Keycode # value = <Keycode.K_SEMICOLON: 59>
3387
3565
  K_SGLQUOTE: Keycode # value = <Keycode.K_SGLQUOTE: 39>
3388
3566
  K_SLASH: Keycode # value = <Keycode.K_SLASH: 47>
3567
+ K_SLEEP: Keycode # value = <Keycode.K_SLEEP: 1073742082>
3568
+ K_SOFTLEFT: Keycode # value = <Keycode.K_SOFTLEFT: 1073742111>
3569
+ K_SOFTRIGHT: Keycode # value = <Keycode.K_SOFTRIGHT: 1073742112>
3389
3570
  K_SPACE: Keycode # value = <Keycode.K_SPACE: 32>
3571
+ K_STOP: Keycode # value = <Keycode.K_STOP: 1073741944>
3390
3572
  K_TAB: Keycode # value = <Keycode.K_TAB: 9>
3391
3573
  K_TILDE: Keycode # value = <Keycode.K_TILDE: 126>
3392
3574
  K_UNDERSCORE: Keycode # value = <Keycode.K_UNDERSCORE: 95>
3393
3575
  K_UNDO: Keycode # value = <Keycode.K_UNDO: 1073741946>
3576
+ K_UNKNOWN: Keycode # value = <Keycode.K_UNKNOWN: 0>
3394
3577
  K_UP: Keycode # value = <Keycode.K_UP: 1073741906>
3395
3578
  K_VOLDOWN: Keycode # value = <Keycode.K_VOLDOWN: 1073741953>
3396
3579
  K_VOLUP: Keycode # value = <Keycode.K_VOLUP: 1073741952>
3580
+ K_WAKE: Keycode # value = <Keycode.K_WAKE: 1073742083>
3397
3581
  K_a: Keycode # value = <Keycode.K_a: 97>
3398
3582
  K_b: Keycode # value = <Keycode.K_b: 98>
3399
3583
  K_c: Keycode # value = <Keycode.K_c: 99>
@@ -3420,6 +3604,8 @@ K_w: Keycode # value = <Keycode.K_w: 119>
3420
3604
  K_x: Keycode # value = <Keycode.K_x: 120>
3421
3605
  K_y: Keycode # value = <Keycode.K_y: 121>
3422
3606
  K_z: Keycode # value = <Keycode.K_z: 122>
3607
+ LOCALE_CHANGED: EventType # value = <EventType.LOCALE_CHANGED: 263>
3608
+ LOW_MEMORY: EventType # value = <EventType.LOW_MEMORY: 258>
3423
3609
  MID_LEFT: Anchor # value = <Anchor.MID_LEFT: 3>
3424
3610
  MID_RIGHT: Anchor # value = <Anchor.MID_RIGHT: 5>
3425
3611
  MOUSE_ADDED: EventType # value = <EventType.MOUSE_ADDED: 1028>
@@ -3449,6 +3635,11 @@ P_TANGENTIAL_PRESSURE: PenAxis # value = <PenAxis.P_TANGENTIAL_PRESSURE: 6>
3449
3635
  P_TILT_X: PenAxis # value = <PenAxis.P_TILT_X: 1>
3450
3636
  P_TILT_Y: PenAxis # value = <PenAxis.P_TILT_Y: 2>
3451
3637
  QUIT: EventType # value = <EventType.QUIT: 256>
3638
+ RENDER_DEVICE_LOST: EventType # value = <EventType.RENDER_DEVICE_LOST: 8194>
3639
+ RENDER_DEVICE_RESET: EventType # value = <EventType.RENDER_DEVICE_RESET: 8193>
3640
+ RENDER_TARGETS_RESET: EventType # value = <EventType.RENDER_TARGETS_RESET: 8192>
3641
+ SENSOR_UPDATE: EventType # value = <EventType.SENSOR_UPDATE: 4608>
3642
+ SYSTEM_THEME_CHANGED: EventType # value = <EventType.SYSTEM_THEME_CHANGED: 264>
3452
3643
  S_0: Scancode # value = <Scancode.S_0: 39>
3453
3644
  S_1: Scancode # value = <Scancode.S_1: 30>
3454
3645
  S_2: Scancode # value = <Scancode.S_2: 31>
@@ -3461,21 +3652,30 @@ S_8: Scancode # value = <Scancode.S_8: 37>
3461
3652
  S_9: Scancode # value = <Scancode.S_9: 38>
3462
3653
  S_AGAIN: Scancode # value = <Scancode.S_AGAIN: 121>
3463
3654
  S_APOSTROPHE: Scancode # value = <Scancode.S_APOSTROPHE: 52>
3655
+ S_APPLICATION: Scancode # value = <Scancode.S_APPLICATION: 101>
3464
3656
  S_BACKSLASH: Scancode # value = <Scancode.S_BACKSLASH: 49>
3465
3657
  S_BACKSPACE: Scancode # value = <Scancode.S_BACKSPACE: 42>
3658
+ S_CALL: Scancode # value = <Scancode.S_CALL: 289>
3466
3659
  S_CAPS: Scancode # value = <Scancode.S_CAPS: 57>
3660
+ S_CHANNEL_DEC: Scancode # value = <Scancode.S_CHANNEL_DEC: 261>
3661
+ S_CHANNEL_INC: Scancode # value = <Scancode.S_CHANNEL_INC: 260>
3467
3662
  S_COMMA: Scancode # value = <Scancode.S_COMMA: 54>
3468
3663
  S_COPY: Scancode # value = <Scancode.S_COPY: 124>
3469
3664
  S_CUT: Scancode # value = <Scancode.S_CUT: 123>
3470
3665
  S_DEL: Scancode # value = <Scancode.S_DEL: 76>
3471
3666
  S_DOWN: Scancode # value = <Scancode.S_DOWN: 81>
3472
3667
  S_END: Scancode # value = <Scancode.S_END: 77>
3668
+ S_ENDCALL: Scancode # value = <Scancode.S_ENDCALL: 290>
3473
3669
  S_EQ: Scancode # value = <Scancode.S_EQ: 46>
3474
3670
  S_ESC: Scancode # value = <Scancode.S_ESC: 41>
3671
+ S_EXECUTE: Scancode # value = <Scancode.S_EXECUTE: 116>
3475
3672
  S_F1: Scancode # value = <Scancode.S_F1: 58>
3476
3673
  S_F10: Scancode # value = <Scancode.S_F10: 67>
3477
3674
  S_F11: Scancode # value = <Scancode.S_F11: 68>
3478
3675
  S_F12: Scancode # value = <Scancode.S_F12: 69>
3676
+ S_F13: Scancode # value = <Scancode.S_F13: 104>
3677
+ S_F14: Scancode # value = <Scancode.S_F14: 105>
3678
+ S_F15: Scancode # value = <Scancode.S_F15: 106>
3479
3679
  S_F2: Scancode # value = <Scancode.S_F2: 59>
3480
3680
  S_F3: Scancode # value = <Scancode.S_F3: 60>
3481
3681
  S_F4: Scancode # value = <Scancode.S_F4: 61>
@@ -3486,6 +3686,7 @@ S_F8: Scancode # value = <Scancode.S_F8: 65>
3486
3686
  S_F9: Scancode # value = <Scancode.S_F9: 66>
3487
3687
  S_FIND: Scancode # value = <Scancode.S_FIND: 126>
3488
3688
  S_GRAVE: Scancode # value = <Scancode.S_GRAVE: 53>
3689
+ S_HELP: Scancode # value = <Scancode.S_HELP: 117>
3489
3690
  S_HOME: Scancode # value = <Scancode.S_HOME: 74>
3490
3691
  S_INS: Scancode # value = <Scancode.S_INS: 73>
3491
3692
  S_KP_0: Scancode # value = <Scancode.S_KP_0: 98>
@@ -3510,7 +3711,20 @@ S_LCTRL: Scancode # value = <Scancode.S_LCTRL: 224>
3510
3711
  S_LEFT: Scancode # value = <Scancode.S_LEFT: 80>
3511
3712
  S_LGUI: Scancode # value = <Scancode.S_LGUI: 227>
3512
3713
  S_LSHIFT: Scancode # value = <Scancode.S_LSHIFT: 225>
3714
+ S_MEDIA_EJECT: Scancode # value = <Scancode.S_MEDIA_EJECT: 270>
3715
+ S_MEDIA_FAST_FORWARD: Scancode # value = <Scancode.S_MEDIA_FAST_FORWARD: 265>
3716
+ S_MEDIA_NEXT: Scancode # value = <Scancode.S_MEDIA_NEXT: 267>
3717
+ S_MEDIA_PAUSE: Scancode # value = <Scancode.S_MEDIA_PAUSE: 263>
3718
+ S_MEDIA_PLAY: Scancode # value = <Scancode.S_MEDIA_PLAY: 262>
3719
+ S_MEDIA_PLAY_PAUSE: Scancode # value = <Scancode.S_MEDIA_PLAY_PAUSE: 271>
3720
+ S_MEDIA_PREV: Scancode # value = <Scancode.S_MEDIA_PREV: 268>
3721
+ S_MEDIA_REC: Scancode # value = <Scancode.S_MEDIA_REC: 264>
3722
+ S_MEDIA_REWIND: Scancode # value = <Scancode.S_MEDIA_REWIND: 266>
3723
+ S_MEDIA_SELECT: Scancode # value = <Scancode.S_MEDIA_SELECT: 272>
3724
+ S_MEDIA_STOP: Scancode # value = <Scancode.S_MEDIA_STOP: 269>
3725
+ S_MENU: Scancode # value = <Scancode.S_MENU: 118>
3513
3726
  S_MINUS: Scancode # value = <Scancode.S_MINUS: 45>
3727
+ S_MODE: Scancode # value = <Scancode.S_MODE: 257>
3514
3728
  S_MUTE: Scancode # value = <Scancode.S_MUTE: 127>
3515
3729
  S_NUMLOCK: Scancode # value = <Scancode.S_NUMLOCK: 83>
3516
3730
  S_PASTE: Scancode # value = <Scancode.S_PASTE: 125>
@@ -3518,6 +3732,7 @@ S_PAUSE: Scancode # value = <Scancode.S_PAUSE: 72>
3518
3732
  S_PERIOD: Scancode # value = <Scancode.S_PERIOD: 55>
3519
3733
  S_PGDOWN: Scancode # value = <Scancode.S_PGDOWN: 78>
3520
3734
  S_PGUP: Scancode # value = <Scancode.S_PGUP: 75>
3735
+ S_POWER: Scancode # value = <Scancode.S_POWER: 102>
3521
3736
  S_PRTSCR: Scancode # value = <Scancode.S_PRTSCR: 70>
3522
3737
  S_RALT: Scancode # value = <Scancode.S_RALT: 230>
3523
3738
  S_RBRACKET: Scancode # value = <Scancode.S_RBRACKET: 48>
@@ -3527,14 +3742,20 @@ S_RGUI: Scancode # value = <Scancode.S_RGUI: 231>
3527
3742
  S_RIGHT: Scancode # value = <Scancode.S_RIGHT: 79>
3528
3743
  S_RSHIFT: Scancode # value = <Scancode.S_RSHIFT: 229>
3529
3744
  S_SCRLK: Scancode # value = <Scancode.S_SCRLK: 71>
3745
+ S_SELECT: Scancode # value = <Scancode.S_SELECT: 119>
3530
3746
  S_SEMICOLON: Scancode # value = <Scancode.S_SEMICOLON: 51>
3531
3747
  S_SLASH: Scancode # value = <Scancode.S_SLASH: 56>
3748
+ S_SLEEP: Scancode # value = <Scancode.S_SLEEP: 258>
3749
+ S_SOFTLEFT: Scancode # value = <Scancode.S_SOFTLEFT: 287>
3750
+ S_SOFTRIGHT: Scancode # value = <Scancode.S_SOFTRIGHT: 288>
3532
3751
  S_SPACE: Scancode # value = <Scancode.S_SPACE: 44>
3752
+ S_STOP: Scancode # value = <Scancode.S_STOP: 120>
3533
3753
  S_TAB: Scancode # value = <Scancode.S_TAB: 43>
3534
3754
  S_UNDO: Scancode # value = <Scancode.S_UNDO: 122>
3535
3755
  S_UP: Scancode # value = <Scancode.S_UP: 82>
3536
3756
  S_VOLDOWN: Scancode # value = <Scancode.S_VOLDOWN: 129>
3537
3757
  S_VOLUP: Scancode # value = <Scancode.S_VOLUP: 128>
3758
+ S_WAKE: Scancode # value = <Scancode.S_WAKE: 259>
3538
3759
  S_a: Scancode # value = <Scancode.S_a: 4>
3539
3760
  S_b: Scancode # value = <Scancode.S_b: 5>
3540
3761
  S_c: Scancode # value = <Scancode.S_c: 6>
@@ -3561,16 +3782,27 @@ S_w: Scancode # value = <Scancode.S_w: 26>
3561
3782
  S_x: Scancode # value = <Scancode.S_x: 27>
3562
3783
  S_y: Scancode # value = <Scancode.S_y: 28>
3563
3784
  S_z: Scancode # value = <Scancode.S_z: 29>
3785
+ TERMINATING: EventType # value = <EventType.TERMINATING: 257>
3564
3786
  TEXT_EDITING: EventType # value = <EventType.TEXT_EDITING: 770>
3787
+ TEXT_EDITING_CANDIDATES: EventType # value = <EventType.TEXT_EDITING_CANDIDATES: 775>
3565
3788
  TEXT_INPUT: EventType # value = <EventType.TEXT_INPUT: 771>
3566
3789
  TOP_LEFT: Anchor # value = <Anchor.TOP_LEFT: 0>
3567
3790
  TOP_MID: Anchor # value = <Anchor.TOP_MID: 1>
3568
3791
  TOP_RIGHT: Anchor # value = <Anchor.TOP_RIGHT: 2>
3792
+ WILL_ENTER_BACKGROUND: EventType # value = <EventType.WILL_ENTER_BACKGROUND: 259>
3793
+ WILL_ENTER_FOREGROUND: EventType # value = <EventType.WILL_ENTER_FOREGROUND: 261>
3794
+ WINDOW_CLOSE_REQUESTED: EventType # value = <EventType.WINDOW_CLOSE_REQUESTED: 528>
3795
+ WINDOW_DESTROYED: EventType # value = <EventType.WINDOW_DESTROYED: 537>
3796
+ WINDOW_DISPLAY_CHANGED: EventType # value = <EventType.WINDOW_DISPLAY_CHANGED: 531>
3797
+ WINDOW_DISPLAY_SCALE_CHANGED: EventType # value = <EventType.WINDOW_DISPLAY_SCALE_CHANGED: 532>
3569
3798
  WINDOW_ENTER_FULLSCREEN: EventType # value = <EventType.WINDOW_ENTER_FULLSCREEN: 535>
3570
3799
  WINDOW_EXPOSED: EventType # value = <EventType.WINDOW_EXPOSED: 516>
3571
3800
  WINDOW_FOCUS_GAINED: EventType # value = <EventType.WINDOW_FOCUS_GAINED: 526>
3572
3801
  WINDOW_FOCUS_LOST: EventType # value = <EventType.WINDOW_FOCUS_LOST: 527>
3802
+ WINDOW_HDR_STATE_CHANGED: EventType # value = <EventType.WINDOW_HDR_STATE_CHANGED: 538>
3573
3803
  WINDOW_HIDDEN: EventType # value = <EventType.WINDOW_HIDDEN: 515>
3804
+ WINDOW_HIT_TEST: EventType # value = <EventType.WINDOW_HIT_TEST: 529>
3805
+ WINDOW_ICCPROF_CHANGED: EventType # value = <EventType.WINDOW_ICCPROF_CHANGED: 530>
3574
3806
  WINDOW_LEAVE_FULLSCREEN: EventType # value = <EventType.WINDOW_LEAVE_FULLSCREEN: 536>
3575
3807
  WINDOW_MAXIMIZED: EventType # value = <EventType.WINDOW_MAXIMIZED: 522>
3576
3808
  WINDOW_MINIMIZED: EventType # value = <EventType.WINDOW_MINIMIZED: 521>
@@ -3580,4 +3812,5 @@ WINDOW_MOVED: EventType # value = <EventType.WINDOW_MOVED: 517>
3580
3812
  WINDOW_OCCLUDED: EventType # value = <EventType.WINDOW_OCCLUDED: 534>
3581
3813
  WINDOW_RESIZED: EventType # value = <EventType.WINDOW_RESIZED: 518>
3582
3814
  WINDOW_RESTORED: EventType # value = <EventType.WINDOW_RESTORED: 523>
3815
+ WINDOW_SAFE_AREA_CHANGED: EventType # value = <EventType.WINDOW_SAFE_AREA_CHANGED: 533>
3583
3816
  WINDOW_SHOWN: EventType # value = <EventType.WINDOW_SHOWN: 514>