Archipelago/worlds/raft/Items.py

56 lines
2.1 KiB
Python

import json
import os
def createResourcePackName(amount: int, itemName: str):
return "Resource Pack: " + str(amount) + " " + itemName
with open(os.path.join(os.path.dirname(__file__), 'items.json'), 'r') as file:
item_table = json.loads(file.read())
with open(os.path.join(os.path.dirname(__file__), 'progressives.json'), 'r') as file:
progressive_table = json.loads(file.read())
with open(os.path.join(os.path.dirname(__file__), 'resourcepacks.json'), 'r') as file:
resourcepack_items = json.loads(file.read())
lookup_id_to_name = {}
lookup_name_to_item = {}
advancement_item_names = set()
lastItemId = -1
for item in item_table:
item_name = item["name"]
lookup_id_to_name[item["id"]] = item_name
lookup_name_to_item[item_name] = item
if item["progression"]:
advancement_item_names.add(item_name)
lastItemId = max(lastItemId, item["id"])
progressive_item_list = {}
for item in progressive_table:
progressiveName = progressive_table[item]
if progressiveName not in progressive_item_list:
progressive_item_list[progressiveName] = []
progressive_item_list[progressiveName].append(item)
for progressiveItemName in progressive_item_list.keys():
lastItemId += 1
generatedItem = {}
generatedItem["id"] = lastItemId
generatedItem["name"] = progressiveItemName
generatedItem["progression"] = lookup_name_to_item[progressive_item_list[progressiveItemName][0]]["progression"]
lookup_name_to_item[progressiveItemName] = generatedItem
lookup_id_to_name[lastItemId] = progressiveItemName
# Generate resource pack items
for packItem in resourcepack_items:
for i in range(1, 16): # 1-15
lastItemId += 1
rpName = createResourcePackName(i, packItem)
generatedItem = {}
generatedItem["id"] = lastItemId
generatedItem["name"] = rpName
generatedItem["progression"] = False
lookup_name_to_item[rpName] = generatedItem
lookup_id_to_name[lastItemId] = rpName
lookup_id_to_name[None] = "Victory"
lookup_name_to_id = {name: id for id, name in lookup_id_to_name.items()}