Move blocks, items, mcdata, mobs to info/ folder
This commit is contained in:
		
							
								
								
									
										302
									
								
								mosfet/info/blocks.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										302
									
								
								mosfet/info/blocks.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,302 @@
 | 
			
		||||
import json
 | 
			
		||||
import importlib
 | 
			
		||||
 | 
			
		||||
from mosfet.info import mcdata
 | 
			
		||||
 | 
			
		||||
MCD_BLOCKS = {}
 | 
			
		||||
for d in mcdata.mcd.blocks.values():
 | 
			
		||||
    MCD_BLOCKS[d['name']] = d
 | 
			
		||||
 | 
			
		||||
with open('minecraft_data/blocks.json') as f:
 | 
			
		||||
    JSON_BLOCKS = json.load(f)
 | 
			
		||||
 | 
			
		||||
BLOCKS = {}
 | 
			
		||||
for name, data in JSON_BLOCKS.items():
 | 
			
		||||
    for state in data['states']:
 | 
			
		||||
        BLOCKS[state['id']] = name.replace('minecraft:', '')
 | 
			
		||||
 | 
			
		||||
BREAK_DISTANCE = 6
 | 
			
		||||
 | 
			
		||||
AIR = 0
 | 
			
		||||
STONE = 1
 | 
			
		||||
SAND = 66
 | 
			
		||||
SINGLE_SNOW = 3921
 | 
			
		||||
SOUL_TORCH = 4008
 | 
			
		||||
EMERALD_BLOCK = 5407
 | 
			
		||||
 | 
			
		||||
