Files
2026-10-09 18:23:57 +08:00

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')