batframework 1.0.9a11__py3-none-any.whl → 1.0.9a13__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 (73) hide show
  1. batFramework/__init__.py +3 -11
  2. batFramework/action.py +280 -279
  3. batFramework/actionContainer.py +105 -82
  4. batFramework/animatedSprite.py +80 -58
  5. batFramework/animation.py +91 -77
  6. batFramework/audioManager.py +156 -131
  7. batFramework/baseScene.py +249 -240
  8. batFramework/camera.py +245 -317
  9. batFramework/constants.py +57 -51
  10. batFramework/cutscene.py +239 -253
  11. batFramework/cutsceneManager.py +34 -34
  12. batFramework/drawable.py +107 -77
  13. batFramework/dynamicEntity.py +30 -30
  14. batFramework/easingController.py +58 -58
  15. batFramework/entity.py +130 -130
  16. batFramework/enums.py +171 -135
  17. batFramework/fontManager.py +65 -65
  18. batFramework/gui/__init__.py +28 -25
  19. batFramework/gui/animatedLabel.py +90 -89
  20. batFramework/gui/button.py +17 -17
  21. batFramework/gui/clickableWidget.py +244 -244
  22. batFramework/gui/collapseContainer.py +98 -0
  23. batFramework/gui/constraints/__init__.py +1 -1
  24. batFramework/gui/constraints/constraints.py +1066 -980
  25. batFramework/gui/container.py +220 -206
  26. batFramework/gui/debugger.py +140 -130
  27. batFramework/gui/draggableWidget.py +63 -44
  28. batFramework/gui/image.py +61 -58
  29. batFramework/gui/indicator.py +116 -113
  30. batFramework/gui/interactiveWidget.py +243 -239
  31. batFramework/gui/label.py +147 -344
  32. batFramework/gui/layout.py +442 -429
  33. batFramework/gui/meter.py +155 -96
  34. batFramework/gui/radioButton.py +43 -35
  35. batFramework/gui/root.py +228 -228
  36. batFramework/gui/scrollingContainer.py +282 -0
  37. batFramework/gui/selector.py +232 -250
  38. batFramework/gui/shape.py +286 -276
  39. batFramework/gui/slider.py +353 -397
  40. batFramework/gui/style.py +10 -10
  41. batFramework/gui/styleManager.py +49 -54
  42. batFramework/gui/syncedVar.py +43 -49
  43. batFramework/gui/textInput.py +331 -306
  44. batFramework/gui/textWidget.py +308 -0
  45. batFramework/gui/toggle.py +140 -128
  46. batFramework/gui/tooltip.py +35 -30
  47. batFramework/gui/widget.py +546 -521
  48. batFramework/manager.py +131 -134
  49. batFramework/particle.py +118 -118
  50. batFramework/propertyEaser.py +79 -79
  51. batFramework/renderGroup.py +34 -34
  52. batFramework/resourceManager.py +130 -130
  53. batFramework/scene.py +31 -31
  54. batFramework/sceneLayer.py +134 -138
  55. batFramework/sceneManager.py +200 -197
  56. batFramework/scrollingSprite.py +115 -115
  57. batFramework/sprite.py +46 -51
  58. batFramework/stateMachine.py +49 -54
  59. batFramework/templates/__init__.py +2 -1
  60. batFramework/templates/character.py +15 -0
  61. batFramework/templates/controller.py +158 -97
  62. batFramework/templates/stateMachine.py +39 -0
  63. batFramework/tileset.py +46 -46
  64. batFramework/timeManager.py +213 -213
  65. batFramework/transition.py +162 -162
  66. batFramework/triggerZone.py +22 -22
  67. batFramework/utils.py +306 -306
  68. {batframework-1.0.9a11.dist-info → batframework-1.0.9a13.dist-info}/LICENSE +20 -20
  69. {batframework-1.0.9a11.dist-info → batframework-1.0.9a13.dist-info}/METADATA +24 -17
  70. batframework-1.0.9a13.dist-info/RECORD +72 -0
  71. batframework-1.0.9a11.dist-info/RECORD +0 -67
  72. {batframework-1.0.9a11.dist-info → batframework-1.0.9a13.dist-info}/WHEEL +0 -0
  73. {batframework-1.0.9a11.dist-info → batframework-1.0.9a13.dist-info}/top_level.txt +0 -0
