turbine-lib 0.1.5__tar.gz → 0.1.6__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.
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/PKG-INFO +1 -1
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/pyproject.toml +1 -1
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/turbine_lib/datexportapi.py +5 -5
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/turbine_lib/datfile.py +8 -1
- turbine_lib-0.1.6/turbine_lib/jpgsubfile.py +35 -0
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/turbine_lib/subfile.py +1 -0
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/turbine_lib.egg-info/PKG-INFO +1 -1
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/turbine_lib.egg-info/SOURCES.txt +1 -0
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/README.md +0 -0
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/setup.cfg +0 -0
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/turbine_lib/__init__.py +0 -0
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/turbine_lib/binarydata.py +0 -0
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/turbine_lib/database.py +0 -0
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/turbine_lib/ddssubfile.py +0 -0
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/turbine_lib/font_convert.py +0 -0
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/turbine_lib/fontsubfile.py +0 -0
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/turbine_lib/libs/datexport.dll +0 -0
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/turbine_lib/libs/msvcp71.dll +0 -0
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/turbine_lib/libs/msvcp90.dll +0 -0
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/turbine_lib/libs/msvcr71.dll +0 -0
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/turbine_lib/libs/zlib1T.dll +0 -0
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/turbine_lib/subfiledata.py +0 -0
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/turbine_lib/textsubfile.py +0 -0
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/turbine_lib/textutils.py +0 -0
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/turbine_lib/utils.py +0 -0
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/turbine_lib.egg-info/dependency_links.txt +0 -0
- {turbine_lib-0.1.5 → turbine_lib-0.1.6}/turbine_lib.egg-info/top_level.txt +0 -0
|
@@ -72,13 +72,13 @@ class DatExportApi:
|
|
|
72
72
|
# GetSubfileData
|
|
73
73
|
self.get_subfile_data_func = self.datexport_dll.GetSubfileData
|
|
74
74
|
self.get_subfile_data_func.argtypes = [
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
ctypes.c_int32, # handle
|
|
76
|
+
ctypes.c_int32, # file_id
|
|
77
77
|
ctypes.c_void_p, # buffer for storing data
|
|
78
|
-
|
|
79
|
-
ctypes.POINTER(
|
|
78
|
+
ctypes.c_int32, # 0
|
|
79
|
+
ctypes.POINTER(ctypes.c_int32) # version
|
|
80
80
|
]
|
|
81
|
-
self.get_subfile_data_func.restype =
|
|
81
|
+
self.get_subfile_data_func.restype = ctypes.c_int32
|
|
82
82
|
|
|
83
83
|
# CloseDatFile
|
|
84
84
|
self.close_dat_file_func = self.datexport_dll.CloseDatFile
|
|
@@ -5,6 +5,7 @@ from turbine_lib.database import Database
|
|
|
5
5
|
from turbine_lib.datexportapi import DatExportApi
|
|
6
6
|
from turbine_lib.ddssubfile import DDSSubfile
|
|
7
7
|
from turbine_lib.fontsubfile import SubfileFONT
|
|
8
|
+
from turbine_lib.jpgsubfile import SubfileJPG
|
|
8
9
|
from turbine_lib.subfile import string_from_file_type, file_type_from_file_contents, FILE_TYPE, Subfile
|
|
9
10
|
from turbine_lib.subfiledata import SubfileData
|
|
10
11
|
from turbine_lib.textsubfile import TextSubfile
|
|
@@ -243,7 +244,9 @@ class DatFile:
|
|
|
243
244
|
version = 0
|
|
244
245
|
size, version = self.api_.get_subfile_data(
|
|
245
246
|
self.file_handle_, file_id, self.export_data_buf_.data(), version)
|
|
246
|
-
|
|
247
|
+
if size <= 0:
|
|
248
|
+
print(f"File size error: {file_id}")
|
|
249
|
+
return
|
|
247
250
|
data = self.export_data_buf_.cut_data(0, size)
|
|
248
251
|
file_result = self.build_for_export(file_id, data)
|
|
249
252
|
|
|
@@ -285,6 +288,8 @@ class DatFile:
|
|
|
285
288
|
return TextSubfile.build_for_import(old_data, outer_data)
|
|
286
289
|
elif ext == ".dds":
|
|
287
290
|
for_import = DDSSubfile.build_for_import(old_data, outer_data)
|
|
291
|
+
elif ext == ".jpg":
|
|
292
|
+
for_import = SubfileJPG.build_for_import(old_data, outer_data)
|
|
288
293
|
return for_import
|
|
289
294
|
elif ext == ".fontbin":
|
|
290
295
|
for_import = SubfileFONT.build_for_import(old_data, outer_data)
|
|
@@ -334,6 +339,8 @@ class DatFile:
|
|
|
334
339
|
result = DDSSubfile.build_for_export(inner_data)
|
|
335
340
|
elif file_type == FILE_TYPE.FONT:
|
|
336
341
|
result = SubfileFONT.build_for_export(inner_data)
|
|
342
|
+
elif file_type == FILE_TYPE.JPG:
|
|
343
|
+
result = SubfileJPG.build_for_export(inner_data)
|
|
337
344
|
# Add other file types as needed
|
|
338
345
|
else:
|
|
339
346
|
# Default implementation for unknown types
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
from turbine_lib.binarydata import BinaryData
|
|
2
|
+
from turbine_lib.subfile import Subfile
|
|
3
|
+
from turbine_lib.subfiledata import SubfileData
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class JPG:
|
|
7
|
+
"""Marker class for JPG file type"""
|
|
8
|
+
pass
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class SubfileJPG(Subfile):
|
|
12
|
+
"""Python translation of the C++ Subfile<JPG> template specialization"""
|
|
13
|
+
|
|
14
|
+
@staticmethod
|
|
15
|
+
def build_for_export(file_data):
|
|
16
|
+
"""
|
|
17
|
+
Build data for export from JPG file
|
|
18
|
+
:param file_data: BinaryData with file data
|
|
19
|
+
:return: SubfileData with processed data
|
|
20
|
+
"""
|
|
21
|
+
result = SubfileData()
|
|
22
|
+
result.binary_data = file_data.cut_data(24)
|
|
23
|
+
result.options["ext"] = ".jpg"
|
|
24
|
+
return result
|
|
25
|
+
|
|
26
|
+
@staticmethod
|
|
27
|
+
def build_for_import(old_data, data):
|
|
28
|
+
"""
|
|
29
|
+
Build data for import to JPG file
|
|
30
|
+
:param old_data: BinaryData with old data
|
|
31
|
+
:param data: SubfileData with new data
|
|
32
|
+
:return: BinaryData with processed data
|
|
33
|
+
"""
|
|
34
|
+
file_size = BinaryData.from_number(4, data.binary_data.size())
|
|
35
|
+
return old_data.cut_data(0, 20) + file_size + data.binary_data
|
|
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
|