92 lines
2.3 KiB
Python
92 lines
2.3 KiB
Python
"""Minecraft 26.3 item registry data and automation selectors."""
|
|
from mosfet.info import mcdata
|
|
|
|
ITEMS = {
|
|
'minecraft:' + name: dict(item, protocol_id=item['id'])
|
|
for name, item in mcdata.mcd.items.items()
|
|
}
|
|
|
|
BEDS = [
|
|
'white_bed', 'orange_bed', 'magenta_bed', 'light_blue_bed',
|
|
'yellow_bed', 'lime_bed', 'pink_bed', 'gray_bed', 'light_gray_bed',
|
|
'cyan_bed', 'purple_bed', 'blue_bed', 'brown_bed', 'green_bed',
|
|
'red_bed', 'black_bed',
|
|
]
|
|
SHOVELS = [
|
|
'wooden_shovel', 'stone_shovel', 'golden_shovel', 'iron_shovel',
|
|
'diamond_shovel', 'netherite_shovel',
|
|
]
|
|
AXES = [
|
|
'wooden_axe', 'stone_axe', 'golden_axe', 'iron_axe',
|
|
'diamond_axe', 'netherite_axe',
|
|
]
|
|
SAPLINGS = [
|
|
name for name in mcdata.mcd.blocks
|
|
if name.endswith('_sapling') or name.endswith('_propagule')
|
|
]
|
|
FOOD = [
|
|
'cooked_porkchop', 'cooked_beef', 'bread', 'cooked_chicken',
|
|
'cooked_cod', 'cooked_salmon',
|
|
]
|
|
LOGS = [
|
|
name for name in mcdata.mcd.blocks
|
|
if name.endswith(('_log', '_wood', '_stem', '_hyphae'))
|
|
]
|
|
|
|
|
|
def get_set(names):
|
|
return {
|
|
ITEMS['minecraft:' + name]['protocol_id']
|
|
for name in names if 'minecraft:' + name in ITEMS
|
|
}
|
|
|
|
|
|
BED_IDS = get_set(BEDS)
|
|
SHOVEL_IDS = get_set(SHOVELS)
|
|
AXE_IDS = get_set(AXES)
|
|
FOOD_IDS = get_set(FOOD)
|
|
SAPLING_IDS = get_set(SAPLINGS)
|
|
LOG_IDS = get_set(LOGS)
|
|
ITEM_NAMES = {item['protocol_id']: name.removeprefix('minecraft:')
|
|
for name, item in ITEMS.items()}
|
|
|
|
|
|
def get_id(name):
|
|
return ITEMS['minecraft:' + name]['protocol_id']
|
|
|
|
|
|
def get_name(idx):
|
|
return ITEM_NAMES[idx]
|
|
|
|
|
|
CHEST_ID = get_id('chest')
|
|
GAPPLE_ID = get_id('enchanted_golden_apple')
|
|
SAND_ID = get_id('sand')
|
|
NETHERWART_ID = get_id('nether_wart')
|
|
CARROT_ID = get_id('carrot')
|
|
POTATO_ID = get_id('potato')
|
|
WHEAT_ID = get_id('wheat')
|
|
WHEAT_SEEDS_ID = get_id('wheat_seeds')
|
|
BEETROOT_SEEDS_ID = get_id('beetroot_seeds')
|
|
PUMPKIN_ID = get_id('pumpkin')
|
|
BEETROOT_ID = get_id('beetroot')
|
|
EMERALD_ID = get_id('emerald')
|
|
BERRIES_ID = get_id('sweet_berries')
|
|
IRON_INGOT_ID = get_id('iron_ingot')
|
|
|
|
INIT_NEEDED_ITEMS = BED_IDS | FOOD_IDS
|
|
INIT_NEEDED_ITEMS.add(CHEST_ID)
|
|
NEEDED_ITEMS = INIT_NEEDED_ITEMS
|
|
INIT_WANTED_ITEMS = set()
|
|
WANTED_ITEMS = INIT_WANTED_ITEMS
|
|
|
|
|
|
def set_needed(items):
|
|
global NEEDED_ITEMS
|
|
NEEDED_ITEMS = INIT_NEEDED_ITEMS | items
|
|
|
|
|
|
def set_wanted(items):
|
|
global WANTED_ITEMS
|
|
WANTED_ITEMS = INIT_WANTED_ITEMS | items
|