const AIR = 'minecraft:air';

const modIds = [
    'kubejs',
    'emendatusenigmatica',
    'jaopca',
    'minecraft',
    'tconstruct',
    'create',
    'createaddition',
    'bloodmagic',
    'atum',
    'immersiveengineering',
    'thermal',
    'mekanism',
    'appliedenergistics2',
    'lazierae2',
    'pedestals',
    'eidolon',
    'occultism',
    'boss_tools',
    'titanium'
];

const colors = [
    'white',
    'orange',
    'magenta',
    'light_blue',
    'yellow',
    'lime',
    'pink',
    'gray',
    'light_gray',
    'cyan',
    'purple',
    'blue',
    'brown',
    'green',
    'red',
    'black'
];

const metals = [
    'copper', 'aluminum', 'silver', 'lead', 'nickel',
    'uranium', 'osmium', 'tin', 'zinc', 'cobalt', 
    'bronze', 'brass', 'constantan', 'electrum', 'steel', 
    'invar', 'signalum', 'lumium', 'enderium', 'iesnium',
    'iron', 'gold', 'cast_iron', 'pewter', 'arcane_gold',
    'infused', 'tainted', 'sky', 'silicon_bronze', 'rose_gold',
    'pig_iron', 'slimesteel', 'queens_slime', 'hepatizon', 'manyullyn',
    'soulsteel', 'fairy', 'netherite_scrap', 'netherite', 'holy',
    'hellforged', 'nebu', 'titanium', 'chromium', 'vanadium',
    'stainless_steel', 'dimension', 'fluix_steel', 'hop_graphite', 'starmetal',
    'pink_slime', 'refined_radiance', 'shadow_steel', 'ironwood', 'knightmetal',
    'fiery', 'steeleaf', 'manasteel', 'terrasteel', 'elementium',
    'alfsteel'
];

const gems = [
    'coal', 'charcoal', 'coal_coke', 'bitumen', 'lapis',
    'cinnabar', 'apatite', 'sulfur', 'fluorite', 'potassium_nitrate',
    'quartz', 'certus_quartz', 'charged_certus_quartz', 'diamond', 'emerald',
    'ruby', 'sapphire', 'fluix', 'aquamarine', 'biotite',
    'resonating', 'silicon', 'mana_diamond', 'dragonstone', 'carminite'
];

const ores = [
    'iron',
    'gold',
    'copper',
    'aluminum',
    'silver',
    'lead',
    'nickel',
    'uranium',
    'osmium',
    'tin',
    'zinc',
    'cobalt',
    'diamond',
    'emerald',
    'redstone',
    'quartz',
    'lapis',
    'coal',
    'netherite_scrap',
    'iesnium',
    'certus_quartz',
    'charged_certus_quartz',
    'cinnabar',
    'apatite',
    'sulfur',
    'fluorite',
    'potassium_nitrate',
    'ruby',
    'sapphire',
    'nebu',
    'titanium',
    'chromium',
    'aquamarine',
    'starmetal',
    'biotite',
    'ironwood',
    'knightmetal'
];

const ore_results = new Map();
ore_results.set('redstone', {
    item: { item: 'minecraft:redstone', count: 3 },
    fluid: { result: { fluid: 'emendatusenigmatica:molten_redstone', amount: 300 }, temp: 500 }
});
ore_results.set('nebu', {
    item: { item: 'atum:nebu_drop', count: 3 },
    fluid: { result: { fluid: 'emendatusenigmatica:molten_nebu', amount: 48}, temp: 1500 }
});
ore_results.set('aquamarine', {
    item: { item: 'astralsorcery:aquamarine', count: 3 },
    fluid: { result: { fluid: 'jaopca:molten.aquamarine', amount: 432}, temp: 1320 }
});
ore_results.set('starmetal', {
    item: { item: 'astralsorcery:stardust', count: 2 },
    fluid: null
});

const bbbb = ['blaze','blizz','blitz','basalz'];

