batframework 1.0.8a4__py3-none-any.whl → 1.0.8a6__py3-none-any.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.
Files changed (38) hide show
  1. batFramework/__init__.py +15 -1
  2. batFramework/animatedSprite.py +65 -50
  3. batFramework/character.py +27 -0
  4. batFramework/dynamicEntity.py +1 -0
  5. batFramework/enums.py +2 -2
  6. batFramework/fontManager.py +2 -2
  7. batFramework/gui/clickableWidget.py +6 -7
  8. batFramework/gui/constraints/constraints.py +125 -40
  9. batFramework/gui/image.py +14 -14
  10. batFramework/gui/interactiveWidget.py +15 -0
  11. batFramework/gui/label.py +44 -27
  12. batFramework/gui/layout.py +23 -14
  13. batFramework/gui/meter.py +10 -7
  14. batFramework/gui/radioButton.py +1 -1
  15. batFramework/gui/shape.py +3 -25
  16. batFramework/gui/slider.py +40 -30
  17. batFramework/gui/textInput.py +160 -50
  18. batFramework/gui/toggle.py +20 -22
  19. batFramework/gui/widget.py +65 -32
  20. batFramework/manager.py +17 -5
  21. batFramework/object.py +17 -8
  22. batFramework/particle.py +18 -4
  23. batFramework/scene.py +1 -1
  24. batFramework/sceneManager.py +42 -13
  25. batFramework/stateMachine.py +9 -6
  26. batFramework/templates/__init__.py +2 -0
  27. batFramework/templates/character.py +44 -0
  28. batFramework/templates/states.py +166 -0
  29. batFramework/time.py +30 -9
  30. batFramework/transition.py +2 -2
  31. batFramework/triggerZone.py +1 -1
  32. batFramework/utils.py +35 -6
  33. {batframework-1.0.8a4.dist-info → batframework-1.0.8a6.dist-info}/METADATA +3 -15
  34. batframework-1.0.8a6.dist-info/RECORD +62 -0
  35. {batframework-1.0.8a4.dist-info → batframework-1.0.8a6.dist-info}/WHEEL +1 -1
  36. batframework-1.0.8a4.dist-info/RECORD +0 -58
  37. {batframework-1.0.8a4.dist-info → batframework-1.0.8a6.dist-info}/LICENCE +0 -0
  38. {batframework-1.0.8a4.dist-info → batframework-1.0.8a6.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,166 @@
1
+ import batFramework as bf
2
+ from typing import TYPE_CHECKING
3
+
4
+ if TYPE_CHECKING:
5
+ from .character import Platform2DCharacter
6
+
7
+
8
+ class CharacterState(bf.State):
9
+ def set_parent(self, parent):
10
+ """Initialize the parent character."""
11
+ res = super().set_parent(parent)
12
+ if res:
13
+ self.parent: Platform2DCharacter = parent
14
+ return res
15
+
16
+ def on_enter(self):
17
+ """Handle state entry."""
18
+ self.parent.set_animation(self.name)
19
+
20
+ def handle_input(self):
21
+ """Process input and update movement direction."""
22
+ if self.parent.actions.is_active("right"):
23
+ self._apply_horizontal_input(self.parent.acceleration, self.parent.speed)
24
+ if self.parent.actions.is_active("left"):
25
+ self._apply_horizontal_input(-self.parent.acceleration, -self.parent.speed)
26
+
27
+ if self.parent.velocity.x > 0:
28
+ self.parent.set_flipX(False)
29
+ elif self.parent.velocity.x < 0:
30
+ self.parent.set_flipX(True)
31
+
32
+
33
+ def _apply_horizontal_input(self, acceleration, limit):
34
+ """Apply input acceleration and enforce speed limit."""
35
+
36
+ self.parent.velocity.x += acceleration
37
+ if abs(self.parent.velocity.x) > abs(limit):
38
+ self.parent.velocity.x = limit
39
+
40
+ def apply_friction(self):
41
+ """Apply friction to horizontal velocity."""
42
+ if (self.parent.actions.is_active("right") or self.parent.actions.is_active("left")):
43
+ return
44
+
45
+ if abs(self.parent.velocity.x) < 0.01: # Threshold for negligible velocity
46
+ self.parent.velocity.x = 0
47
+ else:
48
+ self.parent.velocity.x *= self.parent.friction
49
+
50
+ def apply_gravity(self, dt):
51
+ """Apply gravity to vertical velocity."""
52
+ self.parent.velocity.y += self.parent.gravity * dt
53
+ self.parent.velocity.y = min(self.parent.velocity.y, self.parent.terminal_velocity)
54
+
55
+ def move_character(self, dt):
56
+ """Move the character based on velocity."""
57
+ self.parent.rect.x += self.parent.velocity.x * dt
58
+ self.parent.rect.y += self.parent.velocity.y * dt
59
+
60
+ def update(self, dt):
61
+ """Update the character state."""
62
+ self.handle_input()
63
+ self.apply_physics(dt)
64
+ self.handle_collision()
65
+
66
+ def apply_physics(self, dt):
67
+ """Apply all physics effects."""
68
+ self.apply_friction()
69
+ self.move_character(dt)
70
+ if self.parent.on_ground:
71
+ self.parent.velocity.y = 0 # Stop downward movement on ground
72
+
73
+ def handle_collision(self):
74
+ """Placeholder for collision detection and resolution."""
75
+ pass # Future collision code goes here
76
+
77
+
78
+ class Platform2DIdle(CharacterState):
79
+ def __init__(self) -> None:
80
+ super().__init__("idle")
81
+
82
+ def on_enter(self):
83
+ self.parent.jump_counter = 0
84
+ super().on_enter()
85
+
86
+ def update(self, dt):
87
+ super().update(dt)
88
+
89
+ if not self.parent.on_ground:
90
+ self.parent.set_state("fall")
91
+ elif self.parent.velocity.x != 0:
92
+ self.parent.set_state("run")
93
+ elif self.parent.actions.is_active("jump"):
94
+ self.parent.set_state("jump")
95
+
96
+
97
+ class Platform2DRun(CharacterState):
98
+ def __init__(self) -> None:
99
+ super().__init__("run")
100
+
101
+
102
+ def on_enter(self):
103
+ self.parent.jump_counter = 0
104
+ super().on_enter()
105
+
106
+ def update(self, dt):
107
+ super().update(dt)
108
+
109
+ if self.parent.velocity.x :
110
+ if (self.parent.actions.is_active("right") or self.parent.actions.is_active("left")):
111
+ if self.parent.get_current_animation().name != "run" : self.parent.set_animation("run")
112
+ else:
113
+ if self.parent.get_current_animation().name != "idle" : self.parent.set_animation("idle")
114
+
115
+ if self.parent.actions.is_active("jump"):
116
+ self.parent.set_state("jump")
117
+ elif self.parent.velocity.x == 0:
118
+ if not (self.parent.actions.is_active("right") or self.parent.actions.is_active("left")):
119
+ self.parent.set_state("idle")
120
+ elif not self.parent.on_ground:
121
+ self.parent.set_state("fall")
122
+
123
+
124
+
125
+
126
+ class Platform2DJump(CharacterState):
127
+ def __init__(self) -> None:
128
+ super().__init__("jump")
129
+
130
+ def on_enter(self):
131
+ super().on_enter()
132
+ self.parent.on_ground = False
133
+ self.parent.velocity.y = -self.parent.jump_force
134
+ self.parent.jump_counter += 1
135
+
136
+ def update(self, dt):
137
+ super().update(dt)
138
+ self.apply_gravity(dt)
139
+
140
+
141
+ if self.parent.jump_counter < self.parent.max_jumps:
142
+ if self.parent.actions.is_active("jump") and (self.parent.velocity.y//10)*10 == 0:
143
+ self.parent.set_state("jump")
144
+ return
145
+
146
+
147
+ if self.parent.velocity.y > 0:
148
+ self.parent.set_state("fall")
149
+
150
+
151
+ class Platform2DFall(CharacterState):
152
+ def __init__(self) -> None:
153
+ super().__init__("fall")
154
+
155
+ def update(self, dt):
156
+ super().update(dt)
157
+ self.apply_gravity(dt)
158
+
159
+ if self.parent.on_ground:
160
+ if abs(self.parent.velocity.x) > 0.01:
161
+ self.parent.set_state("run")
162
+ else:
163
+ self.parent.set_state("idle")
164
+
165
+ if self.parent.actions.is_active("jump") and self.parent.jump_counter < self.parent.max_jumps:
166
+ self.parent.set_state("jump")
batFramework/time.py CHANGED
@@ -2,12 +2,20 @@ import batFramework as bf
2
2
  from typing import Self
3
3
 
4
4
 
5
+ from typing import Callable, Union, Self
6
+
7
+
5
8
  class Timer:
6
9
  _count: int = 0
10
+ _available_ids: set[int] = set()
11
+
12
+ def __init__(self, duration: Union[float, int], end_callback: Callable, loop: bool = False, register: str = "global") -> None:
13
+ if Timer._available_ids:
14
+ self.uid = Timer._available_ids.pop()
15
+ else:
16
+ self.uid = Timer._count
17
+ Timer._count += 1
7
18
 
8
- def __init__(self, duration: float | int, end_callback, loop: bool = False, register="global") -> None:
9
- self.name: int = Timer._count
10
- Timer._count += 1
11
19
  self.register = register
12
20
  self.duration: int | float = duration
13
21
  self.end_callback = end_callback
@@ -21,8 +29,8 @@ class Timer:
21
29
  def __bool__(self)->bool:
22
30
  return self.elapsed_time==-1 or self.is_over
23
31
 
24
- def __repr__(self) -> str:
25
- return f"Timer ({self.name}) {self.elapsed_time}/{self.duration} | {'loop ' if self.is_looping else ''} {'(D) ' if self.do_delete else ''}"
32
+ def __str__(self) -> str:
33
+ return f"Timer ({self.uid}) {self.elapsed_time}/{self.duration} | {'loop ' if self.is_looping else ''} {'(D) ' if self.do_delete else ''}"
26
34
 
27
35
  def stop(self) -> Self:
28
36
  self.elapsed_time = -1
@@ -82,6 +90,10 @@ class Timer:
82
90
  def should_delete(self) -> bool:
83
91
  return self.is_over or self.do_delete
84
92
 
93
+ def _release_id(self):
94
+ Timer._available_ids.add(self.uid)
95
+
96
+
85
97
  class SceneTimer(Timer):
86
98
  def __init__(self, duration: float | int, end_callback, loop: bool = False, scene_name:str = "global") -> None:
87
99
  super().__init__(duration, end_callback, loop, scene_name)
@@ -96,7 +108,7 @@ class TimeManager(metaclass=bf.Singleton):
96
108
  return iter(self.timers.values())
97
109
 
98
110
  def add_timer(self, timer: Timer):
99
- self.timers[timer.name] = timer
111
+ self.timers[timer.uid] = timer
100
112
 
101
113
  def update(self, dt):
102
114
  expired_timers = []
@@ -104,9 +116,9 @@ class TimeManager(metaclass=bf.Singleton):
104
116
  if not timer.is_paused:
105
117
  timer.update(dt)
106
118
  if timer.should_delete():
107
- expired_timers.append(timer.name)
108
- for name in expired_timers:
109
- del self.timers[name]
119
+ expired_timers.append(timer.uid)
120
+ for uid in expired_timers:
121
+ del self.timers[uid]
110
122
 
111
123
  def __init__(self):
112
124
  self.registers = {"global": TimeManager.TimerRegister()}
@@ -138,3 +150,12 @@ class TimeManager(metaclass=bf.Singleton):
138
150
 
139
151
  def deactivate_register(self, name):
140
152
  self.activate_register(name, active=False)
153
+
154
+ def __str__(self)->str:
155
+ res = ""
156
+ for name,reg in self.registers.items():
157
+ if not reg.timers:continue
158
+ res +=name+"\n"
159
+ for t in reg.timers.values():
160
+ res +="\t"+str(t)+"\n"
161
+ return res
@@ -89,8 +89,8 @@ class FadeColor(Transition):
89
89
  self,
90
90
  color: tuple,
91
91
  middle_duration: float,
92
- first_duration: float = None,
93
- second_duration: float = None,
92
+ first_duration: float | None = None,
93
+ second_duration: float | None = None,
94
94
  easing_function: bf.easing = bf.easing.LINEAR,
95
95
  ) -> None:
96
96
  super().__init__(0, easing_function)
@@ -4,7 +4,7 @@ import batFramework as bf
4
4
  class TriggerZone(bf.Entity):
5
5
  def __init__(self, size, trigger, callback, active=True) -> None:
6
6
  super().__init__(size, True)
7
- self.set_debug_color(bf.color.RIVER_BLUE)
7
+ self.set_debug_color(bf.color.RED)
8
8
  self.active = active
9
9
  self.callback = callback
10
10
  self.trigger = trigger
batFramework/utils.py CHANGED
@@ -64,7 +64,7 @@ class Utils:
64
64
 
65
65
  @staticmethod
66
66
  @cache
67
- def draw_spotlight(inside_color, outside_color, radius, radius_stop=None, dest_surf=None,size=None):
67
+ def create_spotlight(inside_color, outside_color, radius, radius_stop=None, dest_surf=None,size=None):
68
68
  """
69
69
  Draws a circle spotlight centered on a surface
70
70
  inner color on the center
@@ -79,16 +79,14 @@ class Utils:
79
79
  radius_stop = radius
80
80
  diameter = radius_stop * 2
81
81
 
82
-
83
82
  if dest_surf is None:
84
83
  if size is None:
85
84
  size = (diameter,diameter)
86
85
  dest_surf = pygame.Surface(size, pygame.SRCALPHA)
87
-
88
-
89
-
90
86
 
91
87
  dest_surf.fill((0,0,0,0))
88
+
89
+
92
90
  center = dest_surf.get_rect().center
93
91
 
94
92
  if radius_stop != radius:
@@ -102,7 +100,21 @@ class Utils:
102
100
  pygame.draw.circle(dest_surf, inside_color, center, radius)
103
101
 
104
102
  return dest_surf
105
-
103
+
104
+ @staticmethod
105
+ def draw_spotlight(dest_surf:pygame.Surface,inside_color,outside_color,radius,radius_stop=None,center=None):
106
+ if radius_stop is None:
107
+ radius_stop = radius
108
+ center = dest_surf.get_rect().center if center is None else center
109
+ if radius_stop != radius:
110
+ for r in range(radius_stop, radius - 1, -1):
111
+ color = [
112
+ inside_color[i] + (outside_color[i] - inside_color[i]) * (r - radius) / (radius_stop - radius)
113
+ for i in range(3)
114
+ ] + [255]
115
+ pygame.draw.circle(dest_surf, color, center, r)
116
+ else:
117
+ pygame.draw.circle(dest_surf, inside_color, center, radius)
106
118
 
107
119
  @staticmethod
108
120
  def animate_move(entity:"Object", start_pos : tuple[float,float], end_pos:tuple[float,float])->Callable[[float],None]:
@@ -110,6 +122,23 @@ class Utils:
110
122
  entity.set_center(start_pos[0]+(end_pos[0]-start_pos[0])*x,start_pos[1]+(end_pos[1]-start_pos[1])*x)
111
123
  return func
112
124
 
125
+ def animate_move_to(entity: "Object", end_pos: tuple[float, float]) -> Callable[[float], None]:
126
+ # Start position will be captured once when the animation starts
127
+ start_pos = [None]
128
+
129
+ def update_position(progression: float):
130
+ if start_pos[0] is None:
131
+ start_pos[0] = entity.rect.center # Capture the start position at the start of the animation
132
+
133
+ # Calculate new position based on progression
134
+ new_x = start_pos[0][0] + (end_pos[0] - start_pos[0][0]) * progression
135
+ new_y = start_pos[0][1] + (end_pos[1] - start_pos[0][1]) * progression
136
+
137
+ # Set the entity's new position
138
+ entity.set_center(new_x, new_y)
139
+
140
+ return update_position
141
+
113
142
  @staticmethod
114
143
  def animate_alpha(entity:"Entity", start : int, end:int)->Callable[[float],None]:
115
144
  def func(x):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: batframework
3
- Version: 1.0.8a4
3
+ Version: 1.0.8a6
4
4
  Summary: Pygame framework for making games easier.
5
5
  Author-email: Turan Baturay <baturayturan@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/TuranBaturay/batFramework
@@ -12,9 +12,9 @@ Description-Content-Type: text/markdown
12
12
  License-File: LICENCE
13
13
  Requires-Dist: pygame-ce
14
14
 
15
- # batFramework & gamejam Project
15
+ # batFramework
16
16
 
17
- Welcome to the `batFramework` and the accompanying `gamejam` project. This README provides an overview of both the game framework and the specific game project developed using the framework.
17
+ Welcome to the `batFramework`. This README provides an overview of the game framework.
18
18
 
19
19
  ## batFramework
20
20
 
@@ -38,18 +38,6 @@ The `batFramework` is a Python game development framework based on pygame, desig
38
38
 
39
39
  For more detailed information on how to use the framework, refer to the documentation (if available) or explore the source code in the `batFramework` directory.
40
40
 
41
- ## gamejam Project
42
41
 
43
- The `gamejam` project is a specific game developed using the `batFramework`. It serves as an example of how the framework can be used to create a game from scratch.
44
-
45
- ### Play the gamejam Project
46
-
47
- 1. Install Python (version 3.10 or higher) and the latest stable version of pygame-ce.
48
- 2. Clone or download this repository.
49
- 3. Navigate to the `gamejam` directory.
50
- 4. Run the game by executing the main script (e.g., `python main.py`).
51
- 5. Play the game and have fun!
52
-
53
- Feel free to explore the code in the `gamejam` directory to see how the `batFramework` is utilized to create the game. You can modify, extend, or use the project as a starting point for your own games.
54
42
 
55
43
 
@@ -0,0 +1,62 @@
1
+ batFramework/__init__.py,sha256=ZMA14nsYaYN4_0a0J1la_Mq-fvFe7TBVfN25dP-pMSY,2556
2
+ batFramework/action.py,sha256=919IVYKviLyVYDtQL7oZvlVuE_aodjJCuwz6fGi5sCk,8420
3
+ batFramework/actionContainer.py,sha256=qy6-YY3iX26KJ8NqFMSYo6JExohD8HFk0sC1qhb7qA8,2602
4
+ batFramework/animatedSprite.py,sha256=Y77nakxq_UIAogeJRrs0VCK9n8teFHjsK5GE4sZ0q3U,6011
5
+ batFramework/audioManager.py,sha256=8tKSf4huZe5tgH98qHlKoFNjXPGDQNJho6PKfSCe7JA,3869
6
+ batFramework/camera.py,sha256=u1EPSitZ9mEEa32yQB7K6ywnWgWCSumbhrc4HRjimEY,9406
7
+ batFramework/character.py,sha256=IRsDclTTkA-sb51-LgcVjQW3slfA-8H_8wMA5LL-KlA,760
8
+ batFramework/constants.py,sha256=5PyZQZ4fCcLA8k_Upby9KGVF-3pnV2ZZ6t26CxiocPM,1102
9
+ batFramework/cutscene.py,sha256=Jh2g-zC3zaUSQoO2uVOsirWkuLAUFugu2T8B_ob9IPQ,4007
10
+ batFramework/cutsceneBlocks.py,sha256=3jtmTpV48NKCu-Qgjg7KN5KnwXn0kycIQ7t7G3RH3VE,4862
11
+ batFramework/dynamicEntity.py,sha256=6WcI6OveFNmrtOUYzmVMlT35Hz4MXeeRKzd1M3meL1Q,876
12
+ batFramework/easingController.py,sha256=4N8GIp1fsaWBUlDxXx3SMwOq1Mrhn10MZZIO51_CRnk,1677
13
+ batFramework/entity.py,sha256=34gYC6uEMmLkqWtoTG9bgMWRmHRSxhQfxXZKzWS7H2o,2127
14
+ batFramework/enums.py,sha256=re12gHw2g-5qtCNmGOfZbEC5cL5E8-FA79hfKGrI6-I,2078
15
+ batFramework/fontManager.py,sha256=iCVavr4hpn0T4xsaUAzdNd01j5ebpcj30fvFHzm1g-M,2246
16
+ batFramework/manager.py,sha256=LilVu1M42-tWNQeFjGXdPTTPHot1z8bRBoIFzNbxXUw,2754
17
+ batFramework/object.py,sha256=_3sfRxrjaiDuVyz5Yk-fYJqYx-Ehq_3-dA4eDTb9kok,3329
18
+ batFramework/particle.py,sha256=SD_DRqfhzlEeWlORDVPh1R__2_RplNcBujmqovN9Mww,3079
19
+ batFramework/renderGroup.py,sha256=_VDvmP4iB-XarFJo_Uh5YKwWq1cazHmOBmTXZkqKk40,2020
20
+ batFramework/resourceManager.py,sha256=0cOIAFXT7UzzvgHn9QkWcXsTp8H2bIS70NvvgpBL2_4,3554
21
+ batFramework/scene.py,sha256=2fXxwle68jzHwR2irKeWJYL95uAVmmU2edexo9p7fu4,12197
22
+ batFramework/sceneManager.py,sha256=Jb51KksIDrZrXUafs0bgX73tY-8rglWW89Co48YGdCM,8037
23
+ batFramework/scrollingSprite.py,sha256=PPEieAaFcOLE_Lm7cnm3xc7XyLKopCPcDbXEfyThO48,4133
24
+ batFramework/sprite.py,sha256=t_kSyUXGOSXQbSBwrKgBUTp5mITeFQbAKNzugjL5SgY,1625
25
+ batFramework/stateMachine.py,sha256=wC-5xbKvf-vGm_N16X9KhgMya5915GyVXL79uk5Bapw,1359
26
+ batFramework/tileset.py,sha256=3AJBWHx90PC43BdLYCBFm811XBrMvWoB-nsUgyo6s-I,1728
27
+ batFramework/time.py,sha256=dTZWwNMLtLBwSK4ARK9k8qPeZwpx3djhn4rErVorvu0,4941
28
+ batFramework/transition.py,sha256=-1cyk-7Fbm0U2Z4Y2jjpLHwJ2khM1VxIMcfk2bBEo-M,6655
29
+ batFramework/triggerZone.py,sha256=wIxkvO0cVVupQsJIPOD_-ofqwLnu1TLNK-n6oNXB1E8,579
30
+ batFramework/utils.py,sha256=kj0qaOwpwvvPMD1DyOQTZLYeV-1lJ0dobeU2E49Rwg8,5215
31
+ batFramework/gui/__init__.py,sha256=17ij7mrCBCoehqCq1PV6MSXPOfMoLPmrV_G8d6ax4Tk,687
32
+ batFramework/gui/button.py,sha256=Ozs6VKHf9FCQXQODDiLQywGN3hwfXtQ6s2I-rzdjnQg,429
33
+ batFramework/gui/clickableWidget.py,sha256=2vS9GFSI3uufYQbaosXxTMs81vyVfQGz71AeZmf8vcY,7049
34
+ batFramework/gui/container.py,sha256=wXjuhwCJc71KKSgY2cYgoRscAKB_hIw5N4njJk3Z9lk,5925
35
+ batFramework/gui/debugger.py,sha256=XogxF3J31GO-DZZn6YBrgwpYA5WjadzEfHkQHeMLU7o,3925
36
+ batFramework/gui/dialogueBox.py,sha256=3Z76l9obrpQImI8hjoBS_8G9sY3UILj2d3nJsaxtaI4,3221
37
+ batFramework/gui/draggableWidget.py,sha256=SKG7oMInZ_GTnrbv2T0aqlppuiuLX1tkVSCQJtRMlk8,1392
38
+ batFramework/gui/image.py,sha256=7IRvalA6QQz7SYI9h4y4-ryWa9EOxZM3sc10-OZyCPc,1770
39
+ batFramework/gui/indicator.py,sha256=leCvxsGxt00-oTn0N5MTmLstLH9uLG3RjQ02KlXtZCQ,1549
40
+ batFramework/gui/interactiveWidget.py,sha256=FAZnSlMIohduZIDTZh5U-_mh1AbgTF4sz-0oig4LWIQ,5760
41
+ batFramework/gui/label.py,sha256=RcC0XY4hOuMkzBqRi1JeYPAykJ-bXjP37xqmr257FbY,11818
42
+ batFramework/gui/layout.py,sha256=vGEifD5HZqz3fd6TRU0Xr7_1czLlpqe450mam48cLk0,8587
43
+ batFramework/gui/meter.py,sha256=RFzAhSzR3O-Pw0wjdfApWGWFQSJoYa4WohkiREDAAJc,2395
44
+ batFramework/gui/radioButton.py,sha256=rROl9mtUa-m220R5qZ85NBPZS7nPVx-azhqijJ-XhCo,2411
45
+ batFramework/gui/root.py,sha256=K75814ct6AF4LF8cyzmtUmnTmSflJRnHVMGbpUXwmkE,5084
46
+ batFramework/gui/shape.py,sha256=Ros_-Mm2Q2CFauZFqFPh1QyyuZnNmg7C2PYbs7Cq41k,9347
47
+ batFramework/gui/slider.py,sha256=5d3rfTYjDCDiM5prKu6DTemlGgji2FQ_vGuLzxoa5gU,8335
48
+ batFramework/gui/style.py,sha256=OeLbft0RkIslQ2IcZpBeF6TaQDONIoBcAHj_Bkh9gFw,131
49
+ batFramework/gui/styleManager.py,sha256=rALKJ-AmRbDAiyu8hVAYRAlkQxw677DiPoNKJZ4xtJ4,1245
50
+ batFramework/gui/textInput.py,sha256=aTegghN6O3djL0eBEEij9DsEuZ1MyE61P51IzaLUUEg,9324
51
+ batFramework/gui/toggle.py,sha256=XLFzCRaY7uOkKFVtR3y01wsNjLjZqrS1748IcvBRN2Q,3969
52
+ batFramework/gui/widget.py,sha256=HGusTCgh3oAjtvrShzn2YxhFTGgNLsqGGhNilvRx-oo,13883
53
+ batFramework/gui/constraints/__init__.py,sha256=qqXE8nnSrEvCSeHdqY8UYPZLetqdubFPI7IdZuh35QE,26
54
+ batFramework/gui/constraints/constraints.py,sha256=nyPew0HIJ24rl4JcdBjUYu2aFynTryN9wqv1wKCo4ew,26873
55
+ batFramework/templates/__init__.py,sha256=8XN-7JwYFKTRx_lnUL_If3spwgn5_2b7bwmrRRBPON0,46
56
+ batFramework/templates/character.py,sha256=S-EkKYrMPg6539r1I5xNf9_bNVIC5-wISIJundbTlBQ,1319
57
+ batFramework/templates/states.py,sha256=WeomVrQ10vHxVCj9Wnk1PcinKyb871uV910mQe287kI,5370
58
+ batframework-1.0.8a6.dist-info/LICENCE,sha256=A65iXbMDbOxQLDNOODJLqA7o5RxszYlEqIgNSzBQRf4,1073
59
+ batframework-1.0.8a6.dist-info/METADATA,sha256=tL3BWsupICivdA351ioSc-1NP6Dt5K0hCOigRl5iu6I,1694
60
+ batframework-1.0.8a6.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
61
+ batframework-1.0.8a6.dist-info/top_level.txt,sha256=vxAKBIk1oparFTxeXGBrgfIO7iq_YR5Fv1JvPVAIwmA,13
62
+ batframework-1.0.8a6.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (70.3.0)
2
+ Generator: setuptools (74.1.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,58 +0,0 @@
1
- batFramework/__init__.py,sha256=gQxP43sMutQeN4dnbO6M8uT3ghN87gyNmcmurtSd33A,2172
2
- batFramework/action.py,sha256=919IVYKviLyVYDtQL7oZvlVuE_aodjJCuwz6fGi5sCk,8420
3
- batFramework/actionContainer.py,sha256=qy6-YY3iX26KJ8NqFMSYo6JExohD8HFk0sC1qhb7qA8,2602
4
- batFramework/animatedSprite.py,sha256=QmYfOw9fgcGRrXregOsEJquobhGWeWSY-L7nkzjY83w,4987
5
- batFramework/audioManager.py,sha256=8tKSf4huZe5tgH98qHlKoFNjXPGDQNJho6PKfSCe7JA,3869
6
- batFramework/camera.py,sha256=u1EPSitZ9mEEa32yQB7K6ywnWgWCSumbhrc4HRjimEY,9406
7
- batFramework/constants.py,sha256=5PyZQZ4fCcLA8k_Upby9KGVF-3pnV2ZZ6t26CxiocPM,1102
8
- batFramework/cutscene.py,sha256=Jh2g-zC3zaUSQoO2uVOsirWkuLAUFugu2T8B_ob9IPQ,4007
9
- batFramework/cutsceneBlocks.py,sha256=3jtmTpV48NKCu-Qgjg7KN5KnwXn0kycIQ7t7G3RH3VE,4862
10
- batFramework/dynamicEntity.py,sha256=LR8DeDa2h6jhDTM6yt61C_0AdYEzvq84NlB5a17K4nM,830
11
- batFramework/easingController.py,sha256=4N8GIp1fsaWBUlDxXx3SMwOq1Mrhn10MZZIO51_CRnk,1677
12
- batFramework/entity.py,sha256=34gYC6uEMmLkqWtoTG9bgMWRmHRSxhQfxXZKzWS7H2o,2127
13
- batFramework/enums.py,sha256=Iee21l4BajM7PXXrZF8SWAURX4qwMqKpQ7f12btqIbM,2077
14
- batFramework/fontManager.py,sha256=VX3HmtyeiOBtv64XZjjJrvk29w6lawHKLfCGBwAa-4g,2242
15
- batFramework/manager.py,sha256=YRKKv5qWVUs7D8ZqP8ZkfUeTCc3lHxfCfJSYdO5Ep8A,2375
16
- batFramework/object.py,sha256=SnwnAmfC-7_QTGomQVpBQGSMQjN5NngZoNuvGdqHUrE,3021
17
- batFramework/particle.py,sha256=du6KwUH_WGgju11-_dQlxkcW16qdsVu8Q8qEwVuztFY,2633
18
- batFramework/renderGroup.py,sha256=_VDvmP4iB-XarFJo_Uh5YKwWq1cazHmOBmTXZkqKk40,2020
19
- batFramework/resourceManager.py,sha256=0cOIAFXT7UzzvgHn9QkWcXsTp8H2bIS70NvvgpBL2_4,3554
20
- batFramework/scene.py,sha256=zUVYDspPUShDAYJBA7eV_qWGVmb1SAKso06vRcIKyI4,12197
21
- batFramework/sceneManager.py,sha256=ezAVtgc886tb9q2xQwHonRrEAZk8MDWdNFPAFWsFM_o,7086
22
- batFramework/scrollingSprite.py,sha256=PPEieAaFcOLE_Lm7cnm3xc7XyLKopCPcDbXEfyThO48,4133
23
- batFramework/sprite.py,sha256=t_kSyUXGOSXQbSBwrKgBUTp5mITeFQbAKNzugjL5SgY,1625
24
- batFramework/stateMachine.py,sha256=tDQIfQH_4cVZyVNYJ2APe8-yhos3uGk5uSMo_XvktdQ,1335
25
- batFramework/tileset.py,sha256=3AJBWHx90PC43BdLYCBFm811XBrMvWoB-nsUgyo6s-I,1728
26
- batFramework/time.py,sha256=bq24XjO2tZUX_i_BOQ-ccnddu7UUEG3-Gnz1P3IHbcU,4411
27
- batFramework/transition.py,sha256=67K9TrHQnNXfP9CQXnP__fv1Piewcm4p4n1tBi0veuA,6641
28
- batFramework/triggerZone.py,sha256=ikOOlJT1KIND0MO2xiilCHuKlb1eQhkCMEhZTi1btsI,586
29
- batFramework/utils.py,sha256=OSVUvpWtS1BjRpJql_pwnlO76WhTLs9d_K6oONepIUI,3758
30
- batFramework/gui/__init__.py,sha256=17ij7mrCBCoehqCq1PV6MSXPOfMoLPmrV_G8d6ax4Tk,687
31
- batFramework/gui/button.py,sha256=Ozs6VKHf9FCQXQODDiLQywGN3hwfXtQ6s2I-rzdjnQg,429
32
- batFramework/gui/clickableWidget.py,sha256=LTTjLUq8WouEMNf8dwHTkKcOVe4Etyw6lOjxEjovtYw,7058
33
- batFramework/gui/container.py,sha256=wXjuhwCJc71KKSgY2cYgoRscAKB_hIw5N4njJk3Z9lk,5925
34
- batFramework/gui/debugger.py,sha256=XogxF3J31GO-DZZn6YBrgwpYA5WjadzEfHkQHeMLU7o,3925
35
- batFramework/gui/dialogueBox.py,sha256=3Z76l9obrpQImI8hjoBS_8G9sY3UILj2d3nJsaxtaI4,3221
36
- batFramework/gui/draggableWidget.py,sha256=SKG7oMInZ_GTnrbv2T0aqlppuiuLX1tkVSCQJtRMlk8,1392
37
- batFramework/gui/image.py,sha256=3J1v_YGDPUE_5CwD0ca9PXhHYOdItxUbXakovDjKms4,1750
38
- batFramework/gui/indicator.py,sha256=leCvxsGxt00-oTn0N5MTmLstLH9uLG3RjQ02KlXtZCQ,1549
39
- batFramework/gui/interactiveWidget.py,sha256=NIacinJkRV6ClqR8TPF39bi1cP4qVeBaOJtVrBqD6hw,5305
40
- batFramework/gui/label.py,sha256=mlIwhC_006z1jZ8HbBbyMeuNRIxbmGkyQUt2NU4kSB0,10979
41
- batFramework/gui/layout.py,sha256=sslcKULrWKZzaJw_fyb3f9A3PTT3Bm85C8-RbMHeDzo,8377
42
- batFramework/gui/meter.py,sha256=-5FwPpwWJm3nn8_SoWJNrOqIZ2wiHHTWmpkJyNNaCCY,2282
43
- batFramework/gui/radioButton.py,sha256=MAlu1_EiPzbvm6TyQ-IITWR6Mv38W2qEOaOKu1MArNQ,2406
44
- batFramework/gui/root.py,sha256=K75814ct6AF4LF8cyzmtUmnTmSflJRnHVMGbpUXwmkE,5084
45
- batFramework/gui/shape.py,sha256=mg-H4bHtnlYnaa4JkOTmX5MNTzwVADmeoSqeMvgenck,9968
46
- batFramework/gui/slider.py,sha256=GJ5pR0WoObUzfD4j4xak7eLMDtszggZJPCbE7Rf42Co,7670
47
- batFramework/gui/style.py,sha256=OeLbft0RkIslQ2IcZpBeF6TaQDONIoBcAHj_Bkh9gFw,131
48
- batFramework/gui/styleManager.py,sha256=rALKJ-AmRbDAiyu8hVAYRAlkQxw677DiPoNKJZ4xtJ4,1245
49
- batFramework/gui/textInput.py,sha256=orDq1cfBFjHU41UqtzH3unoZiVZYmSr-HQ84u5lwfwE,4633
50
- batFramework/gui/toggle.py,sha256=gQTA7fScTlScFWOXxoyJT6wcdjig-dRx7OiiPBq7Yyg,3843
51
- batFramework/gui/widget.py,sha256=nTAp5oPvr6688KXhmSzjHPNocR8rRTYOH6YZ8SIUB3o,12712
52
- batFramework/gui/constraints/__init__.py,sha256=qqXE8nnSrEvCSeHdqY8UYPZLetqdubFPI7IdZuh35QE,26
53
- batFramework/gui/constraints/constraints.py,sha256=ku1vJ4MbnP5KzWrowRM4ydJCs4dJpUVL_iJKKiJna7I,24616
54
- batframework-1.0.8a4.dist-info/LICENCE,sha256=A65iXbMDbOxQLDNOODJLqA7o5RxszYlEqIgNSzBQRf4,1073
55
- batframework-1.0.8a4.dist-info/METADATA,sha256=WYIlb6kPrHg-06QOFHxrVRBx-qOZoUw8yCXT8rF98XA,2501
56
- batframework-1.0.8a4.dist-info/WHEEL,sha256=Z4pYXqR_rTB7OWNDYFOm1qRk0RX6GFP2o8LgvP453Hk,91
57
- batframework-1.0.8a4.dist-info/top_level.txt,sha256=vxAKBIk1oparFTxeXGBrgfIO7iq_YR5Fv1JvPVAIwmA,13
58
- batframework-1.0.8a4.dist-info/RECORD,,