TEST_BLOCK = (616, 78, 496)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
AVOID = [
 | 
			
		||||
    'lava',
 | 
			
		||||
    'water',
 | 
			
		||||
    'fire',
 | 
			
		||||
    'magma_block',
 | 
			
		||||
    'oak_fence',
 | 
			
		||||
    'oak_fence_gate',
 | 
			
		||||
    'nether_brick_fence',
 | 
			
		||||
    'spruce_fence_gate',
 | 
			
		||||
    'birch_fence_gate',
 | 
			
		||||
    'jungle_fence_gate',
 | 
			
		||||
    'acacia_fence_gate',
 | 
			
		||||
    'dark_oak_fence_gate',
 | 
			
		||||
    'spruce_fence',
 | 
			
		||||
    'birch_fence',
 | 
			
		||||
    'jungle_fence',
 | 
			
		||||
    'acacia_fence',
 | 
			
		||||
    'dark_oak_fence',
 | 
			
		||||
    'sweet_berry_bush',
 | 
			
		||||
    'nether_portal',
 | 
			
		||||
    'end_portal',
 | 
			
		||||
    'cobblestone_wall',
 | 
			
		||||
    'mossy_cobblestone_wall',
 | 
			
		||||
    'brick_wall',
 | 
			
		||||
    'prismarine_wall',
 | 
			
		||||
    'red_sandstone_wall',
 | 
			
		||||
    'mossy_stone_brick_wall',
 | 
			
		||||
    'granite_wall',
 | 
			
		||||
    'stone_brick_wall',
 | 
			
		||||
    'nether_brick_wall',
 | 
			
		||||
    'andesite_wall',
 | 
			
		||||
    'red_nether_brick_wall',
 | 
			
		||||
    'sandstone_wall',
 | 
			
		||||
    'end_stone_brick_wall',
 | 
			
		||||
    'diorite_wall',
 | 
			
		||||
    'oak_sapling',       # saplings can grow up and hurt
 | 
			
		||||
    'spruce_sapling',
 | 
			
		||||
    'birch_sapling',
 | 
			
		||||
    'jungle_sapling',
 | 
			
		||||
    'acacia_sapling',
 | 
			
		||||
    'dark_oak_sapling',
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
NON_SOLID = [
 | 
			
		||||
    'air',
 | 
			
		||||
    'powered_rail',
 | 
			
		||||
    'detector_rail',
 | 
			
		||||
    'grass',
 | 
			
		||||
    'fern',
 | 
			
		||||
    'dead_bush',
 | 
			
		||||
    'seagrass',
 | 
			
		||||
    'tall_seagrass',
 | 
			
		||||
    'dandelion',
 | 
			
		||||
    'poppy',
 | 
			
		||||
    'blue_orchid',
 | 
			
		||||
    'allium',
 | 
			
		||||
    'azure_bluet',
 | 
			
		||||
    'red_tulip',
 | 
			
		||||
    'orange_tulip',
 | 
			
		||||
    'white_tulip',
 | 
			
		||||
    'pink_tulip',
 | 
			
		||||
    'oxeye_daisy',
 | 
			
		||||
    'cornflower',
 | 
			
		||||
    'wither_rose',
 | 
			
		||||
    'lily_of_the_valley',
 | 
			
		||||
    'brown_mushroom',
 | 
			
		||||
    'red_mushroom',
 | 
			
		||||
    'torch',
 | 
			
		||||
    'wall_torch',
 | 
			
		||||
    'redstone_wire',
 | 
			
		||||
    'wheat',
 | 
			
		||||
    'oak_sign',
 | 
			
		||||
    'spruce_sign',
 | 
			
		||||
    'birch_sign',
 | 
			
		||||
    'acacia_sign',
 | 
			
		||||
    'jungle_sign',
 | 
			
		||||
    'dark_oak_sign',
 | 
			
		||||
    'rail',
 | 
			
		||||
    'oak_wall_sign',
 | 
			
		||||
    'spruce_wall_sign',
 | 
			
		||||
    'birch_wall_sign',
 | 
			
		||||
    'acacia_wall_sign',
 | 
			
		||||
    'jungle_wall_sign',
 | 
			
		||||
    'dark_oak_wall_sign',
 | 
			
		||||
    'lever',
 | 
			
		||||
    'stone_pressure_plate',
 | 
			
		||||
    'oak_pressure_plate',
 | 
			
		||||
    'spruce_pressure_plate',
 | 
			
		||||
    'birch_pressure_plate',
 | 
			
		||||
    'jungle_pressure_plate',
 | 
			
		||||
    'acacia_pressure_plate',
 | 
			
		||||
    'dark_oak_pressure_plate',
 | 
			
		||||
    'redstone_torch',
 | 
			
		||||
    'redstone_wall_torch',
 | 
			
		||||
    'stone_button',
 | 
			
		||||
    'sugar_cane',
 | 
			
		||||
    'repeater',
 | 
			
		||||
    'attached_pumpkin_stem',
 | 
			
		||||
    'attached_melon_stem',
 | 
			
		||||
    'pumpkin_stem',
 | 
			
		||||
    'melon_stem',
 | 
			
		||||
    'nether_wart',
 | 
			
		||||
    'tripwire_hook',
 | 
			
		||||
    'tripwire',
 | 
			
		||||
    'carrots',
 | 
			
		||||
    'potatoes',
 | 
			
		||||
    'oak_button',
 | 
			
		||||
    'spruce_button',
 | 
			
		||||
    'birch_button',
 | 
			
		||||
    'jungle_button',
 | 
			
		||||
    'acacia_button',
 | 
			
		||||
    'dark_oak_button',
 | 
			
		||||
    'light_weighted_pressure_plate',
 | 
			
		||||
    'heavy_weighted_pressure_plate',
 | 
			
		||||
    'comparator',
 | 
			
		||||
    'activator_rail',
 | 
			
		||||
    'white_carpet',
 | 
			
		||||
    'orange_carpet',
 | 
			
		||||
    'magenta_carpet',
 | 
			
		||||
    'light_blue_carpet',
 | 
			
		||||
    'yellow_carpet',
 | 
			
		||||
    'lime_carpet',
 | 
			
		||||
    'pink_carpet',
 | 
			
		||||
    'gray_carpet',
 | 
			
		||||
    'light_gray_carpet',
 | 
			
		||||
    'cyan_carpet',
 | 
			
		||||
    'purple_carpet',
 | 
			
		||||
    'blue_carpet',
 | 
			
		||||
    'brown_carpet',
 | 
			
		||||
    'green_carpet',
 | 
			
		||||
    'red_carpet',
 | 
			
		||||
    'black_carpet',
 | 
			
		||||
    'sunflower',
 | 
			
		||||
    'lilac',
 | 
			
		||||
    'rose_bush',
 | 
			
		||||
    'peony',
 | 
			
		||||
    'tall_grass',
 | 
			
		||||
    'large_fern',
 | 
			
		||||
    'white_banner',
 | 
			
		||||
    'orange_banner',
 | 
			
		||||
    'magenta_banner',
 | 
			
		||||
    'light_blue_banner',
 | 
			
		||||
    'yellow_banner',
 | 
			
		||||
    'lime_banner',
 | 
			
		||||
    'pink_banner',
 | 
			
		||||
    'gray_banner',
 | 
			
		||||
    'light_gray_banner',
 | 
			
		||||
    'cyan_banner',
 | 
			
		||||
    'purple_banner',
 | 
			
		||||
    'blue_banner',
 | 
			
		||||
    'brown_banner',
 | 
			
		||||
    'green_banner',
 | 
			
		||||
    'red_banner',
 | 
			
		||||
    'black_banner',
 | 
			
		||||
    'white_wall_banner',
 | 
			
		||||
    'orange_wall_banner',
 | 
			
		||||
    'magenta_wall_banner',
 | 
			
		||||
    'light_blue_wall_banner',
 | 
			
		||||
    'yellow_wall_banner',
 | 
			
		||||
    'lime_wall_banner',
 | 
			
		||||
    'pink_wall_banner',
 | 
			
		||||
    'gray_wall_banner',
 | 
			
		||||
    'light_gray_wall_banner',
 | 
			
		||||
    'cyan_wall_banner',
 | 
			
		||||
    'purple_wall_banner',
 | 
			
		||||
    'blue_wall_banner',
 | 
			
		||||
    'brown_wall_banner',
 | 
			
		||||
    'green_wall_banner',
 | 
			
		||||
    'red_wall_banner',
 | 
			
		||||
    'black_wall_banner',
 | 
			
		||||
    'beetroots',
 | 
			
		||||
    'bamboo_sapling',
 | 
			
		||||
    'void_air',
 | 
			
		||||
    'cave_air',
 | 
			
		||||
    'lantern',
 | 
			
		||||
    'soul_torch',
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
LOGS = [
 | 
			
		||||
    'oak_log',
 | 
			
		||||
    'spruce_log',
 | 
			
		||||
    'birch_log',
 | 
			
		||||
    'jungle_log',
 | 
			
		||||
    'acacia_log',
 | 
			
		||||
    'dark_oak_log',
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
LEAVES = [
 | 
			
		||||
    'oak_leaves',
 | 
			
		||||
    'spruce_leaves',
 | 
			
		||||
    'birch_leaves',
 | 
			
		||||
    'jungle_leaves',
 | 
			
		||||
    'acacia_leaves',
 | 
			
		||||
    'dark_oak_leaves',
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
SAPLINGS = [
 | 
			
		||||
    'oak_sapling',
 | 
			
		||||
    'spruce_sapling',
 | 
			
		||||
    'birch_sapling',
 | 
			
		||||
    'jungle_sapling',
 | 
			
		||||
    'acacia_sapling',
 | 
			
		||||
    'dark_oak_sapling',
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
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',
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
INDEXED = [
 | 
			
		||||
    'chest',
 | 
			
		||||
    'trapped_chest',
 | 
			
		||||
    'emerald_block',
 | 
			
		||||
    'barrel',
 | 
			
		||||
] + BEDS
 | 
			
		||||
 | 
			
		||||
def get_set(ids):
 | 
			
		||||
    result = set()
 | 
			
		||||
    for block_name in ids:
 | 
			
		||||
        for state in JSON_BLOCKS['minecraft:' + block_name]['states']:
 | 
			
		||||
            result.add(state['id'])
 | 
			
		||||
    return result
 | 
			
		||||
 | 
			
		||||
NON_SOLID_IDS = get_set(NON_SOLID)
 | 
			
		||||
NON_SOLID_IDS.add(SINGLE_SNOW)
 | 
			
		||||
 | 
			
		||||
AVOID_IDS = get_set(AVOID)
 | 
			
		||||
WATER_IDS = get_set(['water'])
 | 
			
		||||
LOG_IDS = get_set(LOGS)
 | 
			
		||||
LEAF_IDS = get_set(LEAVES)
 | 
			
		||||
CHEST_IDS = get_set(['chest'])
 | 
			
		||||
BARREL_IDS = get_set(['barrel'])
 | 
			
		||||
TRAPPED_CHEST_IDS = get_set(['trapped_chest'])
 | 
			
		||||
NETHERWART_IDS = get_set(['nether_wart'])
 | 
			
		||||
WHEAT_IDS = get_set(['wheat'])
 | 
			
		||||
POTATO_IDS = get_set(['potatoes'])
 | 
			
		||||
CARROT_IDS = get_set(['carrots'])
 | 
			
		||||
BEETROOT_IDS = get_set(['beetroots'])
 | 
			
		||||
SAPLING_IDS = get_set(SAPLINGS)
 | 
			
		||||
BED_IDS = get_set(BEDS)
 | 
			
		||||
 | 
			
		||||
INDEXED_IDS = set()
 | 
			
		||||
for block_name in INDEXED:
 | 
			
		||||
    for state in JSON_BLOCKS['minecraft:' + block_name]['states']:
 | 
			
		||||
        INDEXED_IDS.add(state['id'])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
MATURE_WHEAT_ID = max(WHEAT_IDS)
 | 
			
		||||
MATURE_POTATO_ID = max(POTATO_IDS)
 | 
			
		||||
MATURE_CARROT_ID = max(CARROT_IDS)
 | 
			
		||||
MATURE_BEETROOT_ID = max(BEETROOT_IDS)
 | 
			
		||||
 | 
			
		||||
def get(bid):
 | 
			
		||||
    name = BLOCKS[bid]
 | 
			
		||||
    return MCD_BLOCKS[name]
 | 
			
		||||
 | 
			
		||||
def find(name):
 | 
			
		||||
    return MCD_BLOCKS[name]
 | 
			
		||||
							
								
								
									
										122
									
								
								mosfet/info/items.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										122
									
								
								mosfet/info/items.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,122 @@
 | 
			
		||||
import json
 | 
			
		||||
 | 
			
		||||
with open('minecraft_data/registries.json') as f:
 | 
			
		||||
    ITEMS = json.load(f)['minecraft:item']['entries']
 | 
			
		||||
 | 
			
		||||
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 = [
 | 
			
		||||
    'oak_sapling',
 | 
			
		||||
    'spruce_sapling',
 | 
			
		||||
    'birch_sapling',
 | 
			
		||||
    'jungle_sapling',
 | 
			
		||||
    'acacia_sapling',
 | 
			
		||||
    'dark_oak_sapling',
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
FOOD = [
 | 
			
		||||
    'cooked_porkchop',
 | 
			
		||||
    'cooked_beef',
 | 
			
		||||
    'bread',
 | 
			
		||||
    'cooked_chicken',
 | 
			
		||||
    'cooked_cod',
 | 
			
		||||
    'cooked_salmon',
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
LOGS = [
 | 
			
		||||
    'oak_log',
 | 
			
		||||
    'spruce_log',
 | 
			
		||||
    'birch_log',
 | 
			
		||||
    'jungle_log',
 | 
			
		||||
    'acacia_log',
 | 
			
		||||
    'dark_oak_log',
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_set(ids):
 | 
			
		||||
    result = set()
 | 
			
		||||
    for item_name in ids:
 | 
			
		||||
        result.add(ITEMS['minecraft:'+item_name]['protocol_id'])
 | 
			
		||||
    return result
 | 
			
		||||
 | 
			
		||||
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 = {}
 | 
			
		||||
for item_name, item in ITEMS.items():
 | 
			
		||||
    ITEM_NAMES[ITEMS[item_name]['protocol_id']] = item_name.replace('minecraft:', '')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_id(name):
 | 
			
		||||
    return ITEMS['minecraft:' + name]['protocol_id']
 | 
			
		||||
 | 
			
		||||
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')
 | 
			
		||||
 | 
			
		||||
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):
 | 
			
		||||
    NEEDED_ITEMS = INIT_NEEDED_ITEMS | items
 | 
			
		||||
 | 
			
		||||
def set_wanted(items):
 | 
			
		||||
    WANTED_ITEMS = INIT_WANTED_ITEMS | items
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										32
									
								
								mosfet/info/mcdata.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								mosfet/info/mcdata.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
import json
 | 
			
		||||
from munch import Munch
 | 
			
		||||
 | 
			
		||||
import minecraft_data
 | 
			
		||||
 | 
			
		||||
mcd = minecraft_data('1.16.4')
 | 
			
		||||
 | 
			
		||||
with open('minecraft_data/registries.json') as f:
 | 
			
		||||
    DATA = json.load(f)
 | 
			
		||||
 | 
			
		||||
SINGLE_CHEST = 2
 | 
			
		||||
DOUBLE_CHEST = 5
 | 
			
		||||
VILLAGER_TRADE = 18
 | 
			
		||||
 | 
			
		||||
WINDOWS = {
 | 
			
		||||
    SINGLE_CHEST: Munch(
 | 
			
		||||
        container=list(range(0, 27)),
 | 
			
		||||
        inventory=list(range(27, 63)),
 | 
			
		||||
        slot_diff=18,
 | 
			
		||||
    ),
 | 
			
		||||
    DOUBLE_CHEST: Munch(
 | 
			
		||||
        container=list(range(0, 54)),
 | 
			
		||||
        inventory=list(range(54, 90)),
 | 
			
		||||
        slot_diff=45,
 | 
			
		||||
    ),
 | 
			
		||||
    VILLAGER_TRADE: Munch(
 | 
			
		||||
        input1=0,
 | 
			
		||||
        input2=1,
 | 
			
		||||
        output=2,
 | 
			
		||||
        inventory=list(range(3, 38)),
 | 
			
		||||
    ),
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										50
									
								
								mosfet/info/mobs.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								mosfet/info/mobs.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
			
		||||
import json
 | 
			
		||||
 | 
			
		||||
with open('minecraft_data/registries.json') as f:
 | 
			
		||||
    MOBS = json.load(f)['minecraft:entity_type']['entries']
 | 
			
		||||
 | 
			
		||||
EVIL = [
 | 
			
		||||
    'blaze',
 | 
			
		||||
    'cave_spider',
 | 
			
		||||
    'creeper',
 | 
			
		||||
    'drowned',
 | 
			
		||||
    'elder_guardian',
 | 
			
		||||
    'ender_dragon',
 | 
			
		||||
    'enderman',
 | 
			
		||||
    'endermite',
 | 
			
		||||
    'evoker',
 | 
			
		||||
    'ghast',
 | 
			
		||||
    'giant',
 | 
			
		||||
    'guardian',
 | 
			
		||||
    'hoglin',
 | 
			
		||||
    'husk',
 | 
			
		||||
    'illusioner',
 | 
			
		||||
    'magma_cube',
 | 
			
		||||
    'phantom',
 | 
			
		||||
    'piglin',
 | 
			
		||||
    'piglin_brute',
 | 
			
		||||
    'pillager',
 | 
			
		||||
    'ravager',
 | 
			
		||||
    'shulker',
 | 
			
		||||
    'silverfish',
 | 
			
		||||
    'skeleton',
 | 
			
		||||
    'skeleton_horse',
 | 
			
		||||
    'slime',
 | 
			
		||||
    'spider',
 | 
			
		||||
    'stray',
 | 
			
		||||
    'vex',
 | 
			
		||||
    'vindicator',
 | 
			
		||||
    'witch',
 | 
			
		||||
    'wither',
 | 
			
		||||
    'zoglin',
 | 
			
		||||
    'zombie',
 | 
			
		||||
    'zombie_villager',
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
EVIL_IDS = set()
 | 
			
		||||
for mob_name in EVIL:
 | 
			
		||||
    EVIL_IDS.add(MOBS['minecraft:'+mob_name]['protocol_id'])
 | 
			
		||||
 | 
			
		||||
MOB_NAMES = {}
 | 
			
		||||
for mob_name, mob in MOBS.items():
 | 
			
		||||
    MOB_NAMES[MOBS[mob_name]['protocol_id']] = mob_name.replace('minecraft:', '')
 | 
			
		||||
		Reference in New Issue
	
	Block a user