trainerbase 4.6.5__tar.gz → 4.7.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-4.6.5 → trainerbase-4.7.0}/PKG-INFO +2 -2
- {trainerbase-4.6.5 → trainerbase-4.7.0}/pyproject.toml +2 -2
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/gui/objects.py +23 -2
- {trainerbase-4.6.5 → trainerbase-4.7.0}/README.md +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/__init__.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/abc.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/codeinjection.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/common/__init__.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/common/abc.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/common/helpers.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/common/keyboard.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/common/rainbow.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/common/tapper.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/common/teleport.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/config.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/gameobject.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/gui/__init__.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/gui/helpers.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/gui/injections.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/gui/misc.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/gui/rainbow.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/gui/scripts.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/gui/speedhack.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/gui/tapper.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/gui/teleport.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/gui/types.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/logger.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/main.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/memory.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/process.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/py.typed +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/scriptengine.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/speedhack.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/tts.py +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/vendor/FASM.EXE +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/vendor/big_logo.png +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/vendor/speedhack32.dll +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/vendor/speedhack64.dll +0 -0
- {trainerbase-4.6.5 → trainerbase-4.7.0}/trainerbase/vendor/trainerbase.ico +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: trainerbase
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.7.0
|
|
4
4
|
Summary: Framework for creating game trainers/mods
|
|
5
5
|
Author: v01d, doomayka
|
|
6
|
-
Author-email: v01d <v01d@v01d.ru>, doomayka <
|
|
6
|
+
Author-email: v01d <v01d@v01d.ru>, doomayka <doomaykaka@gmail.com>
|
|
7
7
|
License-Expression: MIT
|
|
8
8
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
9
9
|
Classifier: Programming Language :: Python :: 3.14
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "trainerbase"
|
|
3
|
-
version = "4.
|
|
3
|
+
version = "4.7.0"
|
|
4
4
|
description = "Framework for creating game trainers/mods"
|
|
5
5
|
license = "MIT"
|
|
6
6
|
authors = [
|
|
7
7
|
{ name = "v01d", email = "v01d@v01d.ru" },
|
|
8
|
-
{ name = "doomayka", email = "
|
|
8
|
+
{ name = "doomayka", email = "doomaykaka@gmail.com" },
|
|
9
9
|
]
|
|
10
10
|
requires-python = ">=3.14"
|
|
11
11
|
readme = "README.md"
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from collections.abc import Callable
|
|
2
2
|
from contextlib import suppress
|
|
3
|
+
from enum import Enum
|
|
3
4
|
from typing import Any, ClassVar, Self, override
|
|
4
5
|
from uuid import uuid4
|
|
5
6
|
|
|
@@ -43,6 +44,7 @@ class GameObjectUI(AbstractUIComponent):
|
|
|
43
44
|
before_set: Callable | None = None,
|
|
44
45
|
tts_on_hotkey: bool = True,
|
|
45
46
|
setter_input_width: int = 220,
|
|
47
|
+
enum: type[Enum] | None = None,
|
|
46
48
|
):
|
|
47
49
|
if not gameobject.is_tracked:
|
|
48
50
|
freeze_hotkey = None
|
|
@@ -56,6 +58,7 @@ class GameObjectUI(AbstractUIComponent):
|
|
|
56
58
|
self.before_set = before_set
|
|
57
59
|
self.tts_on_hotkey = tts_on_hotkey
|
|
58
60
|
self.setter_input_width = setter_input_width
|
|
61
|
+
self.enum = enum
|
|
59
62
|
|
|
60
63
|
dpg_tag = f"{self.DPG_TAG_PREFIX}{uuid4()}"
|
|
61
64
|
self.dpg_tag_frozen = f"{dpg_tag}{self.DPG_TAG_POSTFIX_IS_FROZEN}"
|
|
@@ -89,9 +92,15 @@ class GameObjectUI(AbstractUIComponent):
|
|
|
89
92
|
default_kwargs = {
|
|
90
93
|
"tag": self.dpg_tag_setter,
|
|
91
94
|
"width": self.setter_input_width,
|
|
92
|
-
"default_value": self.default_setter_input_value
|
|
95
|
+
"default_value": self.default_setter_input_value.name
|
|
96
|
+
if isinstance(self.default_setter_input_value, Enum)
|
|
97
|
+
else self.default_setter_input_value,
|
|
93
98
|
}
|
|
94
99
|
|
|
100
|
+
if self.enum is not None:
|
|
101
|
+
dpg.add_combo(list(self.enum.__members__.keys()), **default_kwargs)
|
|
102
|
+
return
|
|
103
|
+
|
|
95
104
|
if self.gameobject.value_range is not None:
|
|
96
105
|
min_value, max_value = self.gameobject.value_range
|
|
97
106
|
default_kwargs["min_clamped"] = True
|
|
@@ -141,7 +150,12 @@ class GameObjectUI(AbstractUIComponent):
|
|
|
141
150
|
|
|
142
151
|
def on_value_set(self):
|
|
143
152
|
raw_new_value = dpg.get_value(self.dpg_tag_setter)
|
|
153
|
+
if self.enum is not None:
|
|
154
|
+
raw_new_value = self.enum[raw_new_value]
|
|
155
|
+
|
|
144
156
|
new_value = raw_new_value if self.before_set is None else self.before_set(raw_new_value)
|
|
157
|
+
if isinstance(new_value, Enum):
|
|
158
|
+
new_value = new_value.value
|
|
145
159
|
|
|
146
160
|
if self.gameobject.frozen is None:
|
|
147
161
|
with suppress(MemoryWriteError, ValueError):
|
|
@@ -164,6 +178,13 @@ def update_displayed_objects():
|
|
|
164
178
|
try:
|
|
165
179
|
new_value = game_object_ui.gameobject.value
|
|
166
180
|
except MemoryReadError:
|
|
167
|
-
|
|
181
|
+
dpg.set_value(game_object_ui.dpg_tag_getter, "<Unresolved>")
|
|
182
|
+
continue
|
|
183
|
+
|
|
184
|
+
if game_object_ui.enum is not None:
|
|
185
|
+
try:
|
|
186
|
+
new_value = game_object_ui.enum(new_value).name
|
|
187
|
+
except ValueError:
|
|
188
|
+
new_value = "<InvalidEnumValue>"
|
|
168
189
|
|
|
169
190
|
dpg.set_value(game_object_ui.dpg_tag_getter, new_value)
|
|
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
|
|
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
|