batFramework/gui/style.py CHANGED
@@ -1,10 +1,10 @@
1
- from .widget import Widget
2
-
3
-
4
- class Style:
5
-
6
- def __init__(self):
7
- pass
8
-
9
- def apply(self, widget: Widget):
10
- pass
1
+ from .widget import Widget
2
+
3
+
4
+ class Style:
5
+
6
+ def __init__(self):
7
+ pass
8
+
9
+ def apply(self, widget: Widget):
10
+ pass
@@ -1,54 +1,49 @@
1
- from ..utils import Singleton
2
- from .widget import Widget
3
-
4
-
5
- class Style:
6
- def __init__(self):
7
- pass
8
-
9
- def apply(self, widget: Widget):
10
- pass
11
-
12
-
13
- class StyleManager(metaclass=Singleton):
14
- def __init__(self):
15
- self.styles: list[Style] = []
16
- self.widgets: set[Widget] = set()
17
- self.lookup: dict[Widget, bool] = {}
18
-
19
- def register_widget(self, widget: Widget):
20
- if widget in self.widgets:
21
- return
22
- self.widgets.add(widget)
23
- self.lookup[widget] = False
24
- self.update()
25
-
26
- def refresh_widget(self, widget: Widget):
27
- if widget in self.widgets:
28
- self.lookup[widget] = False
29
- self.update()
30
-
31
- def remove_widget(self, widget: Widget):
32
- if widget not in self.widgets:
33
- return
34
- self.widgets.remove(widget)
35
- self.lookup.pop(widget)
36
-
37
- def add(self, style: Style):
38
- self.styles.append(style)
39
- self.lookup = {key: False for key in self.lookup}
40
- self.update()
41
-
42
- def update_forced(self):
43
- for widget in self.widgets:
44
- for style in self.styles:
45
- style.apply(widget)
46
- self.lookup[widget] = True
47
-
48
- def update(self):
49
- for widget in self.widgets:
50
- if self.lookup[widget]:
51
- continue
52
- for style in self.styles:
53
- style.apply(widget)
54
- self.lookup[widget] = True
1
+ from ..utils import Singleton
2
+ from .widget import Widget
3
+ from .style import Style
4
+ import batFramework as bf
5
+
6
+ class StyleManager(metaclass=Singleton):
7
+ def __init__(self):
8
+ self.styles: list[Style] = []
9
+ self.widgets: set[Widget] = set()
10
+ self.lookup: dict[Widget, bool] = {}
11
+
12
+ def register_widget(self, widget: Widget):
13
+ if widget in self.widgets:
14
+ return
15
+ self.widgets.add(widget)
16
+ self.lookup[widget] = False
17
+ self.update()
18
+
19
+ def refresh_widget(self, widget: Widget):
20
+ if widget in self.widgets:
21
+ self.lookup[widget] = False
22
+ self.update()
23
+
24
+ def remove_widget(self, widget: Widget):
25
+ if widget not in self.widgets:
26
+ return
27
+ self.widgets.remove(widget)
28
+ self.lookup.pop(widget)
29
+
30
+ def add(self, style: Style):
31
+ self.styles.append(style)
32
+ self.lookup = {key: False for key in self.lookup}
33
+ self.update()
34
+
35
+ def update_forced(self):
36
+ for style in self.styles:
37
+ for widget in self.widgets:
38
+ style.apply(widget)
39
+ for key in self.lookup.keys():
40
+ self.lookup[key] = True
41
+
42
+ def update(self):
43
+ for style in self.styles:
44
+ for widget in self.widgets:
45
+ if self.lookup[widget]:
46
+ continue
47
+ style.apply(widget)
48
+ for key in self.lookup.keys():
49
+ self.lookup[key] = True
@@ -1,49 +1,43 @@
1
- from .widget import Widget
2
- from typing import Callable, Any, Self
3
-
4
- class SyncedVar:
5
- def __init__(self, value=None):
6
- self._value: Any = value
7
- self.modify_callback: Callable[[Any], Any] | None = None
8
- self._bound_widgets: set[tuple[Widget, Callable[[Any], Any]]] = set()
9
-
10
- def set_modify_callback(self, callback : Callable[[Any], Any]) -> Self:
11
- self.modify_callback = callback
12
- return self
13
-
14
- def bind_widget(self, widget: Widget, update_callback: Callable[[Any], Any]) -> Self:
15
- """
16
- Binds a widget to the SyncedVar. The widget must provide an update_callback
17
- function that will be called whenever the value changes.
18
- """
19
- self._bound_widgets.add((widget, update_callback))
20
- self._update_widgets()
21
- return self
22
-
23
- def unbind_widget(self, widget: Widget)->Self:
24
- """
25
- Unbinds a widget from the SyncedVar.
26
- """
27
- self._bound_widgets = {
28
- (w, cb) for w, cb in self._bound_widgets if w != widget
29
- }
30
- return self
31
-
32
- @property
33
- def value(self):
34
- return self._value
35
-
36
- @value.setter
37
- def value(self, new_value):
38
- if self._value != new_value:
39
- self._value = new_value
40
- self._update_widgets()
41
- if self.modify_callback is not None:
42
- self.modify_callback(new_value)
43
-
44
- def _update_widgets(self):
45
- """
46
- Calls the update callback for all bound widgets.
47
- """
48
- for _, update_callback in self._bound_widgets:
49
- update_callback(self._value)
1
+ from typing import TypeVar, Generic, Callable, Any, Self
2
+ from .widget import Widget
3
+ from ..entity import Entity
4
+
5
+ T = TypeVar('T')
6
+
7
+ class SyncedVar(Generic[T]):
8
+ def __init__(self, value: T = None):
9
+ self._value: T = value
10
+ self.modify_callback: Callable[[T], Any] | None = None
11
+ self._bound_entities: set[tuple[Entity, Callable[[T], Any]]] = set()
12
+
13
+ def set_modify_callback(self, callback: Callable[[T], Any]) -> "SyncedVar[T]":
14
+ self.modify_callback = callback
15
+ return self
16
+
17
+ def bind(self, entity, update_callback: Callable[[T], Any]) -> "SyncedVar[T]":
18
+ self._bound_entities.add((entity, update_callback))
19
+ return self
20
+
21
+ def unbind(self, entity: Entity) -> "SyncedVar[T]":
22
+ self._bound_entities = {(e, cb) for e, cb in self._bound_entities if e != entity}
23
+ return self
24
+
25
+ @property
26
+ def value(self) -> T:
27
+ return self._value
28
+
29
+ def set_value(self,value:T)->Self:
30
+ self.value = value
31
+ return self
32
+
33
+ @value.setter
34
+ def value(self, new_value: T):
35
+ if self._value != new_value:
36
+ self._value = new_value
37
+ self.update_bound_entities()
38
+ if self.modify_callback is not None:
39
+ self.modify_callback(new_value)
40
+
41
+ def update_bound_entities(self):
42
+ for _, update_callback in self._bound_entities:
43
+ update_callback(self._value)