play.callback

This module contains the CallbackManager class and CallbackType enum.

 1"""
 2This module contains the CallbackManager class and CallbackType enum.
 3"""
 4
 5from enum import Enum
 6
 7
 8class CallbackType(Enum):
 9    REPEAT_FOREVER = 0
10    WHEN_PROGRAM_START = 1
11    PRESSED_KEYS = 2
12    RELEASED_KEYS = 3
13    WHEN_CLICKED = 4
14    WHEN_CLICK_RELEASED = 5
15    WHEN_CLICKED_SPRITE = 6
16    WHEN_TOUCHING = 7
17    WHEN_STOPPED_TOUCHING = 8
18    WHEN_TOUCHING_WALL = 9
19    WHEN_STOPPED_TOUCHING_WALL = 10
20    WHEN_CONTROLLER_BUTTON_PRESSED = 11
21    WHEN_CONTROLLER_BUTTON_RELEASED = 12
22    WHEN_CONTROLLER_AXIS_MOVED = 13
23
24
25class CallbackManager:
26    def __init__(self):
27        """
28        A class to manage callbacks.
29        """
30        self.callbacks = {}
31
32    def add_callback(
33        self, callback_type, callback, callback_discriminator=None
34    ) -> None:
35        """
36        Add a callback to the callback manager.
37        :param callback_type: The type of callback.
38        :param callback: The callback function.
39        :param callback_discriminator: The discriminator for the callback.
40        :return: None
41        """
42        if callback_type not in self.callbacks:
43            if callback_discriminator is None:
44                self.callbacks[callback_type] = []
45            else:
46                self.callbacks[callback_type] = {}
47        if callback_discriminator is None:
48            self.callbacks[callback_type].append(callback)
49        else:
50            if callback_discriminator not in self.callbacks[callback_type]:
51                self.callbacks[callback_type][callback_discriminator] = []
52            self.callbacks[callback_type][callback_discriminator].append(callback)
53
54    def get_callbacks(self, callback_type) -> dict:
55        """
56        Get the callbacks of a certain type.
57        :param callback_type: The type of callback.
58        :return: The callbacks of the specified type.
59        """
60        return self.callbacks.get(callback_type, None)
61
62    def get_callback(self, callback_type, callback_discriminator=None) -> callable:
63        """
64        Get a callback of a certain type.
65        :param callback_type: The type of callback.
66        :param callback_discriminator: The discriminator for the callback.
67        :return: The callback(s) of the specified type.
68        """
69        if callback_discriminator is None:
70            return self.callbacks.get(callback_type, None)
71        return self.callbacks.get(callback_type, {}).get(callback_discriminator, None)
72
73
74callback_manager = CallbackManager()
class CallbackType(enum.Enum):
 9class CallbackType(Enum):
10    REPEAT_FOREVER = 0
11    WHEN_PROGRAM_START = 1
12    PRESSED_KEYS = 2
13    RELEASED_KEYS = 3
14    WHEN_CLICKED = 4
15    WHEN_CLICK_RELEASED = 5
16    WHEN_CLICKED_SPRITE = 6
17    WHEN_TOUCHING = 7
18    WHEN_STOPPED_TOUCHING = 8
19    WHEN_TOUCHING_WALL = 9
20    WHEN_STOPPED_TOUCHING_WALL = 10
21    WHEN_CONTROLLER_BUTTON_PRESSED = 11
22    WHEN_CONTROLLER_BUTTON_RELEASED = 12
23    WHEN_CONTROLLER_AXIS_MOVED = 13

An enumeration.

