wynnbuilder-forked-for-changes/py_script/atree-generateID.py

36 lines
1.4 KiB
Python
Raw Normal View History

"""
2022-06-27 09:23:22 +00:00
Generate a JSON Ability Tree [atree_constants_id.json] with:
- All references replaced by numerical IDs
2022-06-27 09:23:22 +00:00
- Extra JSON File with Class: [Original name as key and Assigned IDs as value].
given a JSON Ability Tree with reference as string.
"""
import json
abilDict = {}
2022-06-27 09:23:22 +00:00
with open("atree_constants.json") as f:
data = json.loads(f.read())
for classType, info in data.items():
2022-06-27 09:23:22 +00:00
_id = 0
abilDict[classType] = {}
for abil in info:
2022-06-27 09:23:22 +00:00
abilDict[classType][abil["display_name"]] = _id
_id += 1
2022-06-27 09:23:22 +00:00
with open("atree_ids.json", "w", encoding='utf-8') as id_dest:
json.dump(abilDict, id_dest, ensure_ascii=False, indent=4)
for classType, info in data.items():
for abil in range(len(info)):
2022-06-27 09:23:22 +00:00
info[abil]["id"] = abilDict[classType][info[abil]["display_name"]]
for ref in range(len(info[abil]["parents"])):
2022-06-27 09:23:22 +00:00
info[abil]["parents"][ref] = abilDict[classType][info[abil]["parents"][ref]]
for ref in range(len(info[abil]["dependencies"])):
2022-06-27 09:23:22 +00:00
info[abil]["dependencies"][ref] = abilDict[classType][info[abil]["dependencies"][ref]]
for ref in range(len(info[abil]["blockers"])):
2022-06-27 09:23:22 +00:00
info[abil]["blockers"][ref] = abilDict[classType][info[abil]["blockers"][ref]]
2022-06-27 09:23:22 +00:00
with open('atree_constants_id.json', 'w', encoding='utf-8') as abil_dest:
json.dump(data, abil_dest, ensure_ascii=False, indent=4)