const quartz = [
    'quartz',
    'certus_quartz',
    'charged_certus_quartz',
    'fluix',
    'biotite',
    'quartz_dark',
    'quartz_red',
    'quartz_mana',
    'quartz_blaze',
    'quartz_lavender',
    'quartz_elven',
    'quartz_sunny'
];

const vanilla_woods = [
    'oak',
    'spruce',
    'birch',
    'jungle',
    'acacia',
    'dark_oak',
    'crimson',
    'warped'
];

const byg_woods = [
    'aspen',
    'baobab',
    'blue_enchanted',
    'bulbis',
    'cherry',
    'cika',
    'cypress',
    'ebony',
    'ether',
    'fir',
    'green_enchanted',
    'holly',
    'imparius',
    'jacaranda',
    'lament',
    'mahogany',
    'mangrove',
    'maple',
    'nightshade',
    'palm',
    'pine',
    'rainbow_eucalyptus',
    'redwood',
    'skyris',
    'willow',
    'witch_hazel',
    'zelkova',
    'sythian',
    'embur'
];

const stones = [
    {
        stone: 'minecraft:andesite',
        cobblestone: 'create:andesite_cobblestone',
        id: 'andesite'
    },
    {
        stone: 'minecraft:diorite',
        cobblestone: 'create:diorite_cobblestone',
        id: 'diorite'
    },
    {
        stone: 'minecraft:granite',
        cobblestone: 'create:granite_cobblestone',
        id: 'granite'
    },
    {
        stone: 'create:limestone',
        cobblestone: 'create:limestone_cobblestone',
        id: 'limestone_create'
    },
    {
        stone: 'create:weathered_limestone',
        cobblestone: 'create:weathered_limestone_cobblestone',
        id: 'weathered_limestone'
    },
    {
        stone: 'create:dolomite',
        cobblestone: 'create:dolomite_cobblestone',
        id: 'dolomite'
    },
    {
        stone: 'create:gabbro',
        cobblestone: 'create:gabbro_cobblestone',
        id: 'gabbro'
    },
    {
        stone: 'create:scoria',
        cobblestone: 'create:scoria_cobblestone',
        id: 'scoria'
    },
    {
        stone: 'create:dark_scoria',
        cobblestone: 'create:dark_scoria_cobblestone',
        id: 'dark_scoria'
    },
    {
        stone: 'atum:limestone',
        cobblestone: 'atum:limestone_cracked',
        id: 'limestone_atum'
    },
    {
        stone: 'atum:alabaster',
        id: 'alabaster'
    },
    {
        stone: 'atum:porphyry',
        id: 'porphyry'
    },
    {
        stone: 'astralsorcery:marble_raw',
        id: 'marble'
    },
]