REPEAT_FOREVER = <CallbackType.REPEAT_FOREVER: 0>
WHEN_PROGRAM_START = <CallbackType.WHEN_PROGRAM_START: 1>
PRESSED_KEYS = <CallbackType.PRESSED_KEYS: 2>
RELEASED_KEYS = <CallbackType.RELEASED_KEYS: 3>
WHEN_CLICKED = <CallbackType.WHEN_CLICKED: 4>
WHEN_CLICK_RELEASED = <CallbackType.WHEN_CLICK_RELEASED: 5>
WHEN_CLICKED_SPRITE = <CallbackType.WHEN_CLICKED_SPRITE: 6>
WHEN_TOUCHING = <CallbackType.WHEN_TOUCHING: 7>
WHEN_STOPPED_TOUCHING = <CallbackType.WHEN_STOPPED_TOUCHING: 8>
WHEN_TOUCHING_WALL = <CallbackType.WHEN_TOUCHING_WALL: 9>
WHEN_STOPPED_TOUCHING_WALL = <CallbackType.WHEN_STOPPED_TOUCHING_WALL: 10>
WHEN_CONTROLLER_BUTTON_PRESSED = <CallbackType.WHEN_CONTROLLER_BUTTON_PRESSED: 11>
WHEN_CONTROLLER_BUTTON_RELEASED = <CallbackType.WHEN_CONTROLLER_BUTTON_RELEASED: 12>
WHEN_CONTROLLER_AXIS_MOVED = <CallbackType.WHEN_CONTROLLER_AXIS_MOVED: 13>
class CallbackManager:
26class CallbackManager:
27    def __init__(self):
28        """
29        A class to manage callbacks.
30        """
31        self.callbacks = {}
32
33    def add_callback(
34        self, callback_type, callback, callback_discriminator=None
35    ) -> None:
36        """
37        Add a callback to the callback manager.
38        :param callback_type: The type of callback.
39        :param callback: The callback function.
40        :param callback_discriminator: The discriminator for the callback.
41        :return: None
42        """
43        if callback_type not in self.callbacks:
44            if callback_discriminator is None:
45                self.callbacks[callback_type] = []
46            else:
47                self.callbacks[callback_type] = {}
48        if callback_discriminator is None:
49            self.callbacks[callback_type].append(callback)
50        else:
51            if callback_discriminator not in self.callbacks[callback_type]:
52                self.callbacks[callback_type][callback_discriminator] = []
53            self.callbacks[callback_type][callback_discriminator].append(callback)
54
55    def get_callbacks(self, callback_type) -> dict:
56        """
57        Get the callbacks of a certain type.
58        :param callback_type: The type of callback.
59        :return: The callbacks of the specified type.
60        """
61        return self.callbacks.get(callback_type, None)
62
63    def get_callback(self, callback_type, callback_discriminator=None) -> callable:
64        """
65        Get a callback of a certain type.
66        :param callback_type: The type of callback.
67        :param callback_discriminator: The discriminator for the callback.
68        :return: The callback(s) of the specified type.
69        """
70        if callback_discriminator is None:
71            return self.callbacks.get(callback_type, None)
72        return self.callbacks.get(callback_type, {}).get(callback_discriminator, None)
CallbackManager()
27    def __init__(self):
28        """
29        A class to manage callbacks.
30        """
31        self.callbacks = {}

A class to manage callbacks.

callbacks
def add_callback(self, callback_type, callback, callback_discriminator=None) -> None:
33    def add_callback(
34        self, callback_type, callback, callback_discriminator=None
35    ) -> None:
36        """
37        Add a callback to the callback manager.
38        :param callback_type: The type of callback.
39        :param callback: The callback function.
40        :param callback_discriminator: The discriminator for the callback.
41        :return: None
42        """
43        if callback_type not in self.callbacks:
44            if callback_discriminator is None:
45                self.callbacks[callback_type] = []
46            else:
47                self.callbacks[callback_type] = {}
48        if callback_discriminator is None:
49            self.callbacks[callback_type].append(callback)
50        else:
51            if callback_discriminator not in self.callbacks[callback_type]:
52                self.callbacks[callback_type][callback_discriminator] = []
53            self.callbacks[callback_type][callback_discriminator].append(callback)

Add a callback to the callback manager.

Parameters
  • callback_type: The type of callback.
  • callback: The callback function.
  • callback_discriminator: The discriminator for the callback.
Returns

None

def get_callbacks(self, callback_type) -> dict:
55    def get_callbacks(self, callback_type) -> dict:
56        """
57        Get the callbacks of a certain type.
58        :param callback_type: The type of callback.
59        :return: The callbacks of the specified type.
60        """
61        return self.callbacks.get(callback_type, None)

Get the callbacks of a certain type.

Parameters
  • callback_type: The type of callback.
Returns

The callbacks of the specified type.

def get_callback( self, callback_type, callback_discriminator=None) -> <built-in function callable>:
63    def get_callback(self, callback_type, callback_discriminator=None) -> callable:
64        """
65        Get a callback of a certain type.
66        :param callback_type: The type of callback.
67        :param callback_discriminator: The discriminator for the callback.
68        :return: The callback(s) of the specified type.
69        """
70        if callback_discriminator is None:
71            return self.callbacks.get(callback_type, None)
72        return self.callbacks.get(callback_type, {}).get(callback_discriminator, None)

Get a callback of a certain type.

Parameters
  • callback_type: The type of callback.
  • callback_discriminator: The discriminator for the callback.
Returns

The callback(s) of the specified type.

callback_manager = <CallbackManager object>