@@ -22,6 +22,7 @@ class TextureKeyframe:
22
22
:param duration: Duration in milliseconds to display this keyframe.
23
23
:param tile_id: Tile ID for this keyframe (only used for tiled maps)
24
24
"""
25
+ __slots__ = ("texture" , "duration" , "tile_id" )
25
26
def __init__ (
26
27
self ,
27
28
texture : Texture ,
@@ -46,10 +47,12 @@ class TextureAnimation:
46
47
:param keyframes: List of keyframes for the animation.
47
48
:param loop: If the animation should loop.
48
49
"""
49
- def __init__ (self , keyframes : Optional [List [TextureKeyframe ]] = None ):
50
- self ._keyframes = keyframes or []
50
+ __slots__ = ("_keyframes" , "_duration_ms" , "_timeline" )
51
+
52
+ def __init__ (self , keyframes : List [TextureKeyframe ]):
53
+ self ._keyframes = keyframes
51
54
self ._duration_ms = 0
52
- self ._timeline : List [int ] = self ._create_timeline (self ._keyframes ) if self . _keyframes else []
55
+ self ._timeline : List [int ] = self ._create_timeline (self ._keyframes )
53
56
54
57
@property
55
58
def keyframes (self ) -> Tuple [TextureKeyframe , ...]:
@@ -94,25 +97,6 @@ def _create_timeline(self, keyframes: List[TextureKeyframe]) -> List[int]:
94
97
self ._duration_ms = current_time_ms
95
98
return timeline
96
99
97
- def append_keyframe (self , keyframe : TextureKeyframe ) -> None :
98
- """
99
- Add a keyframe to the animation.
100
-
101
- :param keyframe: Keyframe to add.
102
- """
103
- self ._keyframes .append (keyframe )
104
- self ._timeline .append (self ._duration_ms )
105
- self ._timeline = self ._create_timeline (self ._keyframes )
106
-
107
- def remove_keyframe (self , index : int ) -> None :
108
- """
109
- Remove a keyframe from the animation.
110
-
111
- :param index: Index of the keyframe to remove.
112
- """
113
- del self ._keyframes [index ]
114
- self ._timeline = self ._create_timeline (self ._keyframes )
115
-
116
100
def get_keyframe (self , time : float , loop : bool = True ) -> Tuple [int , TextureKeyframe ]:
117
101
"""
118
102
Get the frame at a given time.
0 commit comments