batframework 1.0.7__py3-none-any.whl → 1.0.8a2__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 +47 -41
- batFramework/action.py +20 -42
- batFramework/actionContainer.py +4 -43
- batFramework/animatedSprite.py +65 -98
- batFramework/audioManager.py +25 -39
- batFramework/camera.py +56 -226
- batFramework/constants.py +48 -32
- batFramework/cutscene.py +24 -32
- batFramework/cutsceneBlocks.py +33 -30
- batFramework/debugger.py +48 -0
- batFramework/dynamicEntity.py +7 -8
- batFramework/easing.py +23 -28
- batFramework/entity.py +52 -89
- batFramework/gui/__init__.py +1 -3
- batFramework/gui/button.py +58 -124
- batFramework/gui/constraints.py +90 -163
- batFramework/gui/container.py +18 -29
- batFramework/gui/debugger.py +42 -106
- batFramework/gui/frame.py +9 -15
- batFramework/gui/image.py +17 -36
- batFramework/gui/indicator.py +14 -20
- batFramework/gui/interactiveWidget.py +12 -63
- batFramework/gui/label.py +50 -113
- batFramework/gui/layout.py +51 -66
- batFramework/gui/root.py +29 -70
- batFramework/gui/shape.py +41 -34
- batFramework/gui/toggle.py +29 -37
- batFramework/gui/widget.py +131 -174
- batFramework/manager.py +14 -21
- batFramework/particles.py +20 -41
- batFramework/scene.py +72 -173
- batFramework/sceneManager.py +80 -40
- batFramework/stateMachine.py +0 -1
- batFramework/time.py +51 -62
- batFramework/transition.py +154 -0
- batFramework/utils.py +150 -3
- batframework-1.0.8a2.dist-info/METADATA +58 -0
- batframework-1.0.8a2.dist-info/RECORD +42 -0
- {batframework-1.0.7.dist-info → batframework-1.0.8a2.dist-info}/WHEEL +1 -1
- batFramework/enums.py +0 -14
- batFramework/fontManager.py +0 -57
- batFramework/gui/dialogueBox.py +0 -70
- batFramework/gui/slider.py +0 -5
- batFramework/gui/textInput.py +0 -88
- batFramework/resourceManager.py +0 -72
- batFramework/sprite.py +0 -33
- batFramework/tileset.py +0 -64
- batframework-1.0.7.dist-info/LICENCE +0 -21
- batframework-1.0.7.dist-info/METADATA +0 -55
- batframework-1.0.7.dist-info/RECORD +0 -50
- {batframework-1.0.7.dist-info → batframework-1.0.8a2.dist-info}/top_level.txt +0 -0
batFramework/gui/dialogueBox.py
DELETED
@@ -1,70 +0,0 @@
|
|
1
|
-
from .label import Label
|
2
|
-
import batFramework as bf
|
3
|
-
from typing import Self
|
4
|
-
class DialogueBox(Label):
|
5
|
-
def __init__(self)->None:
|
6
|
-
self.cursor_position :float = 0.0
|
7
|
-
self.text_speed :float = 20.0
|
8
|
-
self.message_queue : list[str]= []
|
9
|
-
self.is_over : bool = True
|
10
|
-
super().__init__("")
|
11
|
-
|
12
|
-
self.set_autoresize(False)
|
13
|
-
self.set_alignment(bf.Alignment.LEFT)
|
14
|
-
|
15
|
-
def set_text_speed(self,speed:float)->Self:
|
16
|
-
self.text_speed = speed
|
17
|
-
return self
|
18
|
-
|
19
|
-
def cut_text_to_width(self,text:str)->list[str]:
|
20
|
-
if text == '' or self.get_content_width() < 1 or not self._font_object : return ['']
|
21
|
-
|
22
|
-
for index in range(len(text)):
|
23
|
-
|
24
|
-
width = self._font_object.size(text[:index])[0]
|
25
|
-
if width > self.get_content_width():
|
26
|
-
cut_point_start = index-1
|
27
|
-
cut_point_end = index-1
|
28
|
-
last_space = text.rfind(' ',0,cut_point_start)
|
29
|
-
if last_space != -1 : # space was found !:
|
30
|
-
cut_point_start = last_space
|
31
|
-
cut_point_end = last_space+1
|
32
|
-
|
33
|
-
res = [text[:cut_point_start].strip()]
|
34
|
-
res.extend(self.cut_text_to_width(text[cut_point_end:].strip()))
|
35
|
-
return res
|
36
|
-
return [text]
|
37
|
-
|
38
|
-
def say(self,message:str):
|
39
|
-
message = '\n'.join(self.cut_text_to_width(message))
|
40
|
-
self.message_queue.append(message)
|
41
|
-
|
42
|
-
self.is_over = False
|
43
|
-
|
44
|
-
def is_queue_empty(self)->bool:
|
45
|
-
return not self.message_queue
|
46
|
-
|
47
|
-
def is_current_message_over(self)->bool:
|
48
|
-
return self.is_over
|
49
|
-
|
50
|
-
def clear_queue(self)->None:
|
51
|
-
self.message_queue.clear()
|
52
|
-
self.next_message()
|
53
|
-
|
54
|
-
def next_message(self)->None:
|
55
|
-
if self.message_queue:
|
56
|
-
self.message_queue.pop(0)
|
57
|
-
self.cursor_position = 0
|
58
|
-
self.set_text("")
|
59
|
-
|
60
|
-
def do_update(self,dt):
|
61
|
-
if not self.message_queue : return
|
62
|
-
if not self.is_over and self.cursor_position == len(self.message_queue[0]):
|
63
|
-
self.is_over = True
|
64
|
-
else:
|
65
|
-
self.cursor_position = min(
|
66
|
-
self.cursor_position + self.text_speed * dt,
|
67
|
-
len(self.message_queue[0])
|
68
|
-
)
|
69
|
-
self.set_text(self.message_queue[0][:int(self.cursor_position)])
|
70
|
-
|
batFramework/gui/slider.py
DELETED
batFramework/gui/textInput.py
DELETED
@@ -1,88 +0,0 @@
|
|
1
|
-
import batFramework as bf
|
2
|
-
from typing import Self
|
3
|
-
from .label import Label
|
4
|
-
from .interactiveWidget import InteractiveWidget
|
5
|
-
import pygame
|
6
|
-
|
7
|
-
class TextInput(Label,InteractiveWidget):
|
8
|
-
def __init__(self)->None:
|
9
|
-
self.cursor_position = 0
|
10
|
-
self.cursor_color = "gray20"
|
11
|
-
super().__init__("A")
|
12
|
-
self.set_text("")
|
13
|
-
self.set_focusable(True)
|
14
|
-
self.set_outline_color("black")
|
15
|
-
self.old_key_repeat :tuple= (0,0)
|
16
|
-
self._cursor_timer = bf.Timer(0.3,self._cursor_toggle,loop=True).start()
|
17
|
-
self._cursor_timer.pause()
|
18
|
-
self._show_cursor :bool = True
|
19
|
-
|
20
|
-
def to_string_id(self) -> str:
|
21
|
-
return f"TextInput({self._text})"
|
22
|
-
|
23
|
-
def _cursor_toggle(self):
|
24
|
-
self._show_cursor = not self._show_cursor
|
25
|
-
self.build()
|
26
|
-
|
27
|
-
def set_cursor_color(self,color)->Self:
|
28
|
-
self.cursor_color = color
|
29
|
-
return self
|
30
|
-
|
31
|
-
def do_on_click_down(self,button):
|
32
|
-
if button != 1:return
|
33
|
-
self.get_focus()
|
34
|
-
def do_on_enter(self):
|
35
|
-
pygame.mouse.set_cursor(pygame.SYSTEM_CURSOR_IBEAM)
|
36
|
-
|
37
|
-
def do_on_exit(self):
|
38
|
-
pygame.mouse.set_cursor(pygame.SYSTEM_CURSOR_ARROW)
|
39
|
-
|
40
|
-
def do_on_get_focus(self):
|
41
|
-
self.set_outline_width(2)
|
42
|
-
self.old_key_repeat = pygame.key.get_repeat()
|
43
|
-
self._cursor_timer.resume()
|
44
|
-
pygame.key.set_repeat(200,100)
|
45
|
-
def do_on_lose_focus(self):
|
46
|
-
self.set_outline_width(0)
|
47
|
-
self._cursor_timer.pause()
|
48
|
-
pygame.key.set_repeat(*self.old_key_repeat)
|
49
|
-
|
50
|
-
def set_cursor_position(self,position:int)->Self:
|
51
|
-
if position < 0 : position = 0
|
52
|
-
elif position > len(self.get_text()): position = len(self.get_text())
|
53
|
-
self.cursor_position = position
|
54
|
-
self.build()
|
55
|
-
return self
|
56
|
-
|
57
|
-
def do_handle_event(self,event)->bool:
|
58
|
-
text = self.get_text()
|
59
|
-
if not self.is_focused : return False
|
60
|
-
if event.type == pygame.TEXTINPUT:
|
61
|
-
self.set_text(text[:self.cursor_position]+event.text+text[self.cursor_position:])
|
62
|
-
self.set_cursor_position(self.cursor_position+1)
|
63
|
-
return True
|
64
|
-
if event.type == pygame.KEYDOWN and event.key == pygame.K_BACKSPACE:
|
65
|
-
if self.cursor_position != 0 :
|
66
|
-
self.set_text(text[:self.cursor_position-1]+text[self.cursor_position:])
|
67
|
-
self.set_cursor_position(self.cursor_position-1)
|
68
|
-
return True
|
69
|
-
|
70
|
-
if event.type == pygame.KEYDOWN and event.key == pygame.K_RIGHT:
|
71
|
-
self.set_cursor_position(self.cursor_position+1)
|
72
|
-
return True
|
73
|
-
if event.type == pygame.KEYDOWN and event.key == pygame.K_LEFT:
|
74
|
-
self.set_cursor_position(self.cursor_position-1)
|
75
|
-
return True
|
76
|
-
return False
|
77
|
-
|
78
|
-
def _build_cursor(self)->None:
|
79
|
-
if not self._font_object : return
|
80
|
-
if not self._show_cursor : return
|
81
|
-
partial_text_size = self._font_object.size(self.get_text()[:self.cursor_position])
|
82
|
-
cursor_rect = pygame.Rect(0,0,2,partial_text_size[1]+2)
|
83
|
-
cursor_rect.midleft = self._text_rect.move(partial_text_size[0],0).midleft
|
84
|
-
pygame.draw.rect(self.surface, self.cursor_color, cursor_rect)
|
85
|
-
|
86
|
-
def build(self)->None:
|
87
|
-
super().build()
|
88
|
-
if self.is_focused : self._build_cursor()
|
batFramework/resourceManager.py
DELETED
@@ -1,72 +0,0 @@
|
|
1
|
-
import batFramework as bf
|
2
|
-
import os
|
3
|
-
import pygame
|
4
|
-
import sys
|
5
|
-
import json
|
6
|
-
from .utils import Singleton
|
7
|
-
if getattr(sys, "frozen", False):
|
8
|
-
# If the application is run as a bundle, the PyInstaller bootloader
|
9
|
-
# extends the sys module by a flag frozen=True and sets the app
|
10
|
-
# path into variable _MEIPASS'.
|
11
|
-
application_path = sys._MEIPASS
|
12
|
-
else:
|
13
|
-
application_path = os.getcwd()
|
14
|
-
|
15
|
-
|
16
|
-
class ResourceManager(metaclass=Singleton):
|
17
|
-
def __init__(self):
|
18
|
-
self.convert_image_cache = {}
|
19
|
-
self.convert_alpha_image_cache = {}
|
20
|
-
self.sound_cache = {}
|
21
|
-
self.RESOURCE_PATH = "."
|
22
|
-
|
23
|
-
def load_dir(self,path)->None:
|
24
|
-
for root, dirs, files in os.walk(path):
|
25
|
-
|
26
|
-
files = [f for f in files if not f[0] == '.']
|
27
|
-
dirs[:] = [d for d in dirs if not d[0] == '.']
|
28
|
-
|
29
|
-
for file in files:
|
30
|
-
file_path = os.path.join(root, file)
|
31
|
-
if file.lower().endswith(('.png', '.jpg', '.jpeg', '.gif')):
|
32
|
-
self.load_image(file_path)
|
33
|
-
|
34
|
-
elif file.lower().endswith(('.mp3', '.wav')):
|
35
|
-
#AudioManager.load_sound(file_path)
|
36
|
-
pass
|
37
|
-
def set_resource_path(self,path: str):
|
38
|
-
self.RESOURCE_PATH = os.path.join(application_path, path)
|
39
|
-
print(f"Resource path : '{self.RESOURCE_PATH}'")
|
40
|
-
|
41
|
-
|
42
|
-
def get_path(self,path: str):
|
43
|
-
return os.path.join(self.RESOURCE_PATH, path)
|
44
|
-
|
45
|
-
def load_image(self,path)->None:
|
46
|
-
key = self.get_path(path)
|
47
|
-
if key in self.convert_image_cache : return
|
48
|
-
self.convert_image_cache[key] = pygame.image.load(path).convert()
|
49
|
-
self.convert_alpha_image_cache[key] = pygame.image.load(path).convert_alpha()
|
50
|
-
print(f"Loaded image : '{path}'")
|
51
|
-
|
52
|
-
def get_image(self,path,convert_alpha:bool=False):
|
53
|
-
key = self.get_path(path)
|
54
|
-
return self.convert_alpha_image_cache.get(key,None) if\
|
55
|
-
convert_alpha else self.convert_image_cache.get(key,None)
|
56
|
-
|
57
|
-
def load_json_from_file(self,path: str) -> dict|None:
|
58
|
-
try:
|
59
|
-
with open(self.get_path(path), "r") as file:
|
60
|
-
data = json.load(file)
|
61
|
-
return data
|
62
|
-
except FileNotFoundError:
|
63
|
-
print(f"File '{path}' not found")
|
64
|
-
return None
|
65
|
-
|
66
|
-
def save_json_to_file(self,path: str, data) -> bool:
|
67
|
-
try:
|
68
|
-
with open(self.get_path(path), "w") as file:
|
69
|
-
json.dump(data, file, indent=2)
|
70
|
-
return True
|
71
|
-
except FileNotFoundError:
|
72
|
-
return False
|
batFramework/sprite.py
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
import batFramework as bf
|
2
|
-
import pygame
|
3
|
-
from typing import Self
|
4
|
-
|
5
|
-
class Sprite(bf.DynamicEntity):
|
6
|
-
def __init__(
|
7
|
-
self,
|
8
|
-
data: pygame.Surface | str,
|
9
|
-
size: None | tuple[int, int] = None,
|
10
|
-
convert_alpha: bool = True,
|
11
|
-
):
|
12
|
-
self.original_surface = None
|
13
|
-
super().__init__(convert_alpha=convert_alpha)
|
14
|
-
if data:
|
15
|
-
self.set_image(data, size)
|
16
|
-
|
17
|
-
def set_image(
|
18
|
-
self, data: pygame.Surface | str, size: None | tuple[int, int] = None
|
19
|
-
):
|
20
|
-
if isinstance(data, str):
|
21
|
-
tmp = bf.ResourceManager().get_image(data,self.convert_alpha)
|
22
|
-
self.original_surface = tmp
|
23
|
-
elif isinstance(data, pygame.Surface):
|
24
|
-
self.original_surface = data
|
25
|
-
else:
|
26
|
-
raise ValueError("Image data can be either path or Surface")
|
27
|
-
if self.convert_alpha:
|
28
|
-
self.original_surface = self.original_surface.convert_alpha()
|
29
|
-
if not size:
|
30
|
-
size = self.original_surface.get_size()
|
31
|
-
self.surface = pygame.transform.scale(self.original_surface, size)
|
32
|
-
self.rect = self.surface.get_frect(center=self.rect.center)
|
33
|
-
|
batFramework/tileset.py
DELETED
@@ -1,64 +0,0 @@
|
|
1
|
-
import pygame
|
2
|
-
from .utils import Utils
|
3
|
-
from .resourceManager import ResourceManager
|
4
|
-
|
5
|
-
class Tileset:
|
6
|
-
_tilesets = {}
|
7
|
-
_flip_cache = {} # {"tileset":tileset,"index","flipX","flipY"}
|
8
|
-
|
9
|
-
def __init__(self, source: pygame.Surface | str, tilesize) -> None:
|
10
|
-
if isinstance(source, str):
|
11
|
-
source = ResourceManager().get_image(source,convert_alpha=True)
|
12
|
-
|
13
|
-
self.tile_dict = {}
|
14
|
-
self.surface = source
|
15
|
-
self.tile_size = tilesize
|
16
|
-
self.split_surface(self.surface)
|
17
|
-
|
18
|
-
def split_surface(self, surface: pygame.Surface):
|
19
|
-
width, height = surface.get_size()
|
20
|
-
num_tiles_x = width // self.tile_size
|
21
|
-
num_tiles_y = height // self.tile_size
|
22
|
-
# Iterate over the tiles vertically and horizontally
|
23
|
-
for y in range(num_tiles_y):
|
24
|
-
for x in range(num_tiles_x):
|
25
|
-
# Calculate the coordinates of the current tile in the tileset
|
26
|
-
tile_x = x * self.tile_size
|
27
|
-
tile_y = y * self.tile_size
|
28
|
-
# Create a subsurface for the current tile
|
29
|
-
tile_surface = surface.subsurface(
|
30
|
-
pygame.Rect(tile_x, tile_y, self.tile_size, self.tile_size)
|
31
|
-
)
|
32
|
-
# Calculate the unique key for the tile (e.g., based on its coordinates)
|
33
|
-
tile_key = (x, y)
|
34
|
-
# Store the subsurface in the dictionary with the corresponding key
|
35
|
-
self.tile_dict[tile_key] = tile_surface
|
36
|
-
# print(self.tile_dict)
|
37
|
-
|
38
|
-
def get_tile(self, x, y, flipX=False, flipY=False) -> pygame.Surface | None:
|
39
|
-
if (x, y) not in self.tile_dict:
|
40
|
-
return None
|
41
|
-
if flipX or flipY:
|
42
|
-
key = f"{x}{y}:{flipX}{flipY}"
|
43
|
-
if not key in self._flip_cache:
|
44
|
-
self._flip_cache[key] = pygame.transform.flip(
|
45
|
-
self.tile_dict[(x, y)], flipX, flipY
|
46
|
-
)
|
47
|
-
return self._flip_cache[key]
|
48
|
-
return self.tile_dict[(x, y)]
|
49
|
-
|
50
|
-
@staticmethod
|
51
|
-
def load_tileset(path: str, name: str, tilesize) -> "Tileset":
|
52
|
-
if name in Tileset._tilesets:
|
53
|
-
return Tileset._tilesets[name]
|
54
|
-
else:
|
55
|
-
img = ResourceManager().get_image(path,convert_alpha=True)
|
56
|
-
tileset = Tileset(img, tilesize)
|
57
|
-
Tileset._tilesets[name] = tileset
|
58
|
-
return tileset
|
59
|
-
|
60
|
-
@staticmethod
|
61
|
-
def get_tileset(name: str) -> "Tileset":
|
62
|
-
if name not in Tileset._tilesets:
|
63
|
-
return None
|
64
|
-
return Tileset._tilesets[name]
|
@@ -1,21 +0,0 @@
|
|
1
|
-
MIT License
|
2
|
-
|
3
|
-
Copyright (c) [2023] [TURAN BATURAY]
|
4
|
-
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
7
|
-
in the Software without restriction, including without limitation the rights
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
10
|
-
furnished to do so, subject to the following conditions:
|
11
|
-
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
13
|
-
copies or substantial portions of the Software.
|
14
|
-
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
-
SOFTWARE.
|
@@ -1,55 +0,0 @@
|
|
1
|
-
Metadata-Version: 2.1
|
2
|
-
Name: batframework
|
3
|
-
Version: 1.0.7
|
4
|
-
Summary: Pygame framework for making games easier.
|
5
|
-
Author-email: Turan Baturay <baturayturan@gmail.com>
|
6
|
-
Project-URL: Homepage, https://github.com/TuranBaturay/batFramework
|
7
|
-
Classifier: Programming Language :: Python :: 3
|
8
|
-
Classifier: License :: OSI Approved :: MIT License
|
9
|
-
Classifier: Operating System :: OS Independent
|
10
|
-
Requires-Python: >=3.11
|
11
|
-
Description-Content-Type: text/markdown
|
12
|
-
License-File: LICENCE
|
13
|
-
Requires-Dist: pygame-ce
|
14
|
-
|
15
|
-
# batFramework & gamejam Project
|
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.
|
18
|
-
|
19
|
-
## batFramework
|
20
|
-
|
21
|
-
The `batFramework` is a Python game development framework based on pygame, designed to streamline the process of creating 2D games. It provides a set of tools and components to handle scenes, transitions, cutscenes, audio, sprites, and more. The framework is built with flexibility in mind, allowing you to focus on game design while abstracting away low-level details.
|
22
|
-
|
23
|
-
### Features
|
24
|
-
|
25
|
-
- Scene management
|
26
|
-
- Cutscene support
|
27
|
-
- Audio management (music and sound effects with volume control)
|
28
|
-
- Entity, sprite, and animated sprite handling
|
29
|
-
- Transition effects
|
30
|
-
- Utility modules (time management, constants, etc.)
|
31
|
-
- No external dependency except for pygame
|
32
|
-
|
33
|
-
### Explore batFramework
|
34
|
-
|
35
|
-
1. Install Python (version 3.11 or higher) and the latest stable version of pygame-ce.
|
36
|
-
2. Clone or download this repository.
|
37
|
-
4. Explore the framework's modules in the `batFramework` directory and integrate them into your own game project.
|
38
|
-
|
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
|
-
|
41
|
-
## gamejam Project
|
42
|
-
|
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
|
-
|
55
|
-
|
@@ -1,50 +0,0 @@
|
|
1
|
-
batFramework/__init__.py,sha256=YaelCDRz3Ngj9ftajpfwXOJKEr4yOIiF56xt9XSJoo4,2111
|
2
|
-
batFramework/action.py,sha256=6XQ3sBylO00UYrGfh5GKjwP9PqgtixIV0um4uwiFj4w,8364
|
3
|
-
batFramework/actionContainer.py,sha256=DMWDWZ9mff70VErtunX7yOfiqOxBuGNGfO9b1YXW1CI,2498
|
4
|
-
batFramework/animatedSprite.py,sha256=vrwpBaE17S-ye7v2iR9X5s0LPuAJlwGc9rs8ykQXdTk,4944
|
5
|
-
batFramework/audioManager.py,sha256=yR1_dt5Q17DV6xAHwZ55j67cEz8x8vSev1xRyFD5w6s,3067
|
6
|
-
batFramework/camera.py,sha256=CnjCoIm4m7rmzlskF0ZjCxMtu3wV_mdaYy8LO6Jw5Ug,8846
|
7
|
-
batFramework/constants.py,sha256=VbUoeyG00Coz5BxiWrTsO6d0G96Y6Q5CU24E3z5wRR0,1426
|
8
|
-
batFramework/cutscene.py,sha256=-cDTTCuQhbHBnnxbDK3O99Sqvw5z3vIKWfA3Q-iYJX4,3882
|
9
|
-
batFramework/cutsceneBlocks.py,sha256=w4VWJXuhtohT0nXDXiJelKKG9EebfQvjisLEgYq2VJY,4889
|
10
|
-
batFramework/dynamicEntity.py,sha256=O4Bp39BjYUpQBscNqqKuyt2dTTnFK_8f8R0ZIqsdHu8,688
|
11
|
-
batFramework/easing.py,sha256=M5YjDot_l6DVdotKAbShIQlfotrs_WLpnLqQgQdAfa8,2269
|
12
|
-
batFramework/entity.py,sha256=iuWIFoWW5fVByGiY7AUQ-qVymxJLldJMXIKeD4CF4_M,4200
|
13
|
-
batFramework/enums.py,sha256=b7d4TuEyG6WGoXn0ABrmc6VsrwKrkJ2bCrMXtz37DB0,226
|
14
|
-
batFramework/fontManager.py,sha256=zqevsjZR37EalyHIiaGvnppQfWdCSEWbKLT4da0gYaQ,2136
|
15
|
-
batFramework/manager.py,sha256=5TLo-LSX3kiERYsoibaAAZMIKzcqXZu3hY9Yul0GGNk,1952
|
16
|
-
batFramework/particles.py,sha256=pdH9LFfOyDE59DpwHj6KWOj063NfeolzInq2Rj0fctI,2592
|
17
|
-
batFramework/resourceManager.py,sha256=wU68ZIftef9B7PruK9IkkSGaiHmPeoX5YrZYGy3LNlg,2580
|
18
|
-
batFramework/scene.py,sha256=sVmribXn0nwvPiq-yH-3qXfvrNELhoFHEyc3nhLNck0,10739
|
19
|
-
batFramework/sceneManager.py,sha256=nL69hrYv24HeoLig_bgdj1-RnWWcgnwyA5_Z5Sa07d0,4109
|
20
|
-
batFramework/sprite.py,sha256=xdHsRfxAb0aF7gCNsyzGq6y4vC2tZYtyQiJEqbOgrzM,1154
|
21
|
-
batFramework/stateMachine.py,sha256=er7WB7I4V81jgUrd-9ftfyYczKpPsEbgdWRXzYl6e9k,1339
|
22
|
-
batFramework/tileset.py,sha256=d4lmfgJwgUxhU3odVRtyQxQ84N600lpAMMjYp8Cvyf4,2523
|
23
|
-
batFramework/time.py,sha256=Wlss4ZzWOB2LU-3IRZLsPuDN_SJ8YOatk0OEwdXQlhA,2516
|
24
|
-
batFramework/transition.py,sha256=crWQ4taWvOnNlQzzWOH9NA4ytBkoaSZI2rNIb9rne-8,41
|
25
|
-
batFramework/transitionManager.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
26
|
-
batFramework/triggerZone.py,sha256=ikOOlJT1KIND0MO2xiilCHuKlb1eQhkCMEhZTi1btsI,586
|
27
|
-
batFramework/utils.py,sha256=Ud7qoB_dvhnx7oviZ_RamlFpsuOXqYL2gkcB67SYDRo,1094
|
28
|
-
batFramework/gui/__init__.py,sha256=8HGFEVlCrJh8MphfAnL79k_uLJzgVdFagQCAuWkXZGM,454
|
29
|
-
batFramework/gui/button.py,sha256=OSH9l_l4LfvFIICdZGMRYA3-n3hZA_nqfqAbMgoMwW4,4490
|
30
|
-
batFramework/gui/constraints.py,sha256=gZN61hYirs1yzvuunszxaiioBwzpSmwRP-EDExZCP3A,10492
|
31
|
-
batFramework/gui/container.py,sha256=qG8Db7H9P4HHRELHtS_bnBTsTh89BWs8PnIqEGBO0D4,1755
|
32
|
-
batFramework/gui/debugger.py,sha256=CIPrQdYDX0Y6hAdnkcRLengGD5vkitgilygXcHu2xFw,3385
|
33
|
-
batFramework/gui/dialogueBox.py,sha256=ME9dJK2BbKAH39xpz7VApRuKw6na3u0JuIvqLHwDS5I,2368
|
34
|
-
batFramework/gui/frame.py,sha256=kY2Jmt1YpYTg4Aa28qmLQaI59BQ-_nq0FOB7Lf2e_hM,861
|
35
|
-
batFramework/gui/image.py,sha256=S71a11FI_gkopXwXb9kRuSLJ-qEI4AJoiJY53ZXIprg,1341
|
36
|
-
batFramework/gui/indicator.py,sha256=awVhrY1holODuAnChfU1_m6Lp7aLGspSTFdHUnVZo2I,1128
|
37
|
-
batFramework/gui/interactiveWidget.py,sha256=i_uwmQmJGUFhpLz17wh-GVOJNvU9_zw3e2ZlsnnE4CA,1661
|
38
|
-
batFramework/gui/label.py,sha256=oxLNmgZCV0-Y-Ne6Azp6u0wkUC-Nj6_grj2MXDwr04k,5666
|
39
|
-
batFramework/gui/layout.py,sha256=w1BypRnYzwA4dtcFK4NtUirVnYoBUJsxApliHCXzQmk,3290
|
40
|
-
batFramework/gui/root.py,sha256=7zIE46mNDfVwLJXsFKm6d99bucTC0hBrSEreJsA7vps,3276
|
41
|
-
batFramework/gui/shape.py,sha256=sEuaRjpCRQHj_GomqWtXlHQMyCDw3ZuZsJ6-bAkqJPY,2459
|
42
|
-
batFramework/gui/slider.py,sha256=8rLHN-4yxavrOsTQi79SguCAR9Er8qCmkWKjUdMnPYg,62
|
43
|
-
batFramework/gui/textInput.py,sha256=bQGFn0xO7wXibW8Gl0aQTFQbmx90X-l61eCYsgZeGYk,3274
|
44
|
-
batFramework/gui/toggle.py,sha256=8UZHIK7176jP3choAboUReu8x3br2ilOqnnKrkF2Ul0,2259
|
45
|
-
batFramework/gui/widget.py,sha256=NMr9T6vL4aACQ0VNOJMd2YV7SoIQbOOUzzSyY6TEC_4,11961
|
46
|
-
batframework-1.0.7.dist-info/LICENCE,sha256=A65iXbMDbOxQLDNOODJLqA7o5RxszYlEqIgNSzBQRf4,1073
|
47
|
-
batframework-1.0.7.dist-info/METADATA,sha256=F0WSu0itPcqPIJPem0BWonVmJ10M9wbnPOHwEvOhJjk,2499
|
48
|
-
batframework-1.0.7.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
49
|
-
batframework-1.0.7.dist-info/top_level.txt,sha256=vxAKBIk1oparFTxeXGBrgfIO7iq_YR5Fv1JvPVAIwmA,13
|
50
|
-
batframework-1.0.7.dist-info/RECORD,,
|
File without changes
|