const tconstructs = [
    {
        base: '#minecraft:planks',
        id: 'tconstruct:wood'
    },
    {
        base: '#forge:stone',
        id: 'tconstruct:stone'
    },
    {
        base: 'minecraft:flint',
        id: 'tconstruct:flint'
    },
    {
        base: '#forge:bones',
        id: 'tconstruct:bone'
    },
    {
        base: 'tconstruct:necrotic_bone',
        id: 'tconstruct:necrotic_bone'
    },
    {
        base: 'minecraft:iron_ingot',
        id: 'tconstruct:iron'
    },
    {
        base: 'emendatusenigmatica:copper_ingot',
        id: 'tconstruct:copper'
    },
    {
        base: 'tconstruct:seared_brick',
        id: 'tconstruct:seared_stone'
    },
    {
        base: '#tconstruct:slimy_planks',
        id: 'tconstruct:slimewood'
    },
    {
        base: 'emendatusenigmatica:osmium_ingot',
        id: 'tconstruct:osmium'
    },
    {
        base: 'emendatusenigmatica:lead_ingot',
        id: 'tconstruct:lead'
    },
    {
        base: 'emendatusenigmatica:silver_ingot',
        id: 'tconstruct:silver'
    },
    {
        base: 'tconstruct:scorched_brick',
        id: 'tconstruct:scorched_stone'
    },
    {
        base: 'tconstruct:slimesteel_ingot',
        id: 'tconstruct:slimesteel'
    },
    {
        base: 'tconstruct:tinkers_bronze_ingot',
        id: 'tconstruct:tinkers_bronze'
    },
    {
        base: 'tconstruct:pig_iron_ingot',
        id: 'tconstruct:pig_iron'
    },
    {
        base: 'tconstruct:rose_gold_ingot',
        id: 'tconstruct:rose_gold'
    },
    {
        base: 'emendatusenigmatica:steel_ingot',
        id: 'tconstruct:steel'
    },
    {
        base: 'emendatusenigmatica:bronze_ingot',
        id: 'tconstruct:bronze'
    },
    {
        base: 'emendatusenigmatica:constantan_ingot',
        id: 'tconstruct:constantan'
    },
    {
        base: 'emendatusenigmatica:invar_ingot',
        id: 'tconstruct:invar'
    },
    {
        base: 'emendatusenigmatica:electrum_ingot',
        id: 'tconstruct:electrum'
    },
    {
        base: 'emendatusenigmatica:cobalt_ingot',
        id: 'tconstruct:cobalt'
    },
    {
        base: 'tconstruct:queens_slime_ingot',
        id: 'tconstruct:queens_slime'
    },
    {
        base: 'tconstruct:hepatizon_ingot',
        id: 'tconstruct:hepatizon'
    },
    {
        base: 'tconstruct:manyullyn_ingot',
        id: 'tconstruct:manyullyn'
    },
    {
        base: 'botania:livingwood',
        id: 'materialis:livingwood'
    },
    {
        base: 'emendatusenigmatica:aluminum_ingot',
        id: 'materialis:aluminum'
    },
    {
        base: 'botania:dreamwood',
        id: 'materialis:dreamwood'
    },
    {
        base: 'botania:manasteel_ingot',
        id: 'materialis:manasteel'
    },
    {
        base: 'emendatusenigmatica:nickel_ingot',
        id: 'materialis:nickel'
    },
    {
        base: 'industrialforegoing:plastic',
        id: 'materialis:plastic'
    },
    {
        base: 'emendatusenigmatica:uranium_ingot',
        id: 'materialis:uranium'
    },
    /*
    {
        base: 'psi:psimetal',
        id: 'materialis:psimetal'
    },
    {
        base: 'redstone_arsenal:flux_ingot',
        id: 'materialis:flux_infused'
    },
    {
        base: 'psi:ebony_psimetal',
        id: 'materialis:ebony_psimetal'
    },
    {
        base: 'psi:ivory_psimetal',
        id: 'materialis:ivory_psimetal'
    },
    */
    {
        base: 'industrialforegoing:pink_slime_ingot',
        id: 'materialis:pink_slime'
    },
    {
        base: 'eidolon:pewter_ingot',
        id: 'materialis:pewter'
    },
    {
        base: 'mekanism:ingot_refined_obsidian',
        id: 'materialis:refined_obsidian'
    },
    {
        base: 'astralsorcery:starmetal_ingot',
        id: 'materialis:starmetal'
    },
    {
        base: 'eidolon:arcane_gold_ingot',
        id: 'materialis:arcane_gold'
    },
    {
        base: 'emendatusenigmatica:brass_ingot',
        id: 'materialis:brass'
    },
    {
        base: 'botania:elementium_ingot',
        id: 'materialis:elementium'
    },
    {
        base: 'mekanism:ingot_refined_glowstone',
        id: 'materialis:refined_glowstone'
    },
    {
        base: 'materialis:fairy_ingot',
        id: 'materialis:fairy'
    },
    {
        base: 'create:rose_quartz',
        id: 'materialis:rose_quartz'
    },
    {
        base: 'draconicevolution:draconium_ingot',
        id: 'materialis:draconium'
    },
    {
        base: 'draconicevolution:awakened_draconium_ingot',
        id: 'materialis:draconium_awakened'
    },
    {
        base: 'occultism:iesnium_ingot',
        id: 'materialis:iesnium'
    },
    {
        base: 'botania:terrasteel_ingot',
        id: 'materialis:terrasteel'
    },
    {
        base: 'create:refined_radiance',
        id: 'materialis:refined_radiance'
    },
    {
        base: 'create:shadow_steel',
        id: 'materialis:shadow_steel'
    }
];

const relic_type = ['idol', 'necklace', 'ring', 'brooch', 'bracelet'];
const relic_material = ['silver', 'gold', 'sapphire', 'ruby', 'emerald', 'diamond'];

const artifacts = [
    {
        godId: 'anput',
        artifacts: [
            'anputs_grounding',
            'anputs_hunger'
        ]
    },
    {
        godId: 'anubis',
        artifacts: [
            'anubis_wrath'
        ]
    },
    {
        godId: 'atem',
        artifacts: [
            'eyes_of_atem',
            'body_of_atem',
            'legs_of_atem',
            'feet_of_atem',
            'atems_bounty',
            'atems_protection',
            'atems_homecoming',
            'atems_will'
        ]
    },
    {
        godId: 'geb',
        artifacts: [
            'gebs_might',
            'gebs_toil',
            'gebs_undoing'
        ]
    },
    {
        godId: 'horus',
        artifacts: [
            'horus_ascension',
            'horus_soaring'
        ]
    },
    {
        godId: 'isis',
        artifacts: [
            'isis_division',
            'isis_healing'
        ]
    },
    {
        godId: 'montu',
        artifacts: [
            'montus_blast',
            'montus_strike'
        ]
    },
    {
        godId: 'nepthys',
        artifacts: [
            'nepthys_banishing',
            'nepthys_guard'
        ]
    },
    {
        godId: 'nuit',
        artifacts: [
            'nuits_ire',
            'nuits_quarter',
            'nuits_vanishing'
        ]
    },
    {
        godId: 'osiris',
        artifacts: [
            'osiris_blessing',
            'osiris_mercy'
        ]
    },
    {
        godId: 'ptah',
        artifacts: [
            'ptahs_decadence'
        ]
    },
    {
        godId: 'ra',
        artifacts: [
            'halo_of_ra',
            'body_of_ra',
            'legs_of_ra',
            'feet_of_ra',
            'ras_fury',
            'ras_step'
        ]
    },
    {
        godId: 'seth',
        artifacts: [
            'seths_sting',
            'seths_venom'
        ]
    },
    {
        godId: 'shu',
        artifacts: [
            'shus_breath',
            'shus_exile',
            'shus_swiftness'
        ]
    },
    {
        godId: 'tefnut',
        artifacts: [
            'tefnuts_call',
            'tefnuts_rain'
        ]
    }
];

const marble_types = ['raw', 'arch', 'chiseled', 'engraved', 'runed'];

const twilightforest_biomes = [
    'twilightforest:forest',
    'twilightforest:dense_forest',
    'twilightforest:firefly_forest',
    'twilightforest:clearing',
    'twilightforest:oak_savannah',
    'twilightforest:stream',
    'twilightforest:lake',
    'twilightforest:mushroom_forest',
    'twilightforest:dense_mushroom_forest',
    'twilightforest:enchanted_forest',
    'twilightforest:spooky_forest',
    'twilightforest:swamp',
    'twilightforest:fire_swamp',
    'twilightforest:dark_forest',
    'twilightforest:dark_forest_center',
    'twilightforest:snowy_forest',
    'twilightforest:glacier',
    'twilightforest:highlands',
    'twilightforest:thornlands',
    'twilightforest:final_plateau'
];

const disks = [
    '1k', '4k', '16k', '64k', '64k_fluid', '256k_fluid', '1024k_fluid', '4096k_fluid'
];