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.
- batFramework/__init__.py +15 -1
- batFramework/animatedSprite.py +65 -50
- batFramework/character.py +27 -0
- batFramework/dynamicEntity.py +1 -0
- batFramework/enums.py +2 -2
- batFramework/fontManager.py +2 -2
- batFramework/gui/clickableWidget.py +6 -7
- batFramework/gui/constraints/constraints.py +125 -40
- batFramework/gui/image.py +14 -14
- batFramework/gui/interactiveWidget.py +15 -0
- batFramework/gui/label.py +44 -27
- batFramework/gui/layout.py +23 -14
- batFramework/gui/meter.py +10 -7
- batFramework/gui/radioButton.py +1 -1
- batFramework/gui/shape.py +3 -25
- batFramework/gui/slider.py +40 -30
- batFramework/gui/textInput.py +160 -50
- batFramework/gui/toggle.py +20 -22
- batFramework/gui/widget.py +65 -32
- batFramework/manager.py +17 -5
- batFramework/object.py +17 -8
- batFramework/particle.py +18 -4
- batFramework/scene.py +1 -1
- batFramework/sceneManager.py +42 -13
- batFramework/stateMachine.py +9 -6
- batFramework/templates/__init__.py +2 -0
- batFramework/templates/character.py +44 -0
- batFramework/templates/states.py +166 -0
- batFramework/time.py +30 -9
- batFramework/transition.py +2 -2
- batFramework/triggerZone.py +1 -1
- batFramework/utils.py +35 -6
- {batframework-1.0.8a4.dist-info → batframework-1.0.8a6.dist-info}/METADATA +3 -15
- batframework-1.0.8a6.dist-info/RECORD +62 -0
- {batframework-1.0.8a4.dist-info → batframework-1.0.8a6.dist-info}/WHEEL +1 -1
- batframework-1.0.8a4.dist-info/RECORD +0 -58
- {batframework-1.0.8a4.dist-info → batframework-1.0.8a6.dist-info}/LICENCE +0 -0
- {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
|
25
|
-
return f"Timer ({self.
|
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.
|
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.
|
108
|
-
for
|
109
|
-
del self.timers[
|
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
|
batFramework/transition.py
CHANGED
@@ -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)
|
batFramework/triggerZone.py
CHANGED
@@ -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.
|
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
|
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.
|
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
|
15
|
+
# batFramework
|
16
16
|
|
17
|
-
Welcome to the `batFramework
|
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,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,,
|
File without changes
|
File without changes
|