50 lines
1.6 KiB
Python
50 lines
1.6 KiB
Python
# -*- coding: utf-8 -*-
|
|
import zipfile, os, struct
|
|
|
|
root = r'e:\MCStudioDownload\work\3027246179@qq.com\Cpp\AddOn\0aaaa4f2f16c46e8964025a5ab0ecc02'
|
|
jar = os.path.join(root,'_sa_hanhua_out','sa_essentials-forge-1.20.1-1.0.0.jar')
|
|
outdir = os.path.join(root,'_sa_medical_textures')
|
|
os.makedirs(outdir, exist_ok=True)
|
|
|
|
ids = ['plaster','splint','alcohol_wipes','blood_bag','blood_bag_empty',
|
|
'painkiller_pills','stamina_boost_pills','tube']
|
|
|
|
z = zipfile.ZipFile(jar)
|
|
names = set(z.namelist())
|
|
report = []
|
|
|
|
def png_size(data):
|
|
# parse IHDR
|
|
if data[:8] != b'\x89PNG\r\n\x1a\n':
|
|
return None
|
|
w,h = struct.unpack('>II', data[16:24])
|
|
return (w,h)
|
|
|
|
for i in ids:
|
|
src = 'assets/sa_combat/textures/item/%s.png' % i
|
|
if src in names:
|
|
data = z.read(src)
|
|
with open(os.path.join(outdir, i+'.png'),'wb') as f:
|
|
f.write(data)
|
|
report.append('%s size=%s bytes=%d' % (i, png_size(data), len(data)))
|
|
else:
|
|
report.append('%s MISSING' % i)
|
|
|
|
# lang files
|
|
langs = [n for n in names if n.endswith('.json') and '/lang/' in n]
|
|
report.append('--- lang files ---')
|
|
report.append('\n'.join(langs))
|
|
for lf in langs:
|
|
try:
|
|
txt = z.read(lf).decode('utf-8', 'ignore')
|
|
except Exception as e:
|
|
continue
|
|
for i in ids:
|
|
for line in txt.splitlines():
|
|
low = line.lower()
|
|
if ('"%s"' % i) in low or ('.%s.' % i) in low or ('.%s"' % i) in low:
|
|
report.append('[%s] %s' % (os.path.basename(lf), line.strip()))
|
|
|
|
with open(os.path.join(root,'_sa_hanhua_out','_tmp','medical_tex.txt'),'w',encoding='utf-8') as f:
|
|
f.write('\n'.join(report))
|
|
print('done') |