turbine-lib 0.1.5__py3-none-any.whl → 0.1.6__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.
@@ -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
- wintypes.INT, # handle
76
- wintypes.INT, # file_id
75
+ ctypes.c_int32, # handle
76
+ ctypes.c_int32, # file_id
77
77
  ctypes.c_void_p, # buffer for storing data
78
- wintypes.INT, # 0
79
- ctypes.POINTER(wintypes.INT) # version
78
+ ctypes.c_int32, # 0
79
+ ctypes.POINTER(ctypes.c_int32) # version
80
80
  ]
81
- self.get_subfile_data_func.restype = wintypes.INT
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
turbine_lib/datfile.py CHANGED
@@ -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
turbine_lib/subfile.py CHANGED
@@ -39,6 +39,7 @@ def file_type_from_file_contents(file_id, file_data):
39
39
  # jpeg / dds check
40
40
  if (file_id >> 24) == 0x41:
41
41
  soi = file_data.to_number(2, 24)
42
+
42
43
  # long long marker = file_data.ToNumber<2>(26)
43
44
 
44
45
  # auto markerSize = header.ToNumber<short>(28)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: turbine_lib
3
- Version: 0.1.5
3
+ Version: 0.1.6
4
4
  Summary: 仅支持Windows 32位Python的库
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: License :: OSI Approved :: MIT License
@@ -1,12 +1,13 @@
1
1
  turbine_lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  turbine_lib/binarydata.py,sha256=lu1XSkqGIyLASJPbbf0UJuZ-E2rrLw0EC6Oq7P8DeBs,4505
3
3
  turbine_lib/database.py,sha256=iFcTJq-HwEQAIpnVSeGrAWU751J7DlbWsE44XdTQyM0,5114
4
- turbine_lib/datexportapi.py,sha256=680sjmTDXq8WIEIEuIs48wm6BfhF4JaOgXnT_ep_h6Q,12745
5
- turbine_lib/datfile.py,sha256=MtkQT8eOmbtSYK3aUmuhFV1-Q9HgxZeqMmy67h8WQCI,13572
4
+ turbine_lib/datexportapi.py,sha256=j6Nr_FoE7HKGMxZ8St9eA9rFkrb3x1eh4fXgIHPbnAc,12755
5
+ turbine_lib/datfile.py,sha256=NcBMCZEIcBLIQ02fUf-aVY5mQDe1QmFYOlwKRlDKYjA,13919
6
6
  turbine_lib/ddssubfile.py,sha256=8P8PSFwMUa9QtWZVNdh_XG6MVjk80W-5SwPrcaF3zIY,10435
7
7
  turbine_lib/font_convert.py,sha256=Y56l57ioGVeHWYcWUuIZBQq-jbVmg_CktStuLBIHkd4,12873
8
8
  turbine_lib/fontsubfile.py,sha256=VYghH26_6dhCHaNVPEhwQXpt1m7S-VZ53kPRGro1KIY,920
9
- turbine_lib/subfile.py,sha256=AYJaJR9FYUcLKaUpHgHu4HXU6m81S4BVb9naugws4ko,2767
9
+ turbine_lib/jpgsubfile.py,sha256=isaimLYMc2RbtvWPRtDihyb0jx1YFKr3btK4PfezOCw,1085
10
+ turbine_lib/subfile.py,sha256=LymKgt0YbY1YcqJn1U6ys0jjrrhe1pIbLcvwwtPuqVw,2768
10
11
  turbine_lib/subfiledata.py,sha256=jwMci9SPW6kycayfz_6K6hhNphNiZWcEMF--ECTJBZ8,1070
11
12
  turbine_lib/textsubfile.py,sha256=XloEtHUx4nf_TrJkZGBgkJdG_A8Bxb6tQN7yGmS91uk,13354
12
13
  turbine_lib/textutils.py,sha256=JcJKd4gjdvR023wTMSCOhyTWs5_kHp3W1sAY0uMPe1Q,759
@@ -16,7 +17,7 @@ turbine_lib/libs/msvcp71.dll,sha256=35YVb2pUj9b-VnKRjeWuRQnTyBCle__SqR3kWj7Vsjs,
16
17
  turbine_lib/libs/msvcp90.dll,sha256=BpGM-ZrSbNbPEGiBwNW9shLcC6xFSYBcn1kG49A9FSw,569680
17
18
  turbine_lib/libs/msvcr71.dll,sha256=gJSvXuMQcUyuvMru53af-wgEhQO6R4uHnt_vXxok_v4,348160
18
19
  turbine_lib/libs/zlib1T.dll,sha256=fiPxt97AbyHE_GVYpIDVldSFPUFjV8xVQRRkhxwenBQ,63000
19
- turbine_lib-0.1.5.dist-info/METADATA,sha256=bx4r2Pu1eRzK1IIcMvkLld6g9QezeyqpegDHbmzHEys,417
20
- turbine_lib-0.1.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
21
- turbine_lib-0.1.5.dist-info/top_level.txt,sha256=LVLiMIuAzr6r6OUWftVdJcXucgUlW6Y6XWw4gUoUWQI,12
22
- turbine_lib-0.1.5.dist-info/RECORD,,
20
+ turbine_lib-0.1.6.dist-info/METADATA,sha256=nqh15tFAEKCj4HbHw5T37asVPghnftEb-dn6Ca0V1AM,417
21
+ turbine_lib-0.1.6.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
22
+ turbine_lib-0.1.6.dist-info/top_level.txt,sha256=LVLiMIuAzr6r6OUWftVdJcXucgUlW6Y6XWw4gUoUWQI,12
23
+ turbine_lib-0.1.6.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5