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.
- {trainerbase-3.8.2 → trainerbase-3.9.0}/PKG-INFO +1 -1
- {trainerbase-3.8.2 → trainerbase-3.9.0}/pyproject.toml +1 -1
- trainerbase-3.9.0/trainerbase/common/__init__.py +0 -0
- trainerbase-3.9.0/trainerbase/common/abc.py +22 -0
- {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/common/keyboard.py +23 -21
- {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/gameobject.py +10 -1
- {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/gui/misc.py +11 -1
- trainerbase-3.8.2/trainerbase/common/__init__.py +0 -3
- {trainerbase-3.8.2 → trainerbase-3.9.0}/LICENSE +0 -0
- {trainerbase-3.8.2 → trainerbase-3.9.0}/README.rst +0 -0
- {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/__init__.py +0 -0
- {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/codeinjection.py +0 -0
- {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/common/helpers.py +0 -0
- {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/common/teleport.py +0 -0
- {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/config.py +0 -0
- {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/gui/__init__.py +0 -0
- {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/gui/helpers.py +0 -0
- {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/gui/injections.py +0 -0
- {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/gui/objects.py +0 -0
- {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/gui/scripts.py +0 -0
- {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/gui/speedhack.py +0 -0
- {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/gui/teleport.py +0 -0
- {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/gui/types.py +0 -0
- {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/main.py +0 -0
- {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/memory.py +0 -0
- {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/scriptengine.py +0 -0
- {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/speedhack.py +0 -0
- {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase/tts.py +0 -0
- {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase_vendor/FASM.EXE +0 -0
- {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase_vendor/speedhack32.dll +0 -0
- {trainerbase-3.8.2 → trainerbase-3.9.0}/trainerbase_vendor/speedhack64.dll +0 -0
|
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
|
-
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|