trainerbase 3.8.2__tar.gz → 3.9.0__tar.gz

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 (31) hide show
  1. {trainerbase-3.8.2 → trainerbase-3.9.0}/PKG-INFO +1 -1
  2. {trainerbase-3.8.2 → trainerbase-3.9.0}/pyproject.toml +1 -1
  3. trainerbase-3.9.0/trainerbase/common/__init__.py +0 -0
  4. trainerbase-3.9.0/trainerbase/common/abc.py +22 -0
  5. {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/common/keyboard.py +23 -21
  6. {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/gameobject.py +10 -1
  7. {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/gui/misc.py +11 -1
  8. trainerbase-3.8.2/trainerbase/common/__init__.py +0 -3
  9. {trainerbase-3.8.2 → trainerbase-3.9.0}/LICENSE +0 -0
  10. {trainerbase-3.8.2 → trainerbase-3.9.0}/README.rst +0 -0
  11. {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/__init__.py +0 -0
  12. {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/codeinjection.py +0 -0
  13. {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/common/helpers.py +0 -0
  14. {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/common/teleport.py +0 -0
  15. {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/config.py +0 -0
  16. {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/gui/__init__.py +0 -0
  17. {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/gui/helpers.py +0 -0
  18. {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/gui/injections.py +0 -0
  19. {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/gui/objects.py +0 -0
  20. {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/gui/scripts.py +0 -0
  21. {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/gui/speedhack.py +0 -0
  22. {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/gui/teleport.py +0 -0
  23. {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/gui/types.py +0 -0
  24. {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/main.py +0 -0
  25. {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/memory.py +0 -0
  26. {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/scriptengine.py +0 -0
  27. {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/speedhack.py +0 -0
  28. {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/tts.py +0 -0
  29. {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase_vendor/FASM.EXE +0 -0
  30. {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase_vendor/speedhack32.dll +0 -0
  31. {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase_vendor/speedhack64.dll +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: trainerbase
3
- Version: 3.8.2
3
+ Version: 3.9.0
4
4
  Summary: Framework for creating game trainers/mods
5
5
  Home-page: https://gitlab.com/python-trainers/trainer-base
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "trainerbase"
3
- version = "3.8.2"
3
+ version = "3.9.0"
4
4
  description = "Framework for creating game trainers/mods"
5
5
  authors = ["v01d <v01d@v01d.ru>", "doomayka <zd@doomayka.ru>"]
6
6
  license = "MIT"
File without changes
@@ -0,0 +1,22 @@
1
+ from abc import ABC, abstractmethod
2
+
3
+
4
+ class Switchable(ABC):
5
+ @abstractmethod
6
+ def enable(self):
7
+ pass
8
+
9
+ @abstractmethod
10
+ def disable(self):
11
+ pass
12
+
13
+
14
+ class AbstractKeyboardHandler(ABC):
15
+ @property
16
+ @abstractmethod
17
+ def hotkey(self) -> str:
18
+ pass
19
+
20
+ @abstractmethod
21
+ def handle(self):
22
+ pass
@@ -1,19 +1,11 @@
1
- from abc import ABC, abstractmethod
2
1
  from collections.abc import Callable
3
2
  from time import time
4
3
  from typing import override
5
4
 
6
5
  from keyboard import add_hotkey, on_press_key, on_release_key
7
6
 
8
-
9
- class Switchable(ABC):
10
- @abstractmethod
11
- def enable(self):
12
- pass
13
-
14
- @abstractmethod
15
- def disable(self):
16
- pass
7
+ from trainerbase.common.abc import AbstractKeyboardHandler, Switchable
8
+ from trainerbase.gameobject import GameBool
17
9
 
18
10
 
19
11
  class SimpleSwitchable(Switchable):
@@ -30,17 +22,6 @@ class SimpleSwitchable(Switchable):
30
22
  self._on_disabled()
31
23
 
32
24
 
33
- class AbstractKeyboardHandler(ABC):
34
- @property
35
- @abstractmethod
36
- def hotkey(self) -> str:
37
- pass
38
-
39
- @abstractmethod
40
- def handle(self):
41
- pass
42
-
43
-
44
25
  class SimpleHotkeyHandler(AbstractKeyboardHandler):
45
26
  def __init__(self, callback: Callable[[], None], hotkey: str):
46
27
  self._callback = callback
@@ -80,6 +61,27 @@ class ReleaseHotkeySwitch(AbstractKeyboardHandler):
80
61
  on_release_key(self._key, self._on_release)
81
62
 
82
63
 
64
+ class GameBoolReleaseHotkeySwitch(AbstractKeyboardHandler):
65
+ def __init__(self, game_bool: GameBool, key: str):
66
+ self._key = key
67
+ self._game_bool = game_bool
68
+
69
+ def _on_release(self, _):
70
+ if self._game_bool.value:
71
+ self._game_bool.disable()
72
+ else:
73
+ self._game_bool.enable()
74
+
75
+ @property
76
+ @override
77
+ def hotkey(self):
78
+ return self._key
79
+
80
+ @override
81
+ def handle(self):
82
+ on_release_key(self._key, self._on_release)
83
+
84
+
83
85
  class ShortLongHotkeyPressSwitch(AbstractKeyboardHandler):
84
86
  def __init__(self, switchable: Switchable, key: str, short_press_max_delta: float = 0.3):
85
87
  self._key = key
@@ -3,6 +3,7 @@ from typing import Self, override
3
3
 
4
4
  from pymem.exception import MemoryWriteError
5
5
 
6
+ from trainerbase.common.abc import Switchable
6
7
  from trainerbase.memory import ConvertibleToAddress, ensure_address, pm
7
8
 
8
9
 
@@ -167,12 +168,20 @@ class GameUnsignedLongLong(GameObject[int, int]):
167
168
  pm_write = pm.write_ulonglong
168
169
 
169
170
 
170
- class GameBool(GameObject[bool, bool]):
171
+ class GameBool(GameObject[bool, bool], Switchable):
171
172
  value_range: tuple[bool, bool] = (False, True)
172
173
 
173
174
  pm_read = pm.read_bool # type: ignore
174
175
  pm_write = pm.write_bool
175
176
 
177
+ @override
178
+ def enable(self):
179
+ self.value = True # pylint: disable=attribute-defined-outside-init
180
+
181
+ @override
182
+ def disable(self):
183
+ self.value = False # pylint: disable=attribute-defined-outside-init
184
+
176
185
 
177
186
  class ReadonlyGameObjectSumGetter(AbstractReadableObject[int | float]):
178
187
  def __init__(self, *game_numbers: GameInt | GameFloat):
@@ -8,13 +8,23 @@ from trainerbase.gui.types import AbstractUIComponent
8
8
 
9
9
 
10
10
  class SeparatorUI(AbstractUIComponent):
11
+ def __init__(self, empty_lines_before: int = 1, empty_lines_after: int = 0):
12
+ self._empty_lines_before = empty_lines_before
13
+ self._empty_lines_after = empty_lines_after
14
+
11
15
  @override
12
16
  def add_to_ui(self) -> None:
17
+ for _ in range(self._empty_lines_before):
18
+ dpg.add_text()
19
+
13
20
  dpg.add_separator()
14
21
 
22
+ for _ in range(self._empty_lines_after):
23
+ dpg.add_text()
24
+
15
25
 
16
26
  class TextUI(AbstractUIComponent):
17
- def __init__(self, text: str):
27
+ def __init__(self, text: str = ""):
18
28
  self.text = text
19
29
 
20
30
  @override
@@ -1,3 +0,0 @@
1
- from .helpers import *
2
- from .keyboard import *
3
- from .teleport import *
File without changes
File without changes