代码初始化
This commit is contained in:
1 parent
c2f5cd98ff
commit
e3efeb74ad
2439 files changed
+305661
-1
No files matched your search
@@ -0,0 +1,96 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""将 8 个纯贴图医疗物品加入网易基岩版模组(与 _tmp/add_materials.py 同风格)"""
|
||||
import os, json, shutil
|
||||
|
||||
ROOT = r'e:\MCStudioDownload\work\3027246179@qq.com\Cpp\AddOn\0aaaa4f2f16c46e8964025a5ab0ecc02'
|
||||
BP = os.path.join(ROOT, 'behavior_pack_kcH4M5u0')
|
||||
RP = os.path.join(ROOT, 'resource_pack_t7eJjrxY')
|
||||
TEX_SRC = os.path.join(ROOT, '_sa_medical_textures')
|
||||
|
||||
# id, 中文名, 说明(tooltip)
|
||||
ITEMS = [
|
||||
('plaster', '创可贴', '医疗用品,用于轻度包扎治疗。'),
|
||||
('splint', '夹板', '医疗用品,用于固定骨折部位。'),
|
||||
('alcohol_wipes', '酒精湿巾', '医疗用品,用于消毒。'),
|
||||
('blood_bag', '血袋', '医疗用品,用于输血补血。'),
|
||||
('blood_bag_empty', '空血袋', '空的血袋,可用于采集血液。'),
|
||||
('painkiller_pills', '止痛药丸', '口服止痛药,可缓解疼痛。'),
|
||||
('stamina_boost_pills', '耐力增强药丸', '口服增强药,可提升耐力。'),
|
||||
('tube', '管子', '医疗用品,用于输液。'),
|
||||
]
|
||||
|
||||
# 1) 复制贴图
|
||||
tex_dst = os.path.join(RP, 'textures', 'items')
|
||||
for i, _, _ in ITEMS:
|
||||
shutil.copyfile(os.path.join(TEX_SRC, i + '.png'), os.path.join(tex_dst, i + '.png'))
|
||||
|
||||
# 2) 行为包物品 json
|
||||
for i, _, tip in ITEMS:
|
||||
obj = {
|
||||
"format_version": "1.10",
|
||||
"minecraft:item": {
|
||||
"components": {
|
||||
"minecraft:max_stack_size": 64,
|
||||
"netease:customtips": {"value": tip}
|
||||
},
|
||||
"description": {
|
||||
"category": "dn_sa",
|
||||
"identifier": "dn_sa:" + i
|
||||
}
|
||||
}
|
||||
}
|
||||
with open(os.path.join(BP, 'netease_items_beh', 'dn_sa_%s.json' % i), 'w', encoding='utf-8') as f:
|
||||
json.dump(obj, f, ensure_ascii=False, indent=4)
|
||||
|
||||
# 3) 资源包物品 json
|
||||
for i, _, _ in ITEMS:
|
||||
obj = {
|
||||
"format_version": "1.10",
|
||||
"minecraft:item": {
|
||||
"components": {"minecraft:icon": "dn_sa:" + i},
|
||||
"description": {"identifier": "dn_sa:" + i}
|
||||
}
|
||||
}
|
||||
with open(os.path.join(RP, 'netease_items_res', 'dn_sa_%s.json' % i), 'w', encoding='utf-8') as f:
|
||||
json.dump(obj, f, ensure_ascii=False, indent=4)
|
||||
|
||||
# 4) item_texture.json 登记
|
||||
itp = os.path.join(RP, 'textures', 'item_texture.json')
|
||||
with open(itp, encoding='utf-8') as f:
|
||||
data = json.load(f)
|
||||
td = data['texture_data']
|
||||
for i, _, _ in ITEMS:
|
||||
td['dn_sa:' + i] = {"textures": "textures/items/" + i}
|
||||
with open(itp, 'w', encoding='utf-8') as f:
|
||||
json.dump(data, f, ensure_ascii=False, indent=4)
|
||||
|
||||
# 5) group_config.json 新增医疗分组
|
||||
gc = os.path.join(BP, 'netease_group', 'group_config.json')
|
||||
with open(gc, encoding='utf-8') as f:
|
||||
gdata = json.load(f)
|
||||
names = [g['group_name'] for g in gdata['groups']]
|
||||
if 'itemGroup.name.dn_sa_med' not in names:
|
||||
gdata['groups'].append({
|
||||
"group_name": "itemGroup.name.dn_sa_med",
|
||||
"icon": "dn_sa:plaster",
|
||||
"list": ["dn_sa:" + i for i, _, _ in ITEMS]
|
||||
})
|
||||
with open(gc, 'w', encoding='utf-8') as f:
|
||||
json.dump(gdata, f, ensure_ascii=False, indent=2)
|
||||
|
||||
# 6) zh_CN.lang
|
||||
lang = os.path.join(RP, 'texts', 'zh_CN.lang')
|
||||
with open(lang, encoding='utf-8') as f:
|
||||
lines = f.read().rstrip('\n').split('\n')
|
||||
existing = set(l.split('=')[0] for l in lines if '=' in l)
|
||||
add = []
|
||||
if 'itemGroup.name.dn_sa_med' not in existing:
|
||||
add.append('itemGroup.name.dn_sa_med=医疗用品')
|
||||
for i, cn, _ in ITEMS:
|
||||
k = 'item.dn_sa:%s.name' % i
|
||||
if k not in existing:
|
||||
add.append('%s=%s' % (k, cn))
|
||||
with open(lang, 'w', encoding='utf-8') as f:
|
||||
f.write('\n'.join(lines) + '\n\n' + '\n'.join(add) + '\n')
|
||||
|
||||
print('OK: %d items' % len(ITEMS))
|
||||
Reference in new issue
Block a user