// scripts/main.ts
import { system as system23, world as world6 } from "@minecraft/server";

// scripts/book/book_main.ts
import { world, system, EntityComponentTypes } from "@minecraft/server";
import { ActionFormData, ModalFormData } from "@minecraft/server-ui";
var MENU_CONFIG = {
  bookMain: {
    searchable: false,
    title: "ui.ftb_ma.book_main.title",
    body: "ui.ftb_ma.book_main.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.basics",
        icon: "textures/ftb/ma/items/inferium_essence",
        action: "bookBasics"
      },
      {
        label: "ui.ftb_ma.book_main.button.advanced",
        icon: "textures/ftb/ma/items/mystical_fertilizer",
        action: "bookAdvanced"
      },
      {
        label: "ui.ftb_ma.book_main.button.souls",
        icon: "textures/ftb/ma/items/soulium_dagger",
        action: "bookSouls"
      },
      {
        label: "ui.ftb_ma.book_main.button.elemental",
        icon: "textures/ftb/ma/items/air_essence",
        action: "bookElemental"
      },
      {
        label: "ui.ftb_ma.book_main.button.machines",
        icon: "textures/ftb/ma/ui/seed_reprocessor",
        action: "bookMachines"
      },
      {
        label: "ui.ftb_ma.book_main.button.tinkering",
        icon: "textures/ftb/ma/items/inferium_pickaxe",
        action: "bookTinkering"
      },
      {
        label: "ui.ftb_ma.book_main.button.augments",
        icon: "textures/ftb/ma/items/blank_augment",
        action: "bookAugments"
      },
      {
        label: "ui.ftb_ma.book_main.button.search",
        icon: "textures/ui/magnifyingGlass",
        action: "search"
      },
      {
        label: "ui.ftb_ma.book_main.button.exit",
        icon: "textures/ui/redX1",
        action: "close"
      }
    ]
  },
  bookBasics: {
    searchable: false,
    title: "ui.ftb_ma.book_basics.title",
    body: "ui.ftb_ma.book_basics.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_basics.button.inferium_essence",
        icon: "textures/ftb/ma/items/inferium_essence",
        action: "bookInferiumEssence",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_inferium_essence"]
      },
      {
        label: "ui.ftb_ma.book_basics.button.prosperity_shards",
        icon: "textures/ftb/ma/items/prosperity_shard",
        action: "bookProsperityShards",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_prosperity_shard"]
      },
      {
        label: "ui.ftb_ma.book_basics.button.inferium_seeds",
        icon: "textures/ftb/ma/items/inferium_seeds",
        action: "bookInferiumSeeds",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_inferium_seeds"]
      },
      {
        label: "ui.ftb_ma.book_basics.button.overworld_ores",
        icon: "textures/ftb/ma/ui/inferium_ore",
        action: "bookOverworldOres",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_overworld_ores"]
      },
      {
        label: "ui.ftb_ma.book_basics.button.resource_crops",
        icon: "textures/ftb/ma/items/prosperity_seed_base",
        action: "bookResourceCrops",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_resource_crops"]
      },
      {
        label: "ui.ftb_ma.book_basics.button.resource_seeds",
        icon: "textures/ftb/ma/items/amethyst_seeds",
        action: "bookResourceSeeds",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      },
      {
        label: "ui.ftb_ma.book_basics.button.essence_farmland",
        icon: "textures/ftb/ma/ui/essence_farmland",
        action: "bookEssenceFarmland",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_essence_farmland"]
      },
      {
        label: "ui.ftb_ma.book_basics.button.growth_accelerators",
        icon: "textures/ftb/ma/ui/growth_accelerators",
        action: "bookGrowthAccelerators",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_growth_accelerators"]
      },
      {
        label: "ui.ftb_ma.book_basics.button.watering_can",
        icon: "textures/ftb/ma/items/watering_can",
        action: "bookWateringCan",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_watering_can"]
      },
      {
        label: "ui.ftb_ma.book_basics.button.infusion_altar",
        icon: "textures/ftb/ma/ui/infusion_altar",
        action: "bookInfusionAltar",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_infusion_altar"]
      },
      {
        label: "ui.ftb_ma.book_basics.button.fertilized_essence",
        icon: "textures/ftb/ma/items/fertilized_essence",
        action: "bookFertilizedEssence",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_fertilized_essence"]
      },
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookMain"
      }
    ]
  },
  bookInferiumEssence: {
    searchable: true,
    title: "ui.ftb_ma.inferium_essence.title",
    body: "ui.ftb_ma.inferium_essence.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookBasics",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookProsperityShards: {
    searchable: true,
    title: "ui.ftb_ma.prosperity_shards.title",
    body: "ui.ftb_ma.prosperity_shards.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookBasics",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookInferiumSeeds: {
    searchable: true,
    title: "ui.ftb_ma.inferium_seeds.title",
    body: "ui.ftb_ma.inferium_seeds.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookBasics",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookOverworldOres: {
    searchable: true,
    title: "ui.ftb_ma.overworld_ores.title",
    body: "ui.ftb_ma.overworld_ores.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookBasics",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookResourceCrops: {
    searchable: true,
    title: "ui.ftb_ma.resource_crops.title",
    body: "ui.ftb_ma.resource_crops.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_basics.button.resource_seeds",
        icon: "textures/ftb/ma/items/amethyst_seeds",
        action: "bookResourceSeeds",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      },
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookBasics",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookEssenceFarmland: {
    searchable: true,
    title: "ui.ftb_ma.essence_farmland.title",
    body: "ui.ftb_ma.essence_farmland.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookBasics",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookGrowthAccelerators: {
    searchable: true,
    title: "ui.ftb_ma.growth_accelerators.title",
    body: "ui.ftb_ma.growth_accelerators.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookBasics",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookWateringCan: {
    searchable: true,
    title: "ui.ftb_ma.watering_can.title",
    body: "ui.ftb_ma.watering_can.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookBasics",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookInfusionAltar: {
    searchable: true,
    title: "ui.ftb_ma.infusion_altar.title",
    body: "ui.ftb_ma.infusion_altar.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookBasics",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookFertilizedEssence: {
    searchable: true,
    title: "ui.ftb_ma.fertilized_essence.title",
    body: "ui.ftb_ma.fertilized_essence.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookBasics",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookAdvanced: {
    searchable: false,
    title: "ui.ftb_ma.book_advanced.title",
    body: "ui.ftb_ma.book_advanced.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_advanced.button.mystical_fertilizer",
        icon: "textures/ftb/ma/items/mystical_fertilizer",
        action: "bookMysticalFertilizer",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_mystical_fertilizer"]
      },
      {
        label: "ui.ftb_ma.book_advanced.button.essence_watering_can",
        icon: "textures/ftb/ma/items/inferium_watering_can",
        action: "bookEssenceWateringCan",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_essence_watering_can"]
      },
      {
        label: "ui.ftb_ma.book_advanced.button.sickles",
        icon: "textures/ftb/ma/items/inferium_sickle",
        action: "bookSickles",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_sickles"]
      },
      {
        label: "ui.ftb_ma.book_advanced.button.scythes",
        icon: "textures/ftb/ma/items/inferium_scythe",
        action: "bookScythes",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_scythes"]
      },
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookMain"
      }
    ]
  },
  bookMysticalFertilizer: {
    searchable: true,
    title: "ui.ftb_ma.mystical_fertilizer.title",
    body: "ui.ftb_ma.mystical_fertilizer.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAdvanced",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookEssenceWateringCan: {
    searchable: true,
    title: "ui.ftb_ma.essence_watering_can.title",
    body: "ui.ftb_ma.essence_watering_can.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAdvanced",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookSickles: {
    searchable: true,
    title: "ui.ftb_ma.sickles.title",
    body: "ui.ftb_ma.sickles.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAdvanced",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookScythes: {
    searchable: true,
    title: "ui.ftb_ma.scythes.title",
    body: "ui.ftb_ma.scythes.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAdvanced",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookSouls: {
    searchable: false,
    title: "ui.ftb_ma.book_souls.title",
    body: "ui.ftb_ma.book_souls.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_souls.button.soulstone",
        icon: "textures/ftb/ma/ui/soulstone",
        action: "bookSoulStone",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_soulstone"]
      },
      {
        label: "ui.ftb_ma.book_souls.button.soulium_ore",
        icon: "textures/ftb/ma/ui/soulium_ore",
        action: "bookSouliumOre",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_soulium_ore"]
      },
      {
        label: "ui.ftb_ma.book_souls.button.soulium_dagger",
        icon: "textures/ftb/ma/items/soulium_dagger",
        action: "bookSouliumDagger",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_soulium_dagger"]
      },
      {
        label: "ui.ftb_ma.book_souls.button.mob_souls",
        icon: "textures/ftb/ma/items/zombie_soul",
        action: "bookMobSouls",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_mob_souls"]
      },
      {
        label: "ui.ftb_ma.book_souls.button.enchanter",
        icon: "textures/ftb/ma/ui/enchanter",
        action: "bookEnchanter",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_enchanter"]
      },
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookMain"
      }
    ]
  },
  bookSoulStone: {
    searchable: true,
    title: "ui.ftb_ma.soulstone.title",
    body: "ui.ftb_ma.soulstone.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookSouls",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookSouliumOre: {
    searchable: true,
    title: "ui.ftb_ma.soulium_ore.title",
    body: "ui.ftb_ma.soulium_ore.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookSouls",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookSouliumDagger: {
    searchable: true,
    title: "ui.ftb_ma.soulium_dagger.title",
    body: "ui.ftb_ma.soulium_dagger.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookSouls",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookMobSouls: {
    searchable: true,
    title: "ui.ftb_ma.mob_souls.title",
    body: "ui.ftb_ma.mob_souls.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookSouls",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookEnchanter: {
    searchable: true,
    title: "ui.ftb_ma.enchanter.title",
    body: "ui.ftb_ma.enchanter.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_souls.button.enchanter_recipes",
        icon: "textures/ftb/ma/ui/enchanter",
        action: "bookEnchanterRecipes",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      },
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookSouls",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookEnchanterRecipes: {
    searchable: true,
    title: "ui.ftb_ma.enchanter_recipes.title",
    body: "ui.ftb_ma.enchanter_recipes.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookEnchanter",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_enchanter"]
      }
    ]
  },
  bookElemental: {
    searchable: false,
    title: "ui.ftb_ma.book_elemental.title",
    body: "ui.ftb_ma.book_elemental.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_elemental.button.elemental_essences",
        icon: "textures/ftb/ma/items/earth_essence",
        action: "bookElementalEssences",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_elemental_essences"]
      },
      {
        label: "ui.ftb_ma.book_elemental.button.cognizant_dust",
        icon: "textures/ftb/ma/items/cognizant_dust",
        action: "bookCognizantDust",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_cognizant_dust"]
      },
      {
        label: "ui.ftb_ma.book_elemental.button.essence_vessel",
        icon: "textures/ftb/ma/ui/essence_vessel",
        action: "bookEssenceVessel",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_essence_vessel"]
      },
      {
        label: "ui.ftb_ma.book_elemental.button.awakening_altar",
        icon: "textures/ftb/ma/ui/awakening_altar",
        action: "bookAwakeningAltar",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_awakening_altar"]
      },
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookMain"
      }
    ]
  },
  bookElementalEssences: {
    searchable: true,
    title: "ui.ftb_ma.elemental_essences.title",
    body: "ui.ftb_ma.elemental_essences.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookElemental",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookCognizantDust: {
    searchable: true,
    title: "ui.ftb_ma.cognizant_dust.title",
    body: "ui.ftb_ma.cognizant_dust.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookElemental",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookEssenceVessel: {
    searchable: true,
    title: "ui.ftb_ma.essence_vessel.title",
    body: "ui.ftb_ma.essence_vessel.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookElemental",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookAwakeningAltar: {
    searchable: true,
    title: "ui.ftb_ma.awakening_altar.title",
    body: "ui.ftb_ma.awakening_altar.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_elemental.button.awakening_altar_recipes",
        icon: "textures/ftb/ma/ui/awakening_altar",
        action: "bookAwakeningAltarRecipes",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_awakening_altar_recipes"]
      },
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookElemental",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookAwakeningAltarRecipes: {
    searchable: true,
    title: "ui.ftb_ma.awakening_altar_recipes.title",
    body: "ui.ftb_ma.awakening_altar_recipes.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAwakeningAltar",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_awakening_altar"]
      }
    ]
  },
  bookMachines: {
    searchable: false,
    title: "ui.ftb_ma.book_machines.title",
    body: "ui.ftb_ma.book_machines.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_machines.button.machine_upgrades",
        icon: "textures/ftb/ma/items/inferium_machine_upgrade",
        action: "bookMachineUpgrades",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_machine_upgrades"]
      },
      {
        label: "ui.ftb_ma.book_machines.button.essence_furnace",
        icon: "textures/ftb/ma/ui/machine_furnace",
        action: "bookEssenceFurnace",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_essence_furnace"]
      },
      {
        label: "ui.ftb_ma.book_machines.button.seed_reprocessors",
        icon: "textures/ftb/ma/ui/seed_reprocessor",
        action: "bookSeedReprocessors",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_seed_reprocessors"]
      },
      {
        label: "ui.ftb_ma.book_machines.button.soul_extractor",
        icon: "textures/ftb/ma/ui/soul_extractor",
        action: "bookSoulExtractor",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_soul_extractor"]
      },
      {
        label: "ui.ftb_ma.book_machines.button.harvester",
        icon: "textures/ftb/ma/ui/harvester",
        action: "bookHarvester",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_harvester"]
      },
      {
        label: "ui.ftb_ma.book_machines.button.soulium_spawner",
        icon: "textures/ftb/ma/ui/soulium_spawner",
        action: "bookSouliumSpawner",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_soulium_spawner"]
      },
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookMain"
      }
    ]
  },
  bookMachineUpgrades: {
    searchable: true,
    title: "ui.ftb_ma.machine_upgrades.title",
    body: "ui.ftb_ma.machine_upgrades.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookMachines",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookEssenceFurnace: {
    searchable: true,
    title: "ui.ftb_ma.essence_furnace.title",
    body: "ui.ftb_ma.essence_furnace.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookMachines",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookSeedReprocessors: {
    searchable: true,
    title: "ui.ftb_ma.seed_reprocessors.title",
    body: "ui.ftb_ma.seed_reprocessors.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_machines.button.seed_reprocessor_recipes",
        icon: "textures/ftb/ma/ui/seed_reprocessor",
        action: "bookSeedReprocessorRecipes",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      },
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookMachines",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookSeedReprocessorRecipes: {
    searchable: true,
    title: "ui.ftb_ma.seed_reprocessor_recipes.title",
    body: "ui.ftb_ma.seed_reprocessors_recipes.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookSeedReprocessors",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookSoulExtractor: {
    searchable: true,
    title: "ui.ftb_ma.soul_extractor.title",
    body: "ui.ftb_ma.soul_extractor.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_machines.button.soul_extractor_recipes",
        icon: "textures/ftb/ma/ui/soul_extractor",
        action: "bookSoulExtractorRecipes",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      },
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookMachines",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookSoulExtractorRecipes: {
    searchable: true,
    title: "ui.ftb_ma.soul_extractor_recipes.title",
    body: "ui.ftb_ma.soul_extractor_recipes.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookSoulExtractor",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_soul_extractor"]
      }
    ]
  },
  bookHarvester: {
    searchable: true,
    title: "ui.ftb_ma.harvester.title",
    body: "ui.ftb_ma.harvester.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookMachines",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookSouliumSpawner: {
    searchable: true,
    title: "ui.ftb_ma.soulium_spawner.title",
    body: "ui.ftb_ma.soulium_spawner.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_machines.button.soulium_spawner_recipes",
        icon: "textures/ftb/ma/ui/soulium_spawner",
        action: "bookSouliumSpawnerRecipes",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      },
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookMachines",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookSouliumSpawnerRecipes: {
    searchable: true,
    title: "ui.ftb_ma.soulium_spawner_recipes.title",
    body: "ui.ftb_ma.soulium_spawner_recipes.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookSouliumSpawner",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_soulium_spawner"]
      }
    ]
  },
  bookTinkering: {
    searchable: false,
    title: "ui.ftb_ma.book_tinkering.title",
    body: "ui.ftb_ma.book_tinkering.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_tinkering.button.essence_tools",
        icon: "textures/ftb/ma/items/inferium_pickaxe",
        action: "bookEssenceTools",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_essence_tools"]
      },
      {
        label: "ui.ftb_ma.book_tinkering.button.essence_armor",
        icon: "textures/ftb/ma/items/inferium_chestplate",
        action: "bookEssenceArmor",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_essence_armor"]
      },
      {
        label: "ui.ftb_ma.book_tinkering.button.tinkering_table",
        icon: "textures/ftb/ma/ui/tinkering_table",
        action: "bookTinkeringTable",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_tinkering_table"]
      },
      {
        label: "ui.ftb_ma.book_tinkering.button.augments_crafting",
        icon: "textures/ftb/ma/items/blank_augment",
        action: "bookAugmentsCrafting",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_augments_crafting"]
      },
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookMain"
      }
    ]
  },
  bookEssenceTools: {
    searchable: true,
    title: "ui.ftb_ma.essence_tools.title",
    body: "ui.ftb_ma.essence_tools.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookTinkering",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookEssenceArmor: {
    searchable: true,
    title: "ui.ftb_ma.essence_armor.title",
    body: "ui.ftb_ma.essence_armor.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookTinkering",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookTinkeringTable: {
    searchable: true,
    title: "ui.ftb_ma.tinkering_table.title",
    body: "ui.ftb_ma.tinkering_table.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookTinkering",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookAugmentsCrafting: {
    searchable: true,
    title: "ui.ftb_ma.augments_crafting.title",
    body: "ui.ftb_ma.augments_crafting.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookMain",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookAugments: {
    searchable: false,
    title: "ui.ftb_ma.book_augments.title",
    body: "ui.ftb_ma.book_augments.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_augments.button.absorption",
        icon: "textures/ftb/ma/ui/absorption",
        action: "bookAbsorption",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_absorption"]
      },
      {
        label: "ui.ftb_ma.book_augments.button.attack_aoe",
        icon: "textures/ftb/ma/ui/attack_aoe",
        action: "bookAttackAoe",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_attack_aoe"]
      },
      {
        label: "ui.ftb_ma.book_augments.button.blindness",
        icon: "textures/ftb/ma/ui/blindness",
        action: "bookBlindness",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_blindness"]
      },
      {
        label: "ui.ftb_ma.book_augments.button.fire_resistance",
        icon: "textures/ftb/ma/ui/fire_resistance",
        action: "bookFireResistance",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_fire_resistance"]
      },
      {
        label: "ui.ftb_ma.book_augments.button.hunger",
        icon: "textures/ftb/ma/ui/hunger",
        action: "bookHunger",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hunger"]
      },
      {
        label: "ui.ftb_ma.book_augments.button.nausea",
        icon: "textures/ftb/ma/ui/nausea",
        action: "bookNausea",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_nausea"]
      },
      {
        label: "ui.ftb_ma.book_augments.button.night_vision",
        icon: "textures/ftb/ma/ui/night_vision",
        action: "bookNightVision",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_night_vision"]
      },
      {
        label: "ui.ftb_ma.book_augments.button.poison",
        icon: "textures/ftb/ma/ui/poison",
        action: "bookPoison",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_poison"]
      },
      {
        label: "ui.ftb_ma.book_augments.button.slow_falling",
        icon: "textures/ftb/ma/ui/slow_falling",
        action: "bookSlowFalling",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_slow_falling"]
      },
      {
        label: "ui.ftb_ma.book_augments.button.slowness",
        icon: "textures/ftb/ma/ui/slowness",
        action: "bookSlowness",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_slowness"]
      },
      {
        label: "ui.ftb_ma.book_augments.button.water_breathing",
        icon: "textures/ftb/ma/ui/water_breathing",
        action: "bookWaterBreathing",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_water_breathing"]
      },
      {
        label: "ui.ftb_ma.book_augments.button.weakness",
        icon: "textures/ftb/ma/ui/weakness",
        action: "bookWeakness",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_weakness"]
      },
      {
        label: "ui.ftb_ma.book_augments.button.wither",
        icon: "textures/ftb/ma/ui/wither",
        action: "bookWither",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_wither"]
      },
      {
        label: "ui.ftb_ma.book_augments.button.health_boost",
        icon: "textures/ftb/ma/ui/health_boost",
        action: "bookHealthBoost",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_health_boost"]
      },
      {
        label: "ui.ftb_ma.book_augments.button.pathing_aoe",
        icon: "textures/ftb/ma/ui/pathing_aoe",
        action: "bookPathingAoe",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_pathing_aoe"]
      },
      {
        label: "ui.ftb_ma.book_augments.button.mining_aoe",
        icon: "textures/ftb/ma/ui/mining_aoe",
        action: "bookMiningAoe",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_mining_aoe"]
      },
      {
        label: "ui.ftb_ma.book_augments.button.tilling_aoe",
        icon: "textures/ftb/ma/ui/tilling_aoe",
        action: "bookTillingAoe",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_tilling_aoe"]
      },
      {
        label: "ui.ftb_ma.book_augments.button.strength",
        icon: "textures/ftb/ma/ui/strength",
        action: "bookStrength",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_strength"]
      },
      {
        label: "ui.ftb_ma.book_augments.button.speed",
        icon: "textures/ftb/ma/ui/speed",
        action: "bookSpeed",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_speed"]
      },
      {
        label: "ui.ftb_ma.book_augments.button.haste",
        icon: "textures/ftb/ma/ui/haste",
        action: "bookHaste",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_haste"]
      },
      {
        label: "ui.ftb_ma.book_augments.button.mining_fatigue",
        icon: "textures/ftb/ma/ui/mining_fatigue",
        action: "bookMiningFatigue",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_mining_fatigue"]
      },
      {
        label: "ui.ftb_ma.book_augments.button.jump_boost",
        icon: "textures/ftb/ma/ui/jump_boost",
        action: "bookJumpBoost",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_jump_boost"]
      },
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookMain"
      }
    ]
  },
  bookAbsorption: {
    searchable: true,
    title: "ui.ftb_ma.absorption_augment.title",
    body: "ui.ftb_ma.absorption.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAugments",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookAttackAoe: {
    searchable: true,
    title: "ui.ftb_ma.attack_aoe_augment.title",
    body: "ui.ftb_ma.attack_aoe.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAugments",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookBlindness: {
    searchable: true,
    title: "ui.ftb_ma.blindness_augment.title",
    body: "ui.ftb_ma.blindness.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAugments",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookFireResistance: {
    searchable: true,
    title: "ui.ftb_ma.fire_resistance_augment.title",
    body: "ui.ftb_ma.fire_resistance.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAugments",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookHunger: {
    searchable: true,
    title: "ui.ftb_ma.hunger_augment.title",
    body: "ui.ftb_ma.hunger.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAugments",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookNausea: {
    searchable: true,
    title: "ui.ftb_ma.nausea_augment.title",
    body: "ui.ftb_ma.nausea.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAugments",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookNightVision: {
    searchable: true,
    title: "ui.ftb_ma.night_vision_augment.title",
    body: "ui.ftb_ma.night_vision.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAugments",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookPoison: {
    searchable: true,
    title: "ui.ftb_ma.poison_augment.title",
    body: "ui.ftb_ma.poison.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAugments",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookSlowFalling: {
    searchable: true,
    title: "ui.ftb_ma.slow_falling_augment.title",
    body: "ui.ftb_ma.slow_falling.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAugments",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookSlowness: {
    searchable: true,
    title: "ui.ftb_ma.slowness_augment.title",
    body: "ui.ftb_ma.slowness.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAugments",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookWaterBreathing: {
    searchable: true,
    title: "ui.ftb_ma.water_breathing_augment.title",
    body: "ui.ftb_ma.water_breathing.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAugments",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookWeakness: {
    searchable: true,
    title: "ui.ftb_ma.weakness_augment.title",
    body: "ui.ftb_ma.weakness.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAugments",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookWither: {
    searchable: true,
    title: "ui.ftb_ma.wither_augment.title",
    body: "ui.ftb_ma.wither.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAugments",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookHealthBoost: {
    searchable: true,
    title: "ui.ftb_ma.health_boost_augment.title",
    body: "ui.ftb_ma.health_boost.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAugments",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookPathingAoe: {
    searchable: true,
    title: "ui.ftb_ma.pathing_aoe_augment.title",
    body: "ui.ftb_ma.pathing_aoe.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAugments",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookMiningAoe: {
    searchable: true,
    title: "ui.ftb_ma.mining_aoe_augment.title",
    body: "ui.ftb_ma.mining_aoe.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAugments",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookTillingAoe: {
    searchable: true,
    title: "ui.ftb_ma.tilling_aoe_augment.title",
    body: "ui.ftb_ma.tilling_aoe.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAugments",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookStrength: {
    searchable: true,
    title: "ui.ftb_ma.strength_augment.title",
    body: "ui.ftb_ma.strength.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAugments",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookSpeed: {
    searchable: true,
    title: "ui.ftb_ma.speed_augment.title",
    body: "ui.ftb_ma.speed.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAugments",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookHaste: {
    searchable: true,
    title: "ui.ftb_ma.haste_augment.title",
    body: "ui.ftb_ma.haste.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAugments",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookMiningFatigue: {
    searchable: true,
    title: "ui.ftb_ma.mining_fatigue_augment.title",
    body: "ui.ftb_ma.mining_fatigue.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAugments",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookJumpBoost: {
    searchable: true,
    title: "ui.ftb_ma.jump_boost_augment.title",
    body: "ui.ftb_ma.jump_boost.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookAugments",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookResourceSeeds: {
    searchable: false,
    title: "ui.ftb_ma.book_resource_seeds.title",
    body: "ui.ftb_ma.book_resource_seeds.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_seeds.button.ore_seeds",
        icon: "textures/ftb/ma/items/diamond_seeds",
        action: "bookOreSeeds",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_ore_seeds"]
      },
      {
        label: "ui.ftb_ma.book_seeds.button.material_seeds",
        icon: "textures/ftb/ma/items/deepslate_seeds",
        action: "bookMaterialSeeds",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_material_seeds"]
      },
      {
        label: "ui.ftb_ma.book_seeds.button.elemental_seeds",
        icon: "textures/ftb/ma/items/air_seeds",
        action: "bookElementalSeeds",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_elemental_seeds"]
      },
      {
        label: "ui.ftb_ma.book_seeds.button.mob_seeds",
        icon: "textures/ftb/ma/items/zombie_seeds",
        action: "bookMobSeeds",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_mob_seeds"]
      },
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookBasics"
      }
    ]
  },
  bookOreSeeds: {
    searchable: true,
    title: "ui.ftb_ma.ore_seeds.title",
    body: "ui.ftb_ma.ore_seeds.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookResourceSeeds",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookMaterialSeeds: {
    searchable: true,
    title: "ui.ftb_ma.material_seeds.title",
    body: "ui.ftb_ma.material_seeds.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookResourceSeeds",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookElementalSeeds: {
    searchable: true,
    title: "ui.ftb_ma.elemental_seeds.title",
    body: "ui.ftb_ma.elemental_seeds.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookResourceSeeds",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  },
  bookMobSeeds: {
    searchable: true,
    title: "ui.ftb_ma.mob_seeds.title",
    body: "ui.ftb_ma.mob_seeds.body",
    buttons: [
      {
        label: "ui.ftb_ma.book_main.button.back",
        icon: "textures/ui/recap_glyph_color_2x",
        action: "bookResourceSeeds",
        commands: ["/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud"]
      }
    ]
  }
};
function showMenu(player, menuKey, previous) {
  const menu = MENU_CONFIG[menuKey];
  const form = new ActionFormData().title({ translate: menu.title, with: ["\n"] }).body({ translate: menu.body, with: ["\n"] });
  menu.buttons.forEach((button2) => form.button({ translate: button2.label, with: ["\n"] }, button2.icon));
  form.show(player).then((response) => {
    if (response.canceled || response.selection === void 0) {
      if (previous && previous.length > 0) {
        const bottomPrevious = previous.pop();
        if (bottomPrevious) {
          updateBookInInventory(player, "ftb_ma:book_hud");
          showMenu(player, bottomPrevious, previous);
          return;
        }
      } else {
        closeBook(player);
      }
      return;
    }
    const buttonLabel = menu.buttons[response.selection].label;
    const buttonAction = menu.buttons[response.selection].action;
    const buttonCommands = menu.buttons[response.selection].commands;
    if (buttonCommands) {
      buttonCommands.forEach((cmd) => {
        player.runCommand(cmd);
      });
    }
    if (buttonAction === "search") {
      showSearchMenu(player);
    } else if (buttonAction === "close") {
      closeBook(player);
    } else if (buttonLabel === "ui.ftb_ma.book_main.button.back") {
      if (previous && previous.length > 0) {
        const bottomPrevious = previous.pop();
        if (bottomPrevious) {
          updateBookInInventory(player, "ftb_ma:book_hud");
          showMenu(player, bottomPrevious, previous);
        }
      } else {
        closeBook(player);
      }
    } else if (buttonAction && typeof buttonAction === "string") {
      player.runCommand("/playsound item.book.page_turn @s ~ ~ ~");
      showMenu(player, buttonAction, [...previous ?? [], menuKey]);
    }
  });
}
function showSearchMenu(player) {
  const form = new ModalFormData().title("Search").textField("Enter a keyword to search:", "Keyword...");
  form.show(player).then((response) => {
    if (response.canceled || !response.formValues) {
      openBook(player, "bookMain");
      return;
    }
    const keyword = typeof response.formValues[0] === "string" ? response.formValues[0].toLowerCase() : "";
    if (!keyword) {
      player.sendMessage("\xA7cPlease enter a valid keyword!");
      closeBook(player);
      return;
    }
    const results = searchMenus(keyword);
    if (results.length > 0) {
      showSearchResults(player, results);
    } else {
      player.sendMessage("\xA7cNo results found for the keyword: " + keyword);
      closeBook(player);
    }
  });
}
function searchMenus(keyword) {
  const results = [];
  for (const [menuKey, menu] of Object.entries(MENU_CONFIG)) {
    if (!menu.searchable) continue;
    if (menu.title.toLowerCase().includes(keyword)) {
      results.push({ label: menu.title, menuKey });
    }
    for (const button2 of menu.buttons) {
      if (button2.action === null || button2.action === "bookMain" || button2.label.toLowerCase().includes("back") || button2.label.toLowerCase().includes("exit")) {
        continue;
      }
      if (button2.label.toLowerCase().includes(keyword)) {
        results.push({ label: button2.label, menuKey });
      }
    }
  }
  return results;
}
function showSearchResults(player, results) {
  const form = new ActionFormData().title("Search Results").body("Select a result to open:");
  results.forEach((result) => {
    form.button({ translate: result.label, with: ["\n"] });
  });
  form.show(player).then((response) => {
    if (response.canceled || response.selection === void 0) {
      closeBook(player);
      return;
    }
    const selectedResult = results[response.selection];
    if (!selectedResult) return;
    const menuKey = selectedResult.menuKey;
    const menuConfig = MENU_CONFIG[menuKey];
    if (!menuConfig || !menuConfig.buttons) return;
    const menuOptions = Object.values(MENU_CONFIG);
    let firstButton = null;
    for (const item of menuOptions) {
      for (const btn of item.buttons) {
        if (btn.action === menuKey) {
          firstButton = btn;
        }
      }
    }
    if (!firstButton) {
      return;
    }
    const selectedButton = firstButton;
    if (selectedButton && selectedButton.commands) {
      selectedButton.commands.forEach((command) => {
        player.runCommand(command);
      });
    }
    showMenu(player, menuKey);
  });
}
world.beforeEvents.itemUse.subscribe((data) => {
  const player = data.source;
  if (data.itemStack.typeId === "ftb_ma:book_main") {
    system.run(() => openBook(player, "bookMain"));
  }
});
var playerLightWatcher = /* @__PURE__ */ new Map();
function openBook(player, page) {
  player.runCommand("/inputpermission set @s camera disabled");
  player.runCommand("/playsound item.book.page_turn @s ~ ~ ~");
  player.runCommand("/replaceitem entity @s slot.weapon.mainhand 0 ftb_ma:book_hud");
  system.run(() => {
    showMenu(player, page);
    if (!playerLightWatcher.has(player.name)) {
      playerLightWatcher.set(player.name, new PlayerLightController(player));
    }
    playerLightWatcher.get(player.name).createLight();
  });
}
function closeBook(player) {
  updateBookInInventory(player, "ftb_ma:book_main", true);
  system.run(() => {
    player.runCommand("/playsound item.book.page_turn @s ~ ~ ~");
    player.runCommand("/inputpermission set @s camera enabled");
    if (playerLightWatcher.has(player.name)) {
      playerLightWatcher.get(player.name).removeLight();
    }
  });
}
function updateBookInInventory(player, bookType = "ftb_ma:book_main", runAsync = false) {
  let bookSlotIndex = -1;
  const container = player.getComponent(EntityComponentTypes.Inventory);
  if (container && container.container) {
    for (let i = 0; i < container.container.size; i++) {
      const item = container.container.getItem(i);
      if (item && item.typeId.startsWith("ftb_ma:book_") && item.typeId !== bookType) {
        bookSlotIndex = i;
        break;
      }
    }
  }
  if (bookSlotIndex !== -1) {
    const command = `/replaceitem entity @s ${bookSlotIndex < 9 ? "slot.hotbar" : "slot.inventory"} ${bookSlotIndex} ${bookType}`;
    if (runAsync) {
      system.run(() => player.runCommand(command));
    } else {
      player.runCommand(command);
    }
  }
}
var PlayerLightController = class {
  constructor(player) {
    this.player = player;
    this.watcher = null;
    this.removeLeftOverLight();
  }
  createLight() {
    this.removeLeftOverLight();
    const playerLocation = this.player.location;
    playerLocation.y += 1;
    const block2 = this.player.dimension.getBlock(playerLocation);
    if (block2?.typeId !== "minecraft:air") {
      return;
    }
    this.writeLocation(playerLocation);
    block2.setType("minecraft:light_block_15");
    this.watcher = system.runInterval(this.lightUpdater.bind(this), 20);
  }
  removeLight(ignoreWatcher = false) {
    const location = this.readLocation();
    if (!location) {
      return;
    }
    const block2 = this.player.dimension.getBlock(location);
    if (!block2 || block2.typeId !== "minecraft:light_block_15") {
      if (!ignoreWatcher) {
        this.clearWatcher();
      }
      return;
    }
    block2.setType("minecraft:air");
    if (!ignoreWatcher) {
      this.clearWatcher();
    }
  }
  removeLeftOverLight() {
    this.removeLight(true);
    this.clearWatcher();
  }
  lightUpdater() {
    const currentLocation = this.readLocation();
    if (!currentLocation) {
      return;
    }
    const { x: xBefore, y: yBefore, z: zBefore } = this.player.location;
    const x = Math.floor(xBefore);
    const y = Math.floor(yBefore) + 1;
    const z = Math.floor(zBefore);
    const playerLocation = { x, y, z };
    if (playerLocation.x !== currentLocation.x || playerLocation.y !== currentLocation.y || playerLocation.z !== currentLocation.z) {
      this.writeLocation(playerLocation);
      const block2 = this.player.dimension.getBlock(currentLocation);
      if (block2) {
        block2.setType("minecraft:air");
      }
      const newBlock = this.player.dimension.getBlock(playerLocation);
      if (newBlock) {
        newBlock.setType("minecraft:light_block_15");
      }
    }
  }
  clearWatcher() {
    if (this.watcher) {
      system.clearRun(this.watcher);
      this.watcher = null;
    }
  }
  writeLocation(location) {
    const stringLocation = `${Math.floor(location.x)} ${Math.floor(location.y)} ${Math.floor(location.z)}`;
    this.player.setDynamicProperty("ftb_ma_light_location", stringLocation);
  }
  readLocation() {
    const property = this.player.getDynamicProperty("ftb_ma_light_location");
    if (!property) {
      return null;
    }
    if (typeof property !== "string") {
      return null;
    }
    const parts = property.split(" ");
    if (parts.length !== 3) {
      return null;
    }
    const [x, y, z] = parts.map((part) => parseInt(part, 10));
    return {
      x,
      y,
      z
    };
  }
};

// scripts/components/block/awakening-altar.ts
import { system as system10 } from "@minecraft/server";

// node_modules/@minecraft/math/lib/general/clamp.js
function clampNumber(val, min, max) {
  return Math.min(Math.max(val, min), max);
}

// node_modules/@minecraft/math/lib/vector3/coreHelpers.js
var Vector3Utils = class _Vector3Utils {
  /**
   * equals
   *
   * Check the equality of two vectors
   */
  static equals(v1, v2) {
    return v1.x === v2.x && v1.y === v2.y && v1.z === v2.z;
  }
  /**
   * add
   *
   * Add two vectors to produce a new vector
   */
  static add(v1, v2) {
    return { x: v1.x + (v2.x ?? 0), y: v1.y + (v2.y ?? 0), z: v1.z + (v2.z ?? 0) };
  }
  /**
   * subtract
   *
   * Subtract two vectors to produce a new vector (v1-v2)
   */
  static subtract(v1, v2) {
    return { x: v1.x - (v2.x ?? 0), y: v1.y - (v2.y ?? 0), z: v1.z - (v2.z ?? 0) };
  }
  /** scale
   *
   * Multiple all entries in a vector by a single scalar value producing a new vector
   */
  static scale(v1, scale) {
    return { x: v1.x * scale, y: v1.y * scale, z: v1.z * scale };
  }
  /**
   * dot
   *
   * Calculate the dot product of two vectors
   */
  static dot(a, b) {
    return a.x * b.x + a.y * b.y + a.z * b.z;
  }
  /**
   * cross
   *
   * Calculate the cross product of two vectors. Returns a new vector.
   */
  static cross(a, b) {
    return { x: a.y * b.z - a.z * b.y, y: a.z * b.x - a.x * b.z, z: a.x * b.y - a.y * b.x };
  }
  /**
   * magnitude
   *
   * The magnitude of a vector
   */
  static magnitude(v) {
    return Math.sqrt(v.x ** 2 + v.y ** 2 + v.z ** 2);
  }
  /**
   * distance
   *
   * Calculate the distance between two vectors
   */
  static distance(a, b) {
    return _Vector3Utils.magnitude(_Vector3Utils.subtract(a, b));
  }
  /**
   * normalize
   *
   * Takes a vector 3 and normalizes it to a unit vector
   */
  static normalize(v) {
    const mag = _Vector3Utils.magnitude(v);
    return { x: v.x / mag, y: v.y / mag, z: v.z / mag };
  }
  /**
   * floor
   *
   * Floor the components of a vector to produce a new vector
   */
  static floor(v) {
    return { x: Math.floor(v.x), y: Math.floor(v.y), z: Math.floor(v.z) };
  }
  /**
   * toString
   *
   * Create a string representation of a vector3
   */
  static toString(v, options) {
    const decimals = options?.decimals ?? 2;
    const str = [v.x.toFixed(decimals), v.y.toFixed(decimals), v.z.toFixed(decimals)];
    return str.join(options?.delimiter ?? ", ");
  }
  /**
   * fromString
   *
   * Gets a Vector3 from the string representation produced by {@link Vector3Utils.toString}. If any numeric value is not a number
   * or the format is invalid, undefined is returned.
   * @param str - The string to parse
   * @param delimiter - The delimiter used to separate the components. Defaults to the same as the default for {@link Vector3Utils.toString}
   */
  static fromString(str, delimiter = ",") {
    const parts = str.split(delimiter);
    if (parts.length !== 3) {
      return void 0;
    }
    const output = parts.map((part) => parseFloat(part));
    if (output.some((part) => isNaN(part))) {
      return void 0;
    }
    return { x: output[0], y: output[1], z: output[2] };
  }
  /**
   * clamp
   *
   * Clamps the components of a vector to limits to produce a new vector
   */
  static clamp(v, limits) {
    return {
      x: clampNumber(v.x, limits?.min?.x ?? Number.MIN_SAFE_INTEGER, limits?.max?.x ?? Number.MAX_SAFE_INTEGER),
      y: clampNumber(v.y, limits?.min?.y ?? Number.MIN_SAFE_INTEGER, limits?.max?.y ?? Number.MAX_SAFE_INTEGER),
      z: clampNumber(v.z, limits?.min?.z ?? Number.MIN_SAFE_INTEGER, limits?.max?.z ?? Number.MAX_SAFE_INTEGER)
    };
  }
  /**
   * lerp
   *
   * Constructs a new vector using linear interpolation on each component from two vectors.
   */
  static lerp(a, b, t) {
    return { x: a.x + (b.x - a.x) * t, y: a.y + (b.y - a.y) * t, z: a.z + (b.z - a.z) * t };
  }
  /**
   * slerp
   *
   * Constructs a new vector using spherical linear interpolation on each component from two vectors.
   */
  static slerp(a, b, t) {
    const theta = Math.acos(_Vector3Utils.dot(a, b));
    const sinTheta = Math.sin(theta);
    const ta = Math.sin((1 - t) * theta) / sinTheta;
    const tb = Math.sin(t * theta) / sinTheta;
    return _Vector3Utils.add(_Vector3Utils.scale(a, ta), _Vector3Utils.scale(b, tb));
  }
  /**
   * multiply
   *
   * Element-wise multiplication of two vectors together.
   * Not to be confused with {@link Vector3Utils.dot} product or {@link Vector3Utils.cross} product
   */
  static multiply(a, b) {
    return { x: a.x * b.x, y: a.y * b.y, z: a.z * b.z };
  }
  /**
   * rotateX
   *
   * Rotates the vector around the x axis counterclockwise (left hand rule)
   * @param a - Angle in radians
   */
  static rotateX(v, a) {
    let cos = Math.cos(a);
    let sin = Math.sin(a);
    return { x: v.x, y: v.y * cos - v.z * sin, z: v.z * cos + v.y * sin };
  }
  /**
   * rotateY
   *
   * Rotates the vector around the y axis counterclockwise (left hand rule)
   * @param a - Angle in radians
   */
  static rotateY(v, a) {
    let cos = Math.cos(a);
    let sin = Math.sin(a);
    return { x: v.x * cos + v.z * sin, y: v.y, z: v.z * cos - v.x * sin };
  }
  /**
   * rotateZ
   *
   * Rotates the vector around the z axis counterclockwise (left hand rule)
   * @param a - Angle in radians
   */
  static rotateZ(v, a) {
    let cos = Math.cos(a);
    let sin = Math.sin(a);
    return { x: v.x * cos - v.y * sin, y: v.y * cos + v.x * sin, z: v.z };
  }
};
var VECTOR3_DOWN = { x: 0, y: -1, z: 0 };

// scripts/data/recipes.ts
import { EnchantmentTypes, ItemStack as ItemStack7, world as world2 } from "@minecraft/server";

// node_modules/@minecraft/vanilla-data/lib/index.js
var MinecraftBiomeTypes = ((MinecraftBiomeTypes2) => {
  MinecraftBiomeTypes2["BambooJungle"] = "minecraft:bamboo_jungle";
  MinecraftBiomeTypes2["BambooJungleHills"] = "minecraft:bamboo_jungle_hills";
  MinecraftBiomeTypes2["BasaltDeltas"] = "minecraft:basalt_deltas";
  MinecraftBiomeTypes2["Beach"] = "minecraft:beach";
  MinecraftBiomeTypes2["BirchForest"] = "minecraft:birch_forest";
  MinecraftBiomeTypes2["BirchForestHills"] = "minecraft:birch_forest_hills";
  MinecraftBiomeTypes2["BirchForestHillsMutated"] = "minecraft:birch_forest_hills_mutated";
  MinecraftBiomeTypes2["BirchForestMutated"] = "minecraft:birch_forest_mutated";
  MinecraftBiomeTypes2["CherryGrove"] = "minecraft:cherry_grove";
  MinecraftBiomeTypes2["ColdBeach"] = "minecraft:cold_beach";
  MinecraftBiomeTypes2["ColdOcean"] = "minecraft:cold_ocean";
  MinecraftBiomeTypes2["ColdTaiga"] = "minecraft:cold_taiga";
  MinecraftBiomeTypes2["ColdTaigaHills"] = "minecraft:cold_taiga_hills";
  MinecraftBiomeTypes2["ColdTaigaMutated"] = "minecraft:cold_taiga_mutated";
  MinecraftBiomeTypes2["CrimsonForest"] = "minecraft:crimson_forest";
  MinecraftBiomeTypes2["DeepColdOcean"] = "minecraft:deep_cold_ocean";
  MinecraftBiomeTypes2["DeepDark"] = "minecraft:deep_dark";
  MinecraftBiomeTypes2["DeepFrozenOcean"] = "minecraft:deep_frozen_ocean";
  MinecraftBiomeTypes2["DeepLukewarmOcean"] = "minecraft:deep_lukewarm_ocean";
  MinecraftBiomeTypes2["DeepOcean"] = "minecraft:deep_ocean";
  MinecraftBiomeTypes2["DeepWarmOcean"] = "minecraft:deep_warm_ocean";
  MinecraftBiomeTypes2["Desert"] = "minecraft:desert";
  MinecraftBiomeTypes2["DesertHills"] = "minecraft:desert_hills";
  MinecraftBiomeTypes2["DesertMutated"] = "minecraft:desert_mutated";
  MinecraftBiomeTypes2["DripstoneCaves"] = "minecraft:dripstone_caves";
  MinecraftBiomeTypes2["ExtremeHills"] = "minecraft:extreme_hills";
  MinecraftBiomeTypes2["ExtremeHillsEdge"] = "minecraft:extreme_hills_edge";
  MinecraftBiomeTypes2["ExtremeHillsMutated"] = "minecraft:extreme_hills_mutated";
  MinecraftBiomeTypes2["ExtremeHillsPlusTrees"] = "minecraft:extreme_hills_plus_trees";
  MinecraftBiomeTypes2["ExtremeHillsPlusTreesMutated"] = "minecraft:extreme_hills_plus_trees_mutated";
  MinecraftBiomeTypes2["FlowerForest"] = "minecraft:flower_forest";
  MinecraftBiomeTypes2["Forest"] = "minecraft:forest";
  MinecraftBiomeTypes2["ForestHills"] = "minecraft:forest_hills";
  MinecraftBiomeTypes2["FrozenOcean"] = "minecraft:frozen_ocean";
  MinecraftBiomeTypes2["FrozenPeaks"] = "minecraft:frozen_peaks";
  MinecraftBiomeTypes2["FrozenRiver"] = "minecraft:frozen_river";
  MinecraftBiomeTypes2["Grove"] = "minecraft:grove";
  MinecraftBiomeTypes2["Hell"] = "minecraft:hell";
  MinecraftBiomeTypes2["IceMountains"] = "minecraft:ice_mountains";
  MinecraftBiomeTypes2["IcePlains"] = "minecraft:ice_plains";
  MinecraftBiomeTypes2["IcePlainsSpikes"] = "minecraft:ice_plains_spikes";
  MinecraftBiomeTypes2["JaggedPeaks"] = "minecraft:jagged_peaks";
  MinecraftBiomeTypes2["Jungle"] = "minecraft:jungle";
  MinecraftBiomeTypes2["JungleEdge"] = "minecraft:jungle_edge";
  MinecraftBiomeTypes2["JungleEdgeMutated"] = "minecraft:jungle_edge_mutated";
  MinecraftBiomeTypes2["JungleHills"] = "minecraft:jungle_hills";
  MinecraftBiomeTypes2["JungleMutated"] = "minecraft:jungle_mutated";
  MinecraftBiomeTypes2["LegacyFrozenOcean"] = "minecraft:legacy_frozen_ocean";
  MinecraftBiomeTypes2["LukewarmOcean"] = "minecraft:lukewarm_ocean";
  MinecraftBiomeTypes2["LushCaves"] = "minecraft:lush_caves";
  MinecraftBiomeTypes2["MangroveSwamp"] = "minecraft:mangrove_swamp";
  MinecraftBiomeTypes2["Meadow"] = "minecraft:meadow";
  MinecraftBiomeTypes2["MegaTaiga"] = "minecraft:mega_taiga";
  MinecraftBiomeTypes2["MegaTaigaHills"] = "minecraft:mega_taiga_hills";
  MinecraftBiomeTypes2["Mesa"] = "minecraft:mesa";
  MinecraftBiomeTypes2["MesaBryce"] = "minecraft:mesa_bryce";
  MinecraftBiomeTypes2["MesaPlateau"] = "minecraft:mesa_plateau";
  MinecraftBiomeTypes2["MesaPlateauMutated"] = "minecraft:mesa_plateau_mutated";
  MinecraftBiomeTypes2["MesaPlateauStone"] = "minecraft:mesa_plateau_stone";
  MinecraftBiomeTypes2["MesaPlateauStoneMutated"] = "minecraft:mesa_plateau_stone_mutated";
  MinecraftBiomeTypes2["MushroomIsland"] = "minecraft:mushroom_island";
  MinecraftBiomeTypes2["MushroomIslandShore"] = "minecraft:mushroom_island_shore";
  MinecraftBiomeTypes2["Ocean"] = "minecraft:ocean";
  MinecraftBiomeTypes2["PaleGarden"] = "minecraft:pale_garden";
  MinecraftBiomeTypes2["Plains"] = "minecraft:plains";
  MinecraftBiomeTypes2["RedwoodTaigaHillsMutated"] = "minecraft:redwood_taiga_hills_mutated";
  MinecraftBiomeTypes2["RedwoodTaigaMutated"] = "minecraft:redwood_taiga_mutated";
  MinecraftBiomeTypes2["River"] = "minecraft:river";
  MinecraftBiomeTypes2["RoofedForest"] = "minecraft:roofed_forest";
  MinecraftBiomeTypes2["RoofedForestMutated"] = "minecraft:roofed_forest_mutated";
  MinecraftBiomeTypes2["Savanna"] = "minecraft:savanna";
  MinecraftBiomeTypes2["SavannaMutated"] = "minecraft:savanna_mutated";
  MinecraftBiomeTypes2["SavannaPlateau"] = "minecraft:savanna_plateau";
  MinecraftBiomeTypes2["SavannaPlateauMutated"] = "minecraft:savanna_plateau_mutated";
  MinecraftBiomeTypes2["SnowySlopes"] = "minecraft:snowy_slopes";
  MinecraftBiomeTypes2["SoulsandValley"] = "minecraft:soulsand_valley";
  MinecraftBiomeTypes2["StoneBeach"] = "minecraft:stone_beach";
  MinecraftBiomeTypes2["StonyPeaks"] = "minecraft:stony_peaks";
  MinecraftBiomeTypes2["SunflowerPlains"] = "minecraft:sunflower_plains";
  MinecraftBiomeTypes2["Swampland"] = "minecraft:swampland";
  MinecraftBiomeTypes2["SwamplandMutated"] = "minecraft:swampland_mutated";
  MinecraftBiomeTypes2["Taiga"] = "minecraft:taiga";
  MinecraftBiomeTypes2["TaigaHills"] = "minecraft:taiga_hills";
  MinecraftBiomeTypes2["TaigaMutated"] = "minecraft:taiga_mutated";
  MinecraftBiomeTypes2["TheEnd"] = "minecraft:the_end";
  MinecraftBiomeTypes2["WarmOcean"] = "minecraft:warm_ocean";
  MinecraftBiomeTypes2["WarpedForest"] = "minecraft:warped_forest";
  return MinecraftBiomeTypes2;
})(MinecraftBiomeTypes || {});
var MinecraftBlockTypes = ((MinecraftBlockTypes2) => {
  MinecraftBlockTypes2["AcaciaButton"] = "minecraft:acacia_button";
  MinecraftBlockTypes2["AcaciaDoor"] = "minecraft:acacia_door";
  MinecraftBlockTypes2["AcaciaDoubleSlab"] = "minecraft:acacia_double_slab";
  MinecraftBlockTypes2["AcaciaFence"] = "minecraft:acacia_fence";
  MinecraftBlockTypes2["AcaciaFenceGate"] = "minecraft:acacia_fence_gate";
  MinecraftBlockTypes2["AcaciaHangingSign"] = "minecraft:acacia_hanging_sign";
  MinecraftBlockTypes2["AcaciaLeaves"] = "minecraft:acacia_leaves";
  MinecraftBlockTypes2["AcaciaLog"] = "minecraft:acacia_log";
  MinecraftBlockTypes2["AcaciaPlanks"] = "minecraft:acacia_planks";
  MinecraftBlockTypes2["AcaciaPressurePlate"] = "minecraft:acacia_pressure_plate";
  MinecraftBlockTypes2["AcaciaSapling"] = "minecraft:acacia_sapling";
  MinecraftBlockTypes2["AcaciaSlab"] = "minecraft:acacia_slab";
  MinecraftBlockTypes2["AcaciaStairs"] = "minecraft:acacia_stairs";
  MinecraftBlockTypes2["AcaciaStandingSign"] = "minecraft:acacia_standing_sign";
  MinecraftBlockTypes2["AcaciaTrapdoor"] = "minecraft:acacia_trapdoor";
  MinecraftBlockTypes2["AcaciaWallSign"] = "minecraft:acacia_wall_sign";
  MinecraftBlockTypes2["AcaciaWood"] = "minecraft:acacia_wood";
  MinecraftBlockTypes2["ActivatorRail"] = "minecraft:activator_rail";
  MinecraftBlockTypes2["Air"] = "minecraft:air";
  MinecraftBlockTypes2["Allium"] = "minecraft:allium";
  MinecraftBlockTypes2["Allow"] = "minecraft:allow";
  MinecraftBlockTypes2["AmethystBlock"] = "minecraft:amethyst_block";
  MinecraftBlockTypes2["AmethystCluster"] = "minecraft:amethyst_cluster";
  MinecraftBlockTypes2["AncientDebris"] = "minecraft:ancient_debris";
  MinecraftBlockTypes2["Andesite"] = "minecraft:andesite";
  MinecraftBlockTypes2["AndesiteDoubleSlab"] = "minecraft:andesite_double_slab";
  MinecraftBlockTypes2["AndesiteSlab"] = "minecraft:andesite_slab";
  MinecraftBlockTypes2["AndesiteStairs"] = "minecraft:andesite_stairs";
  MinecraftBlockTypes2["AndesiteWall"] = "minecraft:andesite_wall";
  MinecraftBlockTypes2["Anvil"] = "minecraft:anvil";
  MinecraftBlockTypes2["Azalea"] = "minecraft:azalea";
  MinecraftBlockTypes2["AzaleaLeaves"] = "minecraft:azalea_leaves";
  MinecraftBlockTypes2["AzaleaLeavesFlowered"] = "minecraft:azalea_leaves_flowered";
  MinecraftBlockTypes2["AzureBluet"] = "minecraft:azure_bluet";
  MinecraftBlockTypes2["Bamboo"] = "minecraft:bamboo";
  MinecraftBlockTypes2["BambooBlock"] = "minecraft:bamboo_block";
  MinecraftBlockTypes2["BambooButton"] = "minecraft:bamboo_button";
  MinecraftBlockTypes2["BambooDoor"] = "minecraft:bamboo_door";
  MinecraftBlockTypes2["BambooDoubleSlab"] = "minecraft:bamboo_double_slab";
  MinecraftBlockTypes2["BambooFence"] = "minecraft:bamboo_fence";
  MinecraftBlockTypes2["BambooFenceGate"] = "minecraft:bamboo_fence_gate";
  MinecraftBlockTypes2["BambooHangingSign"] = "minecraft:bamboo_hanging_sign";
  MinecraftBlockTypes2["BambooMosaic"] = "minecraft:bamboo_mosaic";
  MinecraftBlockTypes2["BambooMosaicDoubleSlab"] = "minecraft:bamboo_mosaic_double_slab";
  MinecraftBlockTypes2["BambooMosaicSlab"] = "minecraft:bamboo_mosaic_slab";
  MinecraftBlockTypes2["BambooMosaicStairs"] = "minecraft:bamboo_mosaic_stairs";
  MinecraftBlockTypes2["BambooPlanks"] = "minecraft:bamboo_planks";
  MinecraftBlockTypes2["BambooPressurePlate"] = "minecraft:bamboo_pressure_plate";
  MinecraftBlockTypes2["BambooSapling"] = "minecraft:bamboo_sapling";
  MinecraftBlockTypes2["BambooSlab"] = "minecraft:bamboo_slab";
  MinecraftBlockTypes2["BambooStairs"] = "minecraft:bamboo_stairs";
  MinecraftBlockTypes2["BambooStandingSign"] = "minecraft:bamboo_standing_sign";
  MinecraftBlockTypes2["BambooTrapdoor"] = "minecraft:bamboo_trapdoor";
  MinecraftBlockTypes2["BambooWallSign"] = "minecraft:bamboo_wall_sign";
  MinecraftBlockTypes2["Barrel"] = "minecraft:barrel";
  MinecraftBlockTypes2["Barrier"] = "minecraft:barrier";
  MinecraftBlockTypes2["Basalt"] = "minecraft:basalt";
  MinecraftBlockTypes2["Beacon"] = "minecraft:beacon";
  MinecraftBlockTypes2["Bed"] = "minecraft:bed";
  MinecraftBlockTypes2["Bedrock"] = "minecraft:bedrock";
  MinecraftBlockTypes2["BeeNest"] = "minecraft:bee_nest";
  MinecraftBlockTypes2["Beehive"] = "minecraft:beehive";
  MinecraftBlockTypes2["Beetroot"] = "minecraft:beetroot";
  MinecraftBlockTypes2["Bell"] = "minecraft:bell";
  MinecraftBlockTypes2["BigDripleaf"] = "minecraft:big_dripleaf";
  MinecraftBlockTypes2["BirchButton"] = "minecraft:birch_button";
  MinecraftBlockTypes2["BirchDoor"] = "minecraft:birch_door";
  MinecraftBlockTypes2["BirchDoubleSlab"] = "minecraft:birch_double_slab";
  MinecraftBlockTypes2["BirchFence"] = "minecraft:birch_fence";
  MinecraftBlockTypes2["BirchFenceGate"] = "minecraft:birch_fence_gate";
  MinecraftBlockTypes2["BirchHangingSign"] = "minecraft:birch_hanging_sign";
  MinecraftBlockTypes2["BirchLeaves"] = "minecraft:birch_leaves";
  MinecraftBlockTypes2["BirchLog"] = "minecraft:birch_log";
  MinecraftBlockTypes2["BirchPlanks"] = "minecraft:birch_planks";
  MinecraftBlockTypes2["BirchPressurePlate"] = "minecraft:birch_pressure_plate";
  MinecraftBlockTypes2["BirchSapling"] = "minecraft:birch_sapling";
  MinecraftBlockTypes2["BirchSlab"] = "minecraft:birch_slab";
  MinecraftBlockTypes2["BirchStairs"] = "minecraft:birch_stairs";
  MinecraftBlockTypes2["BirchStandingSign"] = "minecraft:birch_standing_sign";
  MinecraftBlockTypes2["BirchTrapdoor"] = "minecraft:birch_trapdoor";
  MinecraftBlockTypes2["BirchWallSign"] = "minecraft:birch_wall_sign";
  MinecraftBlockTypes2["BirchWood"] = "minecraft:birch_wood";
  MinecraftBlockTypes2["BlackCandle"] = "minecraft:black_candle";
  MinecraftBlockTypes2["BlackCandleCake"] = "minecraft:black_candle_cake";
  MinecraftBlockTypes2["BlackCarpet"] = "minecraft:black_carpet";
  MinecraftBlockTypes2["BlackConcrete"] = "minecraft:black_concrete";
  MinecraftBlockTypes2["BlackConcretePowder"] = "minecraft:black_concrete_powder";
  MinecraftBlockTypes2["BlackGlazedTerracotta"] = "minecraft:black_glazed_terracotta";
  MinecraftBlockTypes2["BlackShulkerBox"] = "minecraft:black_shulker_box";
  MinecraftBlockTypes2["BlackStainedGlass"] = "minecraft:black_stained_glass";
  MinecraftBlockTypes2["BlackStainedGlassPane"] = "minecraft:black_stained_glass_pane";
  MinecraftBlockTypes2["BlackTerracotta"] = "minecraft:black_terracotta";
  MinecraftBlockTypes2["BlackWool"] = "minecraft:black_wool";
  MinecraftBlockTypes2["Blackstone"] = "minecraft:blackstone";
  MinecraftBlockTypes2["BlackstoneDoubleSlab"] = "minecraft:blackstone_double_slab";
  MinecraftBlockTypes2["BlackstoneSlab"] = "minecraft:blackstone_slab";
  MinecraftBlockTypes2["BlackstoneStairs"] = "minecraft:blackstone_stairs";
  MinecraftBlockTypes2["BlackstoneWall"] = "minecraft:blackstone_wall";
  MinecraftBlockTypes2["BlastFurnace"] = "minecraft:blast_furnace";
  MinecraftBlockTypes2["BlueCandle"] = "minecraft:blue_candle";
  MinecraftBlockTypes2["BlueCandleCake"] = "minecraft:blue_candle_cake";
  MinecraftBlockTypes2["BlueCarpet"] = "minecraft:blue_carpet";
  MinecraftBlockTypes2["BlueConcrete"] = "minecraft:blue_concrete";
  MinecraftBlockTypes2["BlueConcretePowder"] = "minecraft:blue_concrete_powder";
  MinecraftBlockTypes2["BlueGlazedTerracotta"] = "minecraft:blue_glazed_terracotta";
  MinecraftBlockTypes2["BlueIce"] = "minecraft:blue_ice";
  MinecraftBlockTypes2["BlueOrchid"] = "minecraft:blue_orchid";
  MinecraftBlockTypes2["BlueShulkerBox"] = "minecraft:blue_shulker_box";
  MinecraftBlockTypes2["BlueStainedGlass"] = "minecraft:blue_stained_glass";
  MinecraftBlockTypes2["BlueStainedGlassPane"] = "minecraft:blue_stained_glass_pane";
  MinecraftBlockTypes2["BlueTerracotta"] = "minecraft:blue_terracotta";
  MinecraftBlockTypes2["BlueWool"] = "minecraft:blue_wool";
  MinecraftBlockTypes2["BoneBlock"] = "minecraft:bone_block";
  MinecraftBlockTypes2["Bookshelf"] = "minecraft:bookshelf";
  MinecraftBlockTypes2["BorderBlock"] = "minecraft:border_block";
  MinecraftBlockTypes2["BrainCoral"] = "minecraft:brain_coral";
  MinecraftBlockTypes2["BrainCoralBlock"] = "minecraft:brain_coral_block";
  MinecraftBlockTypes2["BrainCoralFan"] = "minecraft:brain_coral_fan";
  MinecraftBlockTypes2["BrainCoralWallFan"] = "minecraft:brain_coral_wall_fan";
  MinecraftBlockTypes2["BrewingStand"] = "minecraft:brewing_stand";
  MinecraftBlockTypes2["BrickBlock"] = "minecraft:brick_block";
  MinecraftBlockTypes2["BrickDoubleSlab"] = "minecraft:brick_double_slab";
  MinecraftBlockTypes2["BrickSlab"] = "minecraft:brick_slab";
  MinecraftBlockTypes2["BrickStairs"] = "minecraft:brick_stairs";
  MinecraftBlockTypes2["BrickWall"] = "minecraft:brick_wall";
  MinecraftBlockTypes2["BrownCandle"] = "minecraft:brown_candle";
  MinecraftBlockTypes2["BrownCandleCake"] = "minecraft:brown_candle_cake";
  MinecraftBlockTypes2["BrownCarpet"] = "minecraft:brown_carpet";
  MinecraftBlockTypes2["BrownConcrete"] = "minecraft:brown_concrete";
  MinecraftBlockTypes2["BrownConcretePowder"] = "minecraft:brown_concrete_powder";
  MinecraftBlockTypes2["BrownGlazedTerracotta"] = "minecraft:brown_glazed_terracotta";
  MinecraftBlockTypes2["BrownMushroom"] = "minecraft:brown_mushroom";
  MinecraftBlockTypes2["BrownMushroomBlock"] = "minecraft:brown_mushroom_block";
  MinecraftBlockTypes2["BrownShulkerBox"] = "minecraft:brown_shulker_box";
  MinecraftBlockTypes2["BrownStainedGlass"] = "minecraft:brown_stained_glass";
  MinecraftBlockTypes2["BrownStainedGlassPane"] = "minecraft:brown_stained_glass_pane";
  MinecraftBlockTypes2["BrownTerracotta"] = "minecraft:brown_terracotta";
  MinecraftBlockTypes2["BrownWool"] = "minecraft:brown_wool";
  MinecraftBlockTypes2["BubbleColumn"] = "minecraft:bubble_column";
  MinecraftBlockTypes2["BubbleCoral"] = "minecraft:bubble_coral";
  MinecraftBlockTypes2["BubbleCoralBlock"] = "minecraft:bubble_coral_block";
  MinecraftBlockTypes2["BubbleCoralFan"] = "minecraft:bubble_coral_fan";
  MinecraftBlockTypes2["BubbleCoralWallFan"] = "minecraft:bubble_coral_wall_fan";
  MinecraftBlockTypes2["BuddingAmethyst"] = "minecraft:budding_amethyst";
  MinecraftBlockTypes2["Bush"] = "minecraft:bush";
  MinecraftBlockTypes2["Cactus"] = "minecraft:cactus";
  MinecraftBlockTypes2["CactusFlower"] = "minecraft:cactus_flower";
  MinecraftBlockTypes2["Cake"] = "minecraft:cake";
  MinecraftBlockTypes2["Calcite"] = "minecraft:calcite";
  MinecraftBlockTypes2["CalibratedSculkSensor"] = "minecraft:calibrated_sculk_sensor";
  MinecraftBlockTypes2["Camera"] = "minecraft:camera";
  MinecraftBlockTypes2["Campfire"] = "minecraft:campfire";
  MinecraftBlockTypes2["Candle"] = "minecraft:candle";
  MinecraftBlockTypes2["CandleCake"] = "minecraft:candle_cake";
  MinecraftBlockTypes2["Carrots"] = "minecraft:carrots";
  MinecraftBlockTypes2["CartographyTable"] = "minecraft:cartography_table";
  MinecraftBlockTypes2["CarvedPumpkin"] = "minecraft:carved_pumpkin";
  MinecraftBlockTypes2["Cauldron"] = "minecraft:cauldron";
  MinecraftBlockTypes2["CaveVines"] = "minecraft:cave_vines";
  MinecraftBlockTypes2["CaveVinesBodyWithBerries"] = "minecraft:cave_vines_body_with_berries";
  MinecraftBlockTypes2["CaveVinesHeadWithBerries"] = "minecraft:cave_vines_head_with_berries";
  MinecraftBlockTypes2["Chain"] = "minecraft:chain";
  MinecraftBlockTypes2["ChainCommandBlock"] = "minecraft:chain_command_block";
  MinecraftBlockTypes2["ChemicalHeat"] = "minecraft:chemical_heat";
  MinecraftBlockTypes2["CherryButton"] = "minecraft:cherry_button";
  MinecraftBlockTypes2["CherryDoor"] = "minecraft:cherry_door";
  MinecraftBlockTypes2["CherryDoubleSlab"] = "minecraft:cherry_double_slab";
  MinecraftBlockTypes2["CherryFence"] = "minecraft:cherry_fence";
  MinecraftBlockTypes2["CherryFenceGate"] = "minecraft:cherry_fence_gate";
  MinecraftBlockTypes2["CherryHangingSign"] = "minecraft:cherry_hanging_sign";
  MinecraftBlockTypes2["CherryLeaves"] = "minecraft:cherry_leaves";
  MinecraftBlockTypes2["CherryLog"] = "minecraft:cherry_log";
  MinecraftBlockTypes2["CherryPlanks"] = "minecraft:cherry_planks";
  MinecraftBlockTypes2["CherryPressurePlate"] = "minecraft:cherry_pressure_plate";
  MinecraftBlockTypes2["CherrySapling"] = "minecraft:cherry_sapling";
  MinecraftBlockTypes2["CherrySlab"] = "minecraft:cherry_slab";
  MinecraftBlockTypes2["CherryStairs"] = "minecraft:cherry_stairs";
  MinecraftBlockTypes2["CherryStandingSign"] = "minecraft:cherry_standing_sign";
  MinecraftBlockTypes2["CherryTrapdoor"] = "minecraft:cherry_trapdoor";
  MinecraftBlockTypes2["CherryWallSign"] = "minecraft:cherry_wall_sign";
  MinecraftBlockTypes2["CherryWood"] = "minecraft:cherry_wood";
  MinecraftBlockTypes2["Chest"] = "minecraft:chest";
  MinecraftBlockTypes2["ChippedAnvil"] = "minecraft:chipped_anvil";
  MinecraftBlockTypes2["ChiseledBookshelf"] = "minecraft:chiseled_bookshelf";
  MinecraftBlockTypes2["ChiseledCopper"] = "minecraft:chiseled_copper";
  MinecraftBlockTypes2["ChiseledDeepslate"] = "minecraft:chiseled_deepslate";
  MinecraftBlockTypes2["ChiseledNetherBricks"] = "minecraft:chiseled_nether_bricks";
  MinecraftBlockTypes2["ChiseledPolishedBlackstone"] = "minecraft:chiseled_polished_blackstone";
  MinecraftBlockTypes2["ChiseledQuartzBlock"] = "minecraft:chiseled_quartz_block";
  MinecraftBlockTypes2["ChiseledRedSandstone"] = "minecraft:chiseled_red_sandstone";
  MinecraftBlockTypes2["ChiseledResinBricks"] = "minecraft:chiseled_resin_bricks";
  MinecraftBlockTypes2["ChiseledSandstone"] = "minecraft:chiseled_sandstone";
  MinecraftBlockTypes2["ChiseledStoneBricks"] = "minecraft:chiseled_stone_bricks";
  MinecraftBlockTypes2["ChiseledTuff"] = "minecraft:chiseled_tuff";
  MinecraftBlockTypes2["ChiseledTuffBricks"] = "minecraft:chiseled_tuff_bricks";
  MinecraftBlockTypes2["ChorusFlower"] = "minecraft:chorus_flower";
  MinecraftBlockTypes2["ChorusPlant"] = "minecraft:chorus_plant";
  MinecraftBlockTypes2["Clay"] = "minecraft:clay";
  MinecraftBlockTypes2["ClosedEyeblossom"] = "minecraft:closed_eyeblossom";
  MinecraftBlockTypes2["CoalBlock"] = "minecraft:coal_block";
  MinecraftBlockTypes2["CoalOre"] = "minecraft:coal_ore";
  MinecraftBlockTypes2["CoarseDirt"] = "minecraft:coarse_dirt";
  MinecraftBlockTypes2["CobbledDeepslate"] = "minecraft:cobbled_deepslate";
  MinecraftBlockTypes2["CobbledDeepslateDoubleSlab"] = "minecraft:cobbled_deepslate_double_slab";
  MinecraftBlockTypes2["CobbledDeepslateSlab"] = "minecraft:cobbled_deepslate_slab";
  MinecraftBlockTypes2["CobbledDeepslateStairs"] = "minecraft:cobbled_deepslate_stairs";
  MinecraftBlockTypes2["CobbledDeepslateWall"] = "minecraft:cobbled_deepslate_wall";
  MinecraftBlockTypes2["Cobblestone"] = "minecraft:cobblestone";
  MinecraftBlockTypes2["CobblestoneDoubleSlab"] = "minecraft:cobblestone_double_slab";
  MinecraftBlockTypes2["CobblestoneSlab"] = "minecraft:cobblestone_slab";
  MinecraftBlockTypes2["CobblestoneWall"] = "minecraft:cobblestone_wall";
  MinecraftBlockTypes2["Cocoa"] = "minecraft:cocoa";
  MinecraftBlockTypes2["ColoredTorchBlue"] = "minecraft:colored_torch_blue";
  MinecraftBlockTypes2["ColoredTorchGreen"] = "minecraft:colored_torch_green";
  MinecraftBlockTypes2["ColoredTorchPurple"] = "minecraft:colored_torch_purple";
  MinecraftBlockTypes2["ColoredTorchRed"] = "minecraft:colored_torch_red";
  MinecraftBlockTypes2["CommandBlock"] = "minecraft:command_block";
  MinecraftBlockTypes2["Composter"] = "minecraft:composter";
  MinecraftBlockTypes2["CompoundCreator"] = "minecraft:compound_creator";
  MinecraftBlockTypes2["Conduit"] = "minecraft:conduit";
  MinecraftBlockTypes2["CopperBlock"] = "minecraft:copper_block";
  MinecraftBlockTypes2["CopperBulb"] = "minecraft:copper_bulb";
  MinecraftBlockTypes2["CopperDoor"] = "minecraft:copper_door";
  MinecraftBlockTypes2["CopperGrate"] = "minecraft:copper_grate";
  MinecraftBlockTypes2["CopperOre"] = "minecraft:copper_ore";
  MinecraftBlockTypes2["CopperTrapdoor"] = "minecraft:copper_trapdoor";
  MinecraftBlockTypes2["Cornflower"] = "minecraft:cornflower";
  MinecraftBlockTypes2["CrackedDeepslateBricks"] = "minecraft:cracked_deepslate_bricks";
  MinecraftBlockTypes2["CrackedDeepslateTiles"] = "minecraft:cracked_deepslate_tiles";
  MinecraftBlockTypes2["CrackedNetherBricks"] = "minecraft:cracked_nether_bricks";
  MinecraftBlockTypes2["CrackedPolishedBlackstoneBricks"] = "minecraft:cracked_polished_blackstone_bricks";
  MinecraftBlockTypes2["CrackedStoneBricks"] = "minecraft:cracked_stone_bricks";
  MinecraftBlockTypes2["Crafter"] = "minecraft:crafter";
  MinecraftBlockTypes2["CraftingTable"] = "minecraft:crafting_table";
  MinecraftBlockTypes2["CreakingHeart"] = "minecraft:creaking_heart";
  MinecraftBlockTypes2["CreeperHead"] = "minecraft:creeper_head";
  MinecraftBlockTypes2["CrimsonButton"] = "minecraft:crimson_button";
  MinecraftBlockTypes2["CrimsonDoor"] = "minecraft:crimson_door";
  MinecraftBlockTypes2["CrimsonDoubleSlab"] = "minecraft:crimson_double_slab";
  MinecraftBlockTypes2["CrimsonFence"] = "minecraft:crimson_fence";
  MinecraftBlockTypes2["CrimsonFenceGate"] = "minecraft:crimson_fence_gate";
  MinecraftBlockTypes2["CrimsonFungus"] = "minecraft:crimson_fungus";
  MinecraftBlockTypes2["CrimsonHangingSign"] = "minecraft:crimson_hanging_sign";
  MinecraftBlockTypes2["CrimsonHyphae"] = "minecraft:crimson_hyphae";
  MinecraftBlockTypes2["CrimsonNylium"] = "minecraft:crimson_nylium";
  MinecraftBlockTypes2["CrimsonPlanks"] = "minecraft:crimson_planks";
  MinecraftBlockTypes2["CrimsonPressurePlate"] = "minecraft:crimson_pressure_plate";
  MinecraftBlockTypes2["CrimsonRoots"] = "minecraft:crimson_roots";
  MinecraftBlockTypes2["CrimsonSlab"] = "minecraft:crimson_slab";
  MinecraftBlockTypes2["CrimsonStairs"] = "minecraft:crimson_stairs";
  MinecraftBlockTypes2["CrimsonStandingSign"] = "minecraft:crimson_standing_sign";
  MinecraftBlockTypes2["CrimsonStem"] = "minecraft:crimson_stem";
  MinecraftBlockTypes2["CrimsonTrapdoor"] = "minecraft:crimson_trapdoor";
  MinecraftBlockTypes2["CrimsonWallSign"] = "minecraft:crimson_wall_sign";
  MinecraftBlockTypes2["CryingObsidian"] = "minecraft:crying_obsidian";
  MinecraftBlockTypes2["CutCopper"] = "minecraft:cut_copper";
  MinecraftBlockTypes2["CutCopperSlab"] = "minecraft:cut_copper_slab";
  MinecraftBlockTypes2["CutCopperStairs"] = "minecraft:cut_copper_stairs";
  MinecraftBlockTypes2["CutRedSandstone"] = "minecraft:cut_red_sandstone";
  MinecraftBlockTypes2["CutRedSandstoneDoubleSlab"] = "minecraft:cut_red_sandstone_double_slab";
  MinecraftBlockTypes2["CutRedSandstoneSlab"] = "minecraft:cut_red_sandstone_slab";
  MinecraftBlockTypes2["CutSandstone"] = "minecraft:cut_sandstone";
  MinecraftBlockTypes2["CutSandstoneDoubleSlab"] = "minecraft:cut_sandstone_double_slab";
  MinecraftBlockTypes2["CutSandstoneSlab"] = "minecraft:cut_sandstone_slab";
  MinecraftBlockTypes2["CyanCandle"] = "minecraft:cyan_candle";
  MinecraftBlockTypes2["CyanCandleCake"] = "minecraft:cyan_candle_cake";
  MinecraftBlockTypes2["CyanCarpet"] = "minecraft:cyan_carpet";
  MinecraftBlockTypes2["CyanConcrete"] = "minecraft:cyan_concrete";
  MinecraftBlockTypes2["CyanConcretePowder"] = "minecraft:cyan_concrete_powder";
  MinecraftBlockTypes2["CyanGlazedTerracotta"] = "minecraft:cyan_glazed_terracotta";
  MinecraftBlockTypes2["CyanShulkerBox"] = "minecraft:cyan_shulker_box";
  MinecraftBlockTypes2["CyanStainedGlass"] = "minecraft:cyan_stained_glass";
  MinecraftBlockTypes2["CyanStainedGlassPane"] = "minecraft:cyan_stained_glass_pane";
  MinecraftBlockTypes2["CyanTerracotta"] = "minecraft:cyan_terracotta";
  MinecraftBlockTypes2["CyanWool"] = "minecraft:cyan_wool";
  MinecraftBlockTypes2["DamagedAnvil"] = "minecraft:damaged_anvil";
  MinecraftBlockTypes2["Dandelion"] = "minecraft:dandelion";
  MinecraftBlockTypes2["DarkOakButton"] = "minecraft:dark_oak_button";
  MinecraftBlockTypes2["DarkOakDoor"] = "minecraft:dark_oak_door";
  MinecraftBlockTypes2["DarkOakDoubleSlab"] = "minecraft:dark_oak_double_slab";
  MinecraftBlockTypes2["DarkOakFence"] = "minecraft:dark_oak_fence";
  MinecraftBlockTypes2["DarkOakFenceGate"] = "minecraft:dark_oak_fence_gate";
  MinecraftBlockTypes2["DarkOakHangingSign"] = "minecraft:dark_oak_hanging_sign";
  MinecraftBlockTypes2["DarkOakLeaves"] = "minecraft:dark_oak_leaves";
  MinecraftBlockTypes2["DarkOakLog"] = "minecraft:dark_oak_log";
  MinecraftBlockTypes2["DarkOakPlanks"] = "minecraft:dark_oak_planks";
  MinecraftBlockTypes2["DarkOakPressurePlate"] = "minecraft:dark_oak_pressure_plate";
  MinecraftBlockTypes2["DarkOakSapling"] = "minecraft:dark_oak_sapling";
  MinecraftBlockTypes2["DarkOakSlab"] = "minecraft:dark_oak_slab";
  MinecraftBlockTypes2["DarkOakStairs"] = "minecraft:dark_oak_stairs";
  MinecraftBlockTypes2["DarkOakTrapdoor"] = "minecraft:dark_oak_trapdoor";
  MinecraftBlockTypes2["DarkOakWood"] = "minecraft:dark_oak_wood";
  MinecraftBlockTypes2["DarkPrismarine"] = "minecraft:dark_prismarine";
  MinecraftBlockTypes2["DarkPrismarineDoubleSlab"] = "minecraft:dark_prismarine_double_slab";
  MinecraftBlockTypes2["DarkPrismarineSlab"] = "minecraft:dark_prismarine_slab";
  MinecraftBlockTypes2["DarkPrismarineStairs"] = "minecraft:dark_prismarine_stairs";
  MinecraftBlockTypes2["DarkoakStandingSign"] = "minecraft:darkoak_standing_sign";
  MinecraftBlockTypes2["DarkoakWallSign"] = "minecraft:darkoak_wall_sign";
  MinecraftBlockTypes2["DaylightDetector"] = "minecraft:daylight_detector";
  MinecraftBlockTypes2["DaylightDetectorInverted"] = "minecraft:daylight_detector_inverted";
  MinecraftBlockTypes2["DeadBrainCoral"] = "minecraft:dead_brain_coral";
  MinecraftBlockTypes2["DeadBrainCoralBlock"] = "minecraft:dead_brain_coral_block";
  MinecraftBlockTypes2["DeadBrainCoralFan"] = "minecraft:dead_brain_coral_fan";
  MinecraftBlockTypes2["DeadBrainCoralWallFan"] = "minecraft:dead_brain_coral_wall_fan";
  MinecraftBlockTypes2["DeadBubbleCoral"] = "minecraft:dead_bubble_coral";
  MinecraftBlockTypes2["DeadBubbleCoralBlock"] = "minecraft:dead_bubble_coral_block";
  MinecraftBlockTypes2["DeadBubbleCoralFan"] = "minecraft:dead_bubble_coral_fan";
  MinecraftBlockTypes2["DeadBubbleCoralWallFan"] = "minecraft:dead_bubble_coral_wall_fan";
  MinecraftBlockTypes2["DeadFireCoral"] = "minecraft:dead_fire_coral";
  MinecraftBlockTypes2["DeadFireCoralBlock"] = "minecraft:dead_fire_coral_block";
  MinecraftBlockTypes2["DeadFireCoralFan"] = "minecraft:dead_fire_coral_fan";
  MinecraftBlockTypes2["DeadFireCoralWallFan"] = "minecraft:dead_fire_coral_wall_fan";
  MinecraftBlockTypes2["DeadHornCoral"] = "minecraft:dead_horn_coral";
  MinecraftBlockTypes2["DeadHornCoralBlock"] = "minecraft:dead_horn_coral_block";
  MinecraftBlockTypes2["DeadHornCoralFan"] = "minecraft:dead_horn_coral_fan";
  MinecraftBlockTypes2["DeadHornCoralWallFan"] = "minecraft:dead_horn_coral_wall_fan";
  MinecraftBlockTypes2["DeadTubeCoral"] = "minecraft:dead_tube_coral";
  MinecraftBlockTypes2["DeadTubeCoralBlock"] = "minecraft:dead_tube_coral_block";
  MinecraftBlockTypes2["DeadTubeCoralFan"] = "minecraft:dead_tube_coral_fan";
  MinecraftBlockTypes2["DeadTubeCoralWallFan"] = "minecraft:dead_tube_coral_wall_fan";
  MinecraftBlockTypes2["Deadbush"] = "minecraft:deadbush";
  MinecraftBlockTypes2["DecoratedPot"] = "minecraft:decorated_pot";
  MinecraftBlockTypes2["Deepslate"] = "minecraft:deepslate";
  MinecraftBlockTypes2["DeepslateBrickDoubleSlab"] = "minecraft:deepslate_brick_double_slab";
  MinecraftBlockTypes2["DeepslateBrickSlab"] = "minecraft:deepslate_brick_slab";
  MinecraftBlockTypes2["DeepslateBrickStairs"] = "minecraft:deepslate_brick_stairs";
  MinecraftBlockTypes2["DeepslateBrickWall"] = "minecraft:deepslate_brick_wall";
  MinecraftBlockTypes2["DeepslateBricks"] = "minecraft:deepslate_bricks";
  MinecraftBlockTypes2["DeepslateCoalOre"] = "minecraft:deepslate_coal_ore";
  MinecraftBlockTypes2["DeepslateCopperOre"] = "minecraft:deepslate_copper_ore";
  MinecraftBlockTypes2["DeepslateDiamondOre"] = "minecraft:deepslate_diamond_ore";
  MinecraftBlockTypes2["DeepslateEmeraldOre"] = "minecraft:deepslate_emerald_ore";
  MinecraftBlockTypes2["DeepslateGoldOre"] = "minecraft:deepslate_gold_ore";
  MinecraftBlockTypes2["DeepslateIronOre"] = "minecraft:deepslate_iron_ore";
  MinecraftBlockTypes2["DeepslateLapisOre"] = "minecraft:deepslate_lapis_ore";
  MinecraftBlockTypes2["DeepslateRedstoneOre"] = "minecraft:deepslate_redstone_ore";
  MinecraftBlockTypes2["DeepslateTileDoubleSlab"] = "minecraft:deepslate_tile_double_slab";
  MinecraftBlockTypes2["DeepslateTileSlab"] = "minecraft:deepslate_tile_slab";
  MinecraftBlockTypes2["DeepslateTileStairs"] = "minecraft:deepslate_tile_stairs";
  MinecraftBlockTypes2["DeepslateTileWall"] = "minecraft:deepslate_tile_wall";
  MinecraftBlockTypes2["DeepslateTiles"] = "minecraft:deepslate_tiles";
  MinecraftBlockTypes2["Deny"] = "minecraft:deny";
  MinecraftBlockTypes2["DetectorRail"] = "minecraft:detector_rail";
  MinecraftBlockTypes2["DiamondBlock"] = "minecraft:diamond_block";
  MinecraftBlockTypes2["DiamondOre"] = "minecraft:diamond_ore";
  MinecraftBlockTypes2["Diorite"] = "minecraft:diorite";
  MinecraftBlockTypes2["DioriteDoubleSlab"] = "minecraft:diorite_double_slab";
  MinecraftBlockTypes2["DioriteSlab"] = "minecraft:diorite_slab";
  MinecraftBlockTypes2["DioriteStairs"] = "minecraft:diorite_stairs";
  MinecraftBlockTypes2["DioriteWall"] = "minecraft:diorite_wall";
  MinecraftBlockTypes2["Dirt"] = "minecraft:dirt";
  MinecraftBlockTypes2["DirtWithRoots"] = "minecraft:dirt_with_roots";
  MinecraftBlockTypes2["Dispenser"] = "minecraft:dispenser";
  MinecraftBlockTypes2["DoubleCutCopperSlab"] = "minecraft:double_cut_copper_slab";
  MinecraftBlockTypes2["DragonEgg"] = "minecraft:dragon_egg";
  MinecraftBlockTypes2["DragonHead"] = "minecraft:dragon_head";
  MinecraftBlockTypes2["DriedGhast"] = "minecraft:dried_ghast";
  MinecraftBlockTypes2["DriedKelpBlock"] = "minecraft:dried_kelp_block";
  MinecraftBlockTypes2["DripstoneBlock"] = "minecraft:dripstone_block";
  MinecraftBlockTypes2["Dropper"] = "minecraft:dropper";
  MinecraftBlockTypes2["Element0"] = "minecraft:element_0";
  MinecraftBlockTypes2["Element1"] = "minecraft:element_1";
  MinecraftBlockTypes2["Element10"] = "minecraft:element_10";
  MinecraftBlockTypes2["Element100"] = "minecraft:element_100";
  MinecraftBlockTypes2["Element101"] = "minecraft:element_101";
  MinecraftBlockTypes2["Element102"] = "minecraft:element_102";
  MinecraftBlockTypes2["Element103"] = "minecraft:element_103";
  MinecraftBlockTypes2["Element104"] = "minecraft:element_104";
  MinecraftBlockTypes2["Element105"] = "minecraft:element_105";
  MinecraftBlockTypes2["Element106"] = "minecraft:element_106";
  MinecraftBlockTypes2["Element107"] = "minecraft:element_107";
  MinecraftBlockTypes2["Element108"] = "minecraft:element_108";
  MinecraftBlockTypes2["Element109"] = "minecraft:element_109";
  MinecraftBlockTypes2["Element11"] = "minecraft:element_11";
  MinecraftBlockTypes2["Element110"] = "minecraft:element_110";
  MinecraftBlockTypes2["Element111"] = "minecraft:element_111";
  MinecraftBlockTypes2["Element112"] = "minecraft:element_112";
  MinecraftBlockTypes2["Element113"] = "minecraft:element_113";
  MinecraftBlockTypes2["Element114"] = "minecraft:element_114";
  MinecraftBlockTypes2["Element115"] = "minecraft:element_115";
  MinecraftBlockTypes2["Element116"] = "minecraft:element_116";
  MinecraftBlockTypes2["Element117"] = "minecraft:element_117";
  MinecraftBlockTypes2["Element118"] = "minecraft:element_118";
  MinecraftBlockTypes2["Element12"] = "minecraft:element_12";
  MinecraftBlockTypes2["Element13"] = "minecraft:element_13";
  MinecraftBlockTypes2["Element14"] = "minecraft:element_14";
  MinecraftBlockTypes2["Element15"] = "minecraft:element_15";
  MinecraftBlockTypes2["Element16"] = "minecraft:element_16";
  MinecraftBlockTypes2["Element17"] = "minecraft:element_17";
  MinecraftBlockTypes2["Element18"] = "minecraft:element_18";
  MinecraftBlockTypes2["Element19"] = "minecraft:element_19";
  MinecraftBlockTypes2["Element2"] = "minecraft:element_2";
  MinecraftBlockTypes2["Element20"] = "minecraft:element_20";
  MinecraftBlockTypes2["Element21"] = "minecraft:element_21";
  MinecraftBlockTypes2["Element22"] = "minecraft:element_22";
  MinecraftBlockTypes2["Element23"] = "minecraft:element_23";
  MinecraftBlockTypes2["Element24"] = "minecraft:element_24";
  MinecraftBlockTypes2["Element25"] = "minecraft:element_25";
  MinecraftBlockTypes2["Element26"] = "minecraft:element_26";
  MinecraftBlockTypes2["Element27"] = "minecraft:element_27";
  MinecraftBlockTypes2["Element28"] = "minecraft:element_28";
  MinecraftBlockTypes2["Element29"] = "minecraft:element_29";
  MinecraftBlockTypes2["Element3"] = "minecraft:element_3";
  MinecraftBlockTypes2["Element30"] = "minecraft:element_30";
  MinecraftBlockTypes2["Element31"] = "minecraft:element_31";
  MinecraftBlockTypes2["Element32"] = "minecraft:element_32";
  MinecraftBlockTypes2["Element33"] = "minecraft:element_33";
  MinecraftBlockTypes2["Element34"] = "minecraft:element_34";
  MinecraftBlockTypes2["Element35"] = "minecraft:element_35";
  MinecraftBlockTypes2["Element36"] = "minecraft:element_36";
  MinecraftBlockTypes2["Element37"] = "minecraft:element_37";
  MinecraftBlockTypes2["Element38"] = "minecraft:element_38";
  MinecraftBlockTypes2["Element39"] = "minecraft:element_39";
  MinecraftBlockTypes2["Element4"] = "minecraft:element_4";
  MinecraftBlockTypes2["Element40"] = "minecraft:element_40";
  MinecraftBlockTypes2["Element41"] = "minecraft:element_41";
  MinecraftBlockTypes2["Element42"] = "minecraft:element_42";
  MinecraftBlockTypes2["Element43"] = "minecraft:element_43";
  MinecraftBlockTypes2["Element44"] = "minecraft:element_44";
  MinecraftBlockTypes2["Element45"] = "minecraft:element_45";
  MinecraftBlockTypes2["Element46"] = "minecraft:element_46";
  MinecraftBlockTypes2["Element47"] = "minecraft:element_47";
  MinecraftBlockTypes2["Element48"] = "minecraft:element_48";
  MinecraftBlockTypes2["Element49"] = "minecraft:element_49";
  MinecraftBlockTypes2["Element5"] = "minecraft:element_5";
  MinecraftBlockTypes2["Element50"] = "minecraft:element_50";
  MinecraftBlockTypes2["Element51"] = "minecraft:element_51";
  MinecraftBlockTypes2["Element52"] = "minecraft:element_52";
  MinecraftBlockTypes2["Element53"] = "minecraft:element_53";
  MinecraftBlockTypes2["Element54"] = "minecraft:element_54";
  MinecraftBlockTypes2["Element55"] = "minecraft:element_55";
  MinecraftBlockTypes2["Element56"] = "minecraft:element_56";
  MinecraftBlockTypes2["Element57"] = "minecraft:element_57";
  MinecraftBlockTypes2["Element58"] = "minecraft:element_58";
  MinecraftBlockTypes2["Element59"] = "minecraft:element_59";
  MinecraftBlockTypes2["Element6"] = "minecraft:element_6";
  MinecraftBlockTypes2["Element60"] = "minecraft:element_60";
  MinecraftBlockTypes2["Element61"] = "minecraft:element_61";
  MinecraftBlockTypes2["Element62"] = "minecraft:element_62";
  MinecraftBlockTypes2["Element63"] = "minecraft:element_63";
  MinecraftBlockTypes2["Element64"] = "minecraft:element_64";
  MinecraftBlockTypes2["Element65"] = "minecraft:element_65";
  MinecraftBlockTypes2["Element66"] = "minecraft:element_66";
  MinecraftBlockTypes2["Element67"] = "minecraft:element_67";
  MinecraftBlockTypes2["Element68"] = "minecraft:element_68";
  MinecraftBlockTypes2["Element69"] = "minecraft:element_69";
  MinecraftBlockTypes2["Element7"] = "minecraft:element_7";
  MinecraftBlockTypes2["Element70"] = "minecraft:element_70";
  MinecraftBlockTypes2["Element71"] = "minecraft:element_71";
  MinecraftBlockTypes2["Element72"] = "minecraft:element_72";
  MinecraftBlockTypes2["Element73"] = "minecraft:element_73";
  MinecraftBlockTypes2["Element74"] = "minecraft:element_74";
  MinecraftBlockTypes2["Element75"] = "minecraft:element_75";
  MinecraftBlockTypes2["Element76"] = "minecraft:element_76";
  MinecraftBlockTypes2["Element77"] = "minecraft:element_77";
  MinecraftBlockTypes2["Element78"] = "minecraft:element_78";
  MinecraftBlockTypes2["Element79"] = "minecraft:element_79";
  MinecraftBlockTypes2["Element8"] = "minecraft:element_8";
  MinecraftBlockTypes2["Element80"] = "minecraft:element_80";
  MinecraftBlockTypes2["Element81"] = "minecraft:element_81";
  MinecraftBlockTypes2["Element82"] = "minecraft:element_82";
  MinecraftBlockTypes2["Element83"] = "minecraft:element_83";
  MinecraftBlockTypes2["Element84"] = "minecraft:element_84";
  MinecraftBlockTypes2["Element85"] = "minecraft:element_85";
  MinecraftBlockTypes2["Element86"] = "minecraft:element_86";
  MinecraftBlockTypes2["Element87"] = "minecraft:element_87";
  MinecraftBlockTypes2["Element88"] = "minecraft:element_88";
  MinecraftBlockTypes2["Element89"] = "minecraft:element_89";
  MinecraftBlockTypes2["Element9"] = "minecraft:element_9";
  MinecraftBlockTypes2["Element90"] = "minecraft:element_90";
  MinecraftBlockTypes2["Element91"] = "minecraft:element_91";
  MinecraftBlockTypes2["Element92"] = "minecraft:element_92";
  MinecraftBlockTypes2["Element93"] = "minecraft:element_93";
  MinecraftBlockTypes2["Element94"] = "minecraft:element_94";
  MinecraftBlockTypes2["Element95"] = "minecraft:element_95";
  MinecraftBlockTypes2["Element96"] = "minecraft:element_96";
  MinecraftBlockTypes2["Element97"] = "minecraft:element_97";
  MinecraftBlockTypes2["Element98"] = "minecraft:element_98";
  MinecraftBlockTypes2["Element99"] = "minecraft:element_99";
  MinecraftBlockTypes2["ElementConstructor"] = "minecraft:element_constructor";
  MinecraftBlockTypes2["EmeraldBlock"] = "minecraft:emerald_block";
  MinecraftBlockTypes2["EmeraldOre"] = "minecraft:emerald_ore";
  MinecraftBlockTypes2["EnchantingTable"] = "minecraft:enchanting_table";
  MinecraftBlockTypes2["EndBrickStairs"] = "minecraft:end_brick_stairs";
  MinecraftBlockTypes2["EndBricks"] = "minecraft:end_bricks";
  MinecraftBlockTypes2["EndPortal"] = "minecraft:end_portal";
  MinecraftBlockTypes2["EndPortalFrame"] = "minecraft:end_portal_frame";
  MinecraftBlockTypes2["EndRod"] = "minecraft:end_rod";
  MinecraftBlockTypes2["EndStone"] = "minecraft:end_stone";
  MinecraftBlockTypes2["EndStoneBrickDoubleSlab"] = "minecraft:end_stone_brick_double_slab";
  MinecraftBlockTypes2["EndStoneBrickSlab"] = "minecraft:end_stone_brick_slab";
  MinecraftBlockTypes2["EndStoneBrickWall"] = "minecraft:end_stone_brick_wall";
  MinecraftBlockTypes2["EnderChest"] = "minecraft:ender_chest";
  MinecraftBlockTypes2["ExposedChiseledCopper"] = "minecraft:exposed_chiseled_copper";
  MinecraftBlockTypes2["ExposedCopper"] = "minecraft:exposed_copper";
  MinecraftBlockTypes2["ExposedCopperBulb"] = "minecraft:exposed_copper_bulb";
  MinecraftBlockTypes2["ExposedCopperDoor"] = "minecraft:exposed_copper_door";
  MinecraftBlockTypes2["ExposedCopperGrate"] = "minecraft:exposed_copper_grate";
  MinecraftBlockTypes2["ExposedCopperTrapdoor"] = "minecraft:exposed_copper_trapdoor";
  MinecraftBlockTypes2["ExposedCutCopper"] = "minecraft:exposed_cut_copper";
  MinecraftBlockTypes2["ExposedCutCopperSlab"] = "minecraft:exposed_cut_copper_slab";
  MinecraftBlockTypes2["ExposedCutCopperStairs"] = "minecraft:exposed_cut_copper_stairs";
  MinecraftBlockTypes2["ExposedDoubleCutCopperSlab"] = "minecraft:exposed_double_cut_copper_slab";
  MinecraftBlockTypes2["Farmland"] = "minecraft:farmland";
  MinecraftBlockTypes2["FenceGate"] = "minecraft:fence_gate";
  MinecraftBlockTypes2["Fern"] = "minecraft:fern";
  MinecraftBlockTypes2["Fire"] = "minecraft:fire";
  MinecraftBlockTypes2["FireCoral"] = "minecraft:fire_coral";
  MinecraftBlockTypes2["FireCoralBlock"] = "minecraft:fire_coral_block";
  MinecraftBlockTypes2["FireCoralFan"] = "minecraft:fire_coral_fan";
  MinecraftBlockTypes2["FireCoralWallFan"] = "minecraft:fire_coral_wall_fan";
  MinecraftBlockTypes2["FireflyBush"] = "minecraft:firefly_bush";
  MinecraftBlockTypes2["FletchingTable"] = "minecraft:fletching_table";
  MinecraftBlockTypes2["FlowerPot"] = "minecraft:flower_pot";
  MinecraftBlockTypes2["FloweringAzalea"] = "minecraft:flowering_azalea";
  MinecraftBlockTypes2["FlowingLava"] = "minecraft:flowing_lava";
  MinecraftBlockTypes2["FlowingWater"] = "minecraft:flowing_water";
  MinecraftBlockTypes2["Frame"] = "minecraft:frame";
  MinecraftBlockTypes2["FrogSpawn"] = "minecraft:frog_spawn";
  MinecraftBlockTypes2["FrostedIce"] = "minecraft:frosted_ice";
  MinecraftBlockTypes2["Furnace"] = "minecraft:furnace";
  MinecraftBlockTypes2["GildedBlackstone"] = "minecraft:gilded_blackstone";
  MinecraftBlockTypes2["Glass"] = "minecraft:glass";
  MinecraftBlockTypes2["GlassPane"] = "minecraft:glass_pane";
  MinecraftBlockTypes2["GlowFrame"] = "minecraft:glow_frame";
  MinecraftBlockTypes2["GlowLichen"] = "minecraft:glow_lichen";
  MinecraftBlockTypes2["Glowstone"] = "minecraft:glowstone";
  MinecraftBlockTypes2["GoldBlock"] = "minecraft:gold_block";
  MinecraftBlockTypes2["GoldOre"] = "minecraft:gold_ore";
  MinecraftBlockTypes2["GoldenRail"] = "minecraft:golden_rail";
  MinecraftBlockTypes2["Granite"] = "minecraft:granite";
  MinecraftBlockTypes2["GraniteDoubleSlab"] = "minecraft:granite_double_slab";
  MinecraftBlockTypes2["GraniteSlab"] = "minecraft:granite_slab";
  MinecraftBlockTypes2["GraniteStairs"] = "minecraft:granite_stairs";
  MinecraftBlockTypes2["GraniteWall"] = "minecraft:granite_wall";
  MinecraftBlockTypes2["GrassBlock"] = "minecraft:grass_block";
  MinecraftBlockTypes2["GrassPath"] = "minecraft:grass_path";
  MinecraftBlockTypes2["Gravel"] = "minecraft:gravel";
  MinecraftBlockTypes2["GrayCandle"] = "minecraft:gray_candle";
  MinecraftBlockTypes2["GrayCandleCake"] = "minecraft:gray_candle_cake";
  MinecraftBlockTypes2["GrayCarpet"] = "minecraft:gray_carpet";
  MinecraftBlockTypes2["GrayConcrete"] = "minecraft:gray_concrete";
  MinecraftBlockTypes2["GrayConcretePowder"] = "minecraft:gray_concrete_powder";
  MinecraftBlockTypes2["GrayGlazedTerracotta"] = "minecraft:gray_glazed_terracotta";
  MinecraftBlockTypes2["GrayShulkerBox"] = "minecraft:gray_shulker_box";
  MinecraftBlockTypes2["GrayStainedGlass"] = "minecraft:gray_stained_glass";
  MinecraftBlockTypes2["GrayStainedGlassPane"] = "minecraft:gray_stained_glass_pane";
  MinecraftBlockTypes2["GrayTerracotta"] = "minecraft:gray_terracotta";
  MinecraftBlockTypes2["GrayWool"] = "minecraft:gray_wool";
  MinecraftBlockTypes2["GreenCandle"] = "minecraft:green_candle";
  MinecraftBlockTypes2["GreenCandleCake"] = "minecraft:green_candle_cake";
  MinecraftBlockTypes2["GreenCarpet"] = "minecraft:green_carpet";
  MinecraftBlockTypes2["GreenConcrete"] = "minecraft:green_concrete";
  MinecraftBlockTypes2["GreenConcretePowder"] = "minecraft:green_concrete_powder";
  MinecraftBlockTypes2["GreenGlazedTerracotta"] = "minecraft:green_glazed_terracotta";
  MinecraftBlockTypes2["GreenShulkerBox"] = "minecraft:green_shulker_box";
  MinecraftBlockTypes2["GreenStainedGlass"] = "minecraft:green_stained_glass";
  MinecraftBlockTypes2["GreenStainedGlassPane"] = "minecraft:green_stained_glass_pane";
  MinecraftBlockTypes2["GreenTerracotta"] = "minecraft:green_terracotta";
  MinecraftBlockTypes2["GreenWool"] = "minecraft:green_wool";
  MinecraftBlockTypes2["Grindstone"] = "minecraft:grindstone";
  MinecraftBlockTypes2["HangingRoots"] = "minecraft:hanging_roots";
  MinecraftBlockTypes2["HardBlackStainedGlass"] = "minecraft:hard_black_stained_glass";
  MinecraftBlockTypes2["HardBlackStainedGlassPane"] = "minecraft:hard_black_stained_glass_pane";
  MinecraftBlockTypes2["HardBlueStainedGlass"] = "minecraft:hard_blue_stained_glass";
  MinecraftBlockTypes2["HardBlueStainedGlassPane"] = "minecraft:hard_blue_stained_glass_pane";
  MinecraftBlockTypes2["HardBrownStainedGlass"] = "minecraft:hard_brown_stained_glass";
  MinecraftBlockTypes2["HardBrownStainedGlassPane"] = "minecraft:hard_brown_stained_glass_pane";
  MinecraftBlockTypes2["HardCyanStainedGlass"] = "minecraft:hard_cyan_stained_glass";
  MinecraftBlockTypes2["HardCyanStainedGlassPane"] = "minecraft:hard_cyan_stained_glass_pane";
  MinecraftBlockTypes2["HardGlass"] = "minecraft:hard_glass";
  MinecraftBlockTypes2["HardGlassPane"] = "minecraft:hard_glass_pane";
  MinecraftBlockTypes2["HardGrayStainedGlass"] = "minecraft:hard_gray_stained_glass";
  MinecraftBlockTypes2["HardGrayStainedGlassPane"] = "minecraft:hard_gray_stained_glass_pane";
  MinecraftBlockTypes2["HardGreenStainedGlass"] = "minecraft:hard_green_stained_glass";
  MinecraftBlockTypes2["HardGreenStainedGlassPane"] = "minecraft:hard_green_stained_glass_pane";
  MinecraftBlockTypes2["HardLightBlueStainedGlass"] = "minecraft:hard_light_blue_stained_glass";
  MinecraftBlockTypes2["HardLightBlueStainedGlassPane"] = "minecraft:hard_light_blue_stained_glass_pane";
  MinecraftBlockTypes2["HardLightGrayStainedGlass"] = "minecraft:hard_light_gray_stained_glass";
  MinecraftBlockTypes2["HardLightGrayStainedGlassPane"] = "minecraft:hard_light_gray_stained_glass_pane";
  MinecraftBlockTypes2["HardLimeStainedGlass"] = "minecraft:hard_lime_stained_glass";
  MinecraftBlockTypes2["HardLimeStainedGlassPane"] = "minecraft:hard_lime_stained_glass_pane";
  MinecraftBlockTypes2["HardMagentaStainedGlass"] = "minecraft:hard_magenta_stained_glass";
  MinecraftBlockTypes2["HardMagentaStainedGlassPane"] = "minecraft:hard_magenta_stained_glass_pane";
  MinecraftBlockTypes2["HardOrangeStainedGlass"] = "minecraft:hard_orange_stained_glass";
  MinecraftBlockTypes2["HardOrangeStainedGlassPane"] = "minecraft:hard_orange_stained_glass_pane";
  MinecraftBlockTypes2["HardPinkStainedGlass"] = "minecraft:hard_pink_stained_glass";
  MinecraftBlockTypes2["HardPinkStainedGlassPane"] = "minecraft:hard_pink_stained_glass_pane";
  MinecraftBlockTypes2["HardPurpleStainedGlass"] = "minecraft:hard_purple_stained_glass";
  MinecraftBlockTypes2["HardPurpleStainedGlassPane"] = "minecraft:hard_purple_stained_glass_pane";
  MinecraftBlockTypes2["HardRedStainedGlass"] = "minecraft:hard_red_stained_glass";
  MinecraftBlockTypes2["HardRedStainedGlassPane"] = "minecraft:hard_red_stained_glass_pane";
  MinecraftBlockTypes2["HardWhiteStainedGlass"] = "minecraft:hard_white_stained_glass";
  MinecraftBlockTypes2["HardWhiteStainedGlassPane"] = "minecraft:hard_white_stained_glass_pane";
  MinecraftBlockTypes2["HardYellowStainedGlass"] = "minecraft:hard_yellow_stained_glass";
  MinecraftBlockTypes2["HardYellowStainedGlassPane"] = "minecraft:hard_yellow_stained_glass_pane";
  MinecraftBlockTypes2["HardenedClay"] = "minecraft:hardened_clay";
  MinecraftBlockTypes2["HayBlock"] = "minecraft:hay_block";
  MinecraftBlockTypes2["HeavyCore"] = "minecraft:heavy_core";
  MinecraftBlockTypes2["HeavyWeightedPressurePlate"] = "minecraft:heavy_weighted_pressure_plate";
  MinecraftBlockTypes2["HoneyBlock"] = "minecraft:honey_block";
  MinecraftBlockTypes2["HoneycombBlock"] = "minecraft:honeycomb_block";
  MinecraftBlockTypes2["Hopper"] = "minecraft:hopper";
  MinecraftBlockTypes2["HornCoral"] = "minecraft:horn_coral";
  MinecraftBlockTypes2["HornCoralBlock"] = "minecraft:horn_coral_block";
  MinecraftBlockTypes2["HornCoralFan"] = "minecraft:horn_coral_fan";
  MinecraftBlockTypes2["HornCoralWallFan"] = "minecraft:horn_coral_wall_fan";
  MinecraftBlockTypes2["Ice"] = "minecraft:ice";
  MinecraftBlockTypes2["InfestedChiseledStoneBricks"] = "minecraft:infested_chiseled_stone_bricks";
  MinecraftBlockTypes2["InfestedCobblestone"] = "minecraft:infested_cobblestone";
  MinecraftBlockTypes2["InfestedCrackedStoneBricks"] = "minecraft:infested_cracked_stone_bricks";
  MinecraftBlockTypes2["InfestedDeepslate"] = "minecraft:infested_deepslate";
  MinecraftBlockTypes2["InfestedMossyStoneBricks"] = "minecraft:infested_mossy_stone_bricks";
  MinecraftBlockTypes2["InfestedStone"] = "minecraft:infested_stone";
  MinecraftBlockTypes2["InfestedStoneBricks"] = "minecraft:infested_stone_bricks";
  MinecraftBlockTypes2["IronBars"] = "minecraft:iron_bars";
  MinecraftBlockTypes2["IronBlock"] = "minecraft:iron_block";
  MinecraftBlockTypes2["IronDoor"] = "minecraft:iron_door";
  MinecraftBlockTypes2["IronOre"] = "minecraft:iron_ore";
  MinecraftBlockTypes2["IronTrapdoor"] = "minecraft:iron_trapdoor";
  MinecraftBlockTypes2["Jigsaw"] = "minecraft:jigsaw";
  MinecraftBlockTypes2["Jukebox"] = "minecraft:jukebox";
  MinecraftBlockTypes2["JungleButton"] = "minecraft:jungle_button";
  MinecraftBlockTypes2["JungleDoor"] = "minecraft:jungle_door";
  MinecraftBlockTypes2["JungleDoubleSlab"] = "minecraft:jungle_double_slab";
  MinecraftBlockTypes2["JungleFence"] = "minecraft:jungle_fence";
  MinecraftBlockTypes2["JungleFenceGate"] = "minecraft:jungle_fence_gate";
  MinecraftBlockTypes2["JungleHangingSign"] = "minecraft:jungle_hanging_sign";
  MinecraftBlockTypes2["JungleLeaves"] = "minecraft:jungle_leaves";
  MinecraftBlockTypes2["JungleLog"] = "minecraft:jungle_log";
  MinecraftBlockTypes2["JunglePlanks"] = "minecraft:jungle_planks";
  MinecraftBlockTypes2["JunglePressurePlate"] = "minecraft:jungle_pressure_plate";
  MinecraftBlockTypes2["JungleSapling"] = "minecraft:jungle_sapling";
  MinecraftBlockTypes2["JungleSlab"] = "minecraft:jungle_slab";
  MinecraftBlockTypes2["JungleStairs"] = "minecraft:jungle_stairs";
  MinecraftBlockTypes2["JungleStandingSign"] = "minecraft:jungle_standing_sign";
  MinecraftBlockTypes2["JungleTrapdoor"] = "minecraft:jungle_trapdoor";
  MinecraftBlockTypes2["JungleWallSign"] = "minecraft:jungle_wall_sign";
  MinecraftBlockTypes2["JungleWood"] = "minecraft:jungle_wood";
  MinecraftBlockTypes2["Kelp"] = "minecraft:kelp";
  MinecraftBlockTypes2["LabTable"] = "minecraft:lab_table";
  MinecraftBlockTypes2["Ladder"] = "minecraft:ladder";
  MinecraftBlockTypes2["Lantern"] = "minecraft:lantern";
  MinecraftBlockTypes2["LapisBlock"] = "minecraft:lapis_block";
  MinecraftBlockTypes2["LapisOre"] = "minecraft:lapis_ore";
  MinecraftBlockTypes2["LargeAmethystBud"] = "minecraft:large_amethyst_bud";
  MinecraftBlockTypes2["LargeFern"] = "minecraft:large_fern";
  MinecraftBlockTypes2["Lava"] = "minecraft:lava";
  MinecraftBlockTypes2["LeafLitter"] = "minecraft:leaf_litter";
  MinecraftBlockTypes2["Lectern"] = "minecraft:lectern";
  MinecraftBlockTypes2["Lever"] = "minecraft:lever";
  MinecraftBlockTypes2["LightBlock0"] = "minecraft:light_block_0";
  MinecraftBlockTypes2["LightBlock1"] = "minecraft:light_block_1";
  MinecraftBlockTypes2["LightBlock10"] = "minecraft:light_block_10";
  MinecraftBlockTypes2["LightBlock11"] = "minecraft:light_block_11";
  MinecraftBlockTypes2["LightBlock12"] = "minecraft:light_block_12";
  MinecraftBlockTypes2["LightBlock13"] = "minecraft:light_block_13";
  MinecraftBlockTypes2["LightBlock14"] = "minecraft:light_block_14";
  MinecraftBlockTypes2["LightBlock15"] = "minecraft:light_block_15";
  MinecraftBlockTypes2["LightBlock2"] = "minecraft:light_block_2";
  MinecraftBlockTypes2["LightBlock3"] = "minecraft:light_block_3";
  MinecraftBlockTypes2["LightBlock4"] = "minecraft:light_block_4";
  MinecraftBlockTypes2["LightBlock5"] = "minecraft:light_block_5";
  MinecraftBlockTypes2["LightBlock6"] = "minecraft:light_block_6";
  MinecraftBlockTypes2["LightBlock7"] = "minecraft:light_block_7";
  MinecraftBlockTypes2["LightBlock8"] = "minecraft:light_block_8";
  MinecraftBlockTypes2["LightBlock9"] = "minecraft:light_block_9";
  MinecraftBlockTypes2["LightBlueCandle"] = "minecraft:light_blue_candle";
  MinecraftBlockTypes2["LightBlueCandleCake"] = "minecraft:light_blue_candle_cake";
  MinecraftBlockTypes2["LightBlueCarpet"] = "minecraft:light_blue_carpet";
  MinecraftBlockTypes2["LightBlueConcrete"] = "minecraft:light_blue_concrete";
  MinecraftBlockTypes2["LightBlueConcretePowder"] = "minecraft:light_blue_concrete_powder";
  MinecraftBlockTypes2["LightBlueGlazedTerracotta"] = "minecraft:light_blue_glazed_terracotta";
  MinecraftBlockTypes2["LightBlueShulkerBox"] = "minecraft:light_blue_shulker_box";
  MinecraftBlockTypes2["LightBlueStainedGlass"] = "minecraft:light_blue_stained_glass";
  MinecraftBlockTypes2["LightBlueStainedGlassPane"] = "minecraft:light_blue_stained_glass_pane";
  MinecraftBlockTypes2["LightBlueTerracotta"] = "minecraft:light_blue_terracotta";
  MinecraftBlockTypes2["LightBlueWool"] = "minecraft:light_blue_wool";
  MinecraftBlockTypes2["LightGrayCandle"] = "minecraft:light_gray_candle";
  MinecraftBlockTypes2["LightGrayCandleCake"] = "minecraft:light_gray_candle_cake";
  MinecraftBlockTypes2["LightGrayCarpet"] = "minecraft:light_gray_carpet";
  MinecraftBlockTypes2["LightGrayConcrete"] = "minecraft:light_gray_concrete";
  MinecraftBlockTypes2["LightGrayConcretePowder"] = "minecraft:light_gray_concrete_powder";
  MinecraftBlockTypes2["LightGrayShulkerBox"] = "minecraft:light_gray_shulker_box";
  MinecraftBlockTypes2["LightGrayStainedGlass"] = "minecraft:light_gray_stained_glass";
  MinecraftBlockTypes2["LightGrayStainedGlassPane"] = "minecraft:light_gray_stained_glass_pane";
  MinecraftBlockTypes2["LightGrayTerracotta"] = "minecraft:light_gray_terracotta";
  MinecraftBlockTypes2["LightGrayWool"] = "minecraft:light_gray_wool";
  MinecraftBlockTypes2["LightWeightedPressurePlate"] = "minecraft:light_weighted_pressure_plate";
  MinecraftBlockTypes2["LightningRod"] = "minecraft:lightning_rod";
  MinecraftBlockTypes2["Lilac"] = "minecraft:lilac";
  MinecraftBlockTypes2["LilyOfTheValley"] = "minecraft:lily_of_the_valley";
  MinecraftBlockTypes2["LimeCandle"] = "minecraft:lime_candle";
  MinecraftBlockTypes2["LimeCandleCake"] = "minecraft:lime_candle_cake";
  MinecraftBlockTypes2["LimeCarpet"] = "minecraft:lime_carpet";
  MinecraftBlockTypes2["LimeConcrete"] = "minecraft:lime_concrete";
  MinecraftBlockTypes2["LimeConcretePowder"] = "minecraft:lime_concrete_powder";
  MinecraftBlockTypes2["LimeGlazedTerracotta"] = "minecraft:lime_glazed_terracotta";
  MinecraftBlockTypes2["LimeShulkerBox"] = "minecraft:lime_shulker_box";
  MinecraftBlockTypes2["LimeStainedGlass"] = "minecraft:lime_stained_glass";
  MinecraftBlockTypes2["LimeStainedGlassPane"] = "minecraft:lime_stained_glass_pane";
  MinecraftBlockTypes2["LimeTerracotta"] = "minecraft:lime_terracotta";
  MinecraftBlockTypes2["LimeWool"] = "minecraft:lime_wool";
  MinecraftBlockTypes2["LitBlastFurnace"] = "minecraft:lit_blast_furnace";
  MinecraftBlockTypes2["LitDeepslateRedstoneOre"] = "minecraft:lit_deepslate_redstone_ore";
  MinecraftBlockTypes2["LitFurnace"] = "minecraft:lit_furnace";
  MinecraftBlockTypes2["LitPumpkin"] = "minecraft:lit_pumpkin";
  MinecraftBlockTypes2["LitRedstoneLamp"] = "minecraft:lit_redstone_lamp";
  MinecraftBlockTypes2["LitRedstoneOre"] = "minecraft:lit_redstone_ore";
  MinecraftBlockTypes2["LitSmoker"] = "minecraft:lit_smoker";
  MinecraftBlockTypes2["Lodestone"] = "minecraft:lodestone";
  MinecraftBlockTypes2["Loom"] = "minecraft:loom";
  MinecraftBlockTypes2["MagentaCandle"] = "minecraft:magenta_candle";
  MinecraftBlockTypes2["MagentaCandleCake"] = "minecraft:magenta_candle_cake";
  MinecraftBlockTypes2["MagentaCarpet"] = "minecraft:magenta_carpet";
  MinecraftBlockTypes2["MagentaConcrete"] = "minecraft:magenta_concrete";
  MinecraftBlockTypes2["MagentaConcretePowder"] = "minecraft:magenta_concrete_powder";
  MinecraftBlockTypes2["MagentaGlazedTerracotta"] = "minecraft:magenta_glazed_terracotta";
  MinecraftBlockTypes2["MagentaShulkerBox"] = "minecraft:magenta_shulker_box";
  MinecraftBlockTypes2["MagentaStainedGlass"] = "minecraft:magenta_stained_glass";
  MinecraftBlockTypes2["MagentaStainedGlassPane"] = "minecraft:magenta_stained_glass_pane";
  MinecraftBlockTypes2["MagentaTerracotta"] = "minecraft:magenta_terracotta";
  MinecraftBlockTypes2["MagentaWool"] = "minecraft:magenta_wool";
  MinecraftBlockTypes2["Magma"] = "minecraft:magma";
  MinecraftBlockTypes2["MangroveButton"] = "minecraft:mangrove_button";
  MinecraftBlockTypes2["MangroveDoor"] = "minecraft:mangrove_door";
  MinecraftBlockTypes2["MangroveDoubleSlab"] = "minecraft:mangrove_double_slab";
  MinecraftBlockTypes2["MangroveFence"] = "minecraft:mangrove_fence";
  MinecraftBlockTypes2["MangroveFenceGate"] = "minecraft:mangrove_fence_gate";
  MinecraftBlockTypes2["MangroveHangingSign"] = "minecraft:mangrove_hanging_sign";
  MinecraftBlockTypes2["MangroveLeaves"] = "minecraft:mangrove_leaves";
  MinecraftBlockTypes2["MangroveLog"] = "minecraft:mangrove_log";
  MinecraftBlockTypes2["MangrovePlanks"] = "minecraft:mangrove_planks";
  MinecraftBlockTypes2["MangrovePressurePlate"] = "minecraft:mangrove_pressure_plate";
  MinecraftBlockTypes2["MangrovePropagule"] = "minecraft:mangrove_propagule";
  MinecraftBlockTypes2["MangroveRoots"] = "minecraft:mangrove_roots";
  MinecraftBlockTypes2["MangroveSlab"] = "minecraft:mangrove_slab";
  MinecraftBlockTypes2["MangroveStairs"] = "minecraft:mangrove_stairs";
  MinecraftBlockTypes2["MangroveStandingSign"] = "minecraft:mangrove_standing_sign";
  MinecraftBlockTypes2["MangroveTrapdoor"] = "minecraft:mangrove_trapdoor";
  MinecraftBlockTypes2["MangroveWallSign"] = "minecraft:mangrove_wall_sign";
  MinecraftBlockTypes2["MangroveWood"] = "minecraft:mangrove_wood";
  MinecraftBlockTypes2["MaterialReducer"] = "minecraft:material_reducer";
  MinecraftBlockTypes2["MediumAmethystBud"] = "minecraft:medium_amethyst_bud";
  MinecraftBlockTypes2["MelonBlock"] = "minecraft:melon_block";
  MinecraftBlockTypes2["MelonStem"] = "minecraft:melon_stem";
  MinecraftBlockTypes2["MobSpawner"] = "minecraft:mob_spawner";
  MinecraftBlockTypes2["MossBlock"] = "minecraft:moss_block";
  MinecraftBlockTypes2["MossCarpet"] = "minecraft:moss_carpet";
  MinecraftBlockTypes2["MossyCobblestone"] = "minecraft:mossy_cobblestone";
  MinecraftBlockTypes2["MossyCobblestoneDoubleSlab"] = "minecraft:mossy_cobblestone_double_slab";
  MinecraftBlockTypes2["MossyCobblestoneSlab"] = "minecraft:mossy_cobblestone_slab";
  MinecraftBlockTypes2["MossyCobblestoneStairs"] = "minecraft:mossy_cobblestone_stairs";
  MinecraftBlockTypes2["MossyCobblestoneWall"] = "minecraft:mossy_cobblestone_wall";
  MinecraftBlockTypes2["MossyStoneBrickDoubleSlab"] = "minecraft:mossy_stone_brick_double_slab";
  MinecraftBlockTypes2["MossyStoneBrickSlab"] = "minecraft:mossy_stone_brick_slab";
  MinecraftBlockTypes2["MossyStoneBrickStairs"] = "minecraft:mossy_stone_brick_stairs";
  MinecraftBlockTypes2["MossyStoneBrickWall"] = "minecraft:mossy_stone_brick_wall";
  MinecraftBlockTypes2["MossyStoneBricks"] = "minecraft:mossy_stone_bricks";
  MinecraftBlockTypes2["Mud"] = "minecraft:mud";
  MinecraftBlockTypes2["MudBrickDoubleSlab"] = "minecraft:mud_brick_double_slab";
  MinecraftBlockTypes2["MudBrickSlab"] = "minecraft:mud_brick_slab";
  MinecraftBlockTypes2["MudBrickStairs"] = "minecraft:mud_brick_stairs";
  MinecraftBlockTypes2["MudBrickWall"] = "minecraft:mud_brick_wall";
  MinecraftBlockTypes2["MudBricks"] = "minecraft:mud_bricks";
  MinecraftBlockTypes2["MuddyMangroveRoots"] = "minecraft:muddy_mangrove_roots";
  MinecraftBlockTypes2["MushroomStem"] = "minecraft:mushroom_stem";
  MinecraftBlockTypes2["Mycelium"] = "minecraft:mycelium";
  MinecraftBlockTypes2["NetherBrick"] = "minecraft:nether_brick";
  MinecraftBlockTypes2["NetherBrickDoubleSlab"] = "minecraft:nether_brick_double_slab";
  MinecraftBlockTypes2["NetherBrickFence"] = "minecraft:nether_brick_fence";
  MinecraftBlockTypes2["NetherBrickSlab"] = "minecraft:nether_brick_slab";
  MinecraftBlockTypes2["NetherBrickStairs"] = "minecraft:nether_brick_stairs";
  MinecraftBlockTypes2["NetherBrickWall"] = "minecraft:nether_brick_wall";
  MinecraftBlockTypes2["NetherGoldOre"] = "minecraft:nether_gold_ore";
  MinecraftBlockTypes2["NetherSprouts"] = "minecraft:nether_sprouts";
  MinecraftBlockTypes2["NetherWart"] = "minecraft:nether_wart";
  MinecraftBlockTypes2["NetherWartBlock"] = "minecraft:nether_wart_block";
  MinecraftBlockTypes2["NetheriteBlock"] = "minecraft:netherite_block";
  MinecraftBlockTypes2["Netherrack"] = "minecraft:netherrack";
  MinecraftBlockTypes2["NormalStoneDoubleSlab"] = "minecraft:normal_stone_double_slab";
  MinecraftBlockTypes2["NormalStoneSlab"] = "minecraft:normal_stone_slab";
  MinecraftBlockTypes2["NormalStoneStairs"] = "minecraft:normal_stone_stairs";
  MinecraftBlockTypes2["Noteblock"] = "minecraft:noteblock";
  MinecraftBlockTypes2["OakDoubleSlab"] = "minecraft:oak_double_slab";
  MinecraftBlockTypes2["OakFence"] = "minecraft:oak_fence";
  MinecraftBlockTypes2["OakHangingSign"] = "minecraft:oak_hanging_sign";
  MinecraftBlockTypes2["OakLeaves"] = "minecraft:oak_leaves";
  MinecraftBlockTypes2["OakLog"] = "minecraft:oak_log";
  MinecraftBlockTypes2["OakPlanks"] = "minecraft:oak_planks";
  MinecraftBlockTypes2["OakSapling"] = "minecraft:oak_sapling";
  MinecraftBlockTypes2["OakSlab"] = "minecraft:oak_slab";
  MinecraftBlockTypes2["OakStairs"] = "minecraft:oak_stairs";
  MinecraftBlockTypes2["OakWood"] = "minecraft:oak_wood";
  MinecraftBlockTypes2["Observer"] = "minecraft:observer";
  MinecraftBlockTypes2["Obsidian"] = "minecraft:obsidian";
  MinecraftBlockTypes2["OchreFroglight"] = "minecraft:ochre_froglight";
  MinecraftBlockTypes2["OpenEyeblossom"] = "minecraft:open_eyeblossom";
  MinecraftBlockTypes2["OrangeCandle"] = "minecraft:orange_candle";
  MinecraftBlockTypes2["OrangeCandleCake"] = "minecraft:orange_candle_cake";
  MinecraftBlockTypes2["OrangeCarpet"] = "minecraft:orange_carpet";
  MinecraftBlockTypes2["OrangeConcrete"] = "minecraft:orange_concrete";
  MinecraftBlockTypes2["OrangeConcretePowder"] = "minecraft:orange_concrete_powder";
  MinecraftBlockTypes2["OrangeGlazedTerracotta"] = "minecraft:orange_glazed_terracotta";
  MinecraftBlockTypes2["OrangeShulkerBox"] = "minecraft:orange_shulker_box";
  MinecraftBlockTypes2["OrangeStainedGlass"] = "minecraft:orange_stained_glass";
  MinecraftBlockTypes2["OrangeStainedGlassPane"] = "minecraft:orange_stained_glass_pane";
  MinecraftBlockTypes2["OrangeTerracotta"] = "minecraft:orange_terracotta";
  MinecraftBlockTypes2["OrangeTulip"] = "minecraft:orange_tulip";
  MinecraftBlockTypes2["OrangeWool"] = "minecraft:orange_wool";
  MinecraftBlockTypes2["OxeyeDaisy"] = "minecraft:oxeye_daisy";
  MinecraftBlockTypes2["OxidizedChiseledCopper"] = "minecraft:oxidized_chiseled_copper";
  MinecraftBlockTypes2["OxidizedCopper"] = "minecraft:oxidized_copper";
  MinecraftBlockTypes2["OxidizedCopperBulb"] = "minecraft:oxidized_copper_bulb";
  MinecraftBlockTypes2["OxidizedCopperDoor"] = "minecraft:oxidized_copper_door";
  MinecraftBlockTypes2["OxidizedCopperGrate"] = "minecraft:oxidized_copper_grate";
  MinecraftBlockTypes2["OxidizedCopperTrapdoor"] = "minecraft:oxidized_copper_trapdoor";
  MinecraftBlockTypes2["OxidizedCutCopper"] = "minecraft:oxidized_cut_copper";
  MinecraftBlockTypes2["OxidizedCutCopperSlab"] = "minecraft:oxidized_cut_copper_slab";
  MinecraftBlockTypes2["OxidizedCutCopperStairs"] = "minecraft:oxidized_cut_copper_stairs";
  MinecraftBlockTypes2["OxidizedDoubleCutCopperSlab"] = "minecraft:oxidized_double_cut_copper_slab";
  MinecraftBlockTypes2["PackedIce"] = "minecraft:packed_ice";
  MinecraftBlockTypes2["PackedMud"] = "minecraft:packed_mud";
  MinecraftBlockTypes2["PaleHangingMoss"] = "minecraft:pale_hanging_moss";
  MinecraftBlockTypes2["PaleMossBlock"] = "minecraft:pale_moss_block";
  MinecraftBlockTypes2["PaleMossCarpet"] = "minecraft:pale_moss_carpet";
  MinecraftBlockTypes2["PaleOakButton"] = "minecraft:pale_oak_button";
  MinecraftBlockTypes2["PaleOakDoor"] = "minecraft:pale_oak_door";
  MinecraftBlockTypes2["PaleOakDoubleSlab"] = "minecraft:pale_oak_double_slab";
  MinecraftBlockTypes2["PaleOakFence"] = "minecraft:pale_oak_fence";
  MinecraftBlockTypes2["PaleOakFenceGate"] = "minecraft:pale_oak_fence_gate";
  MinecraftBlockTypes2["PaleOakHangingSign"] = "minecraft:pale_oak_hanging_sign";
  MinecraftBlockTypes2["PaleOakLeaves"] = "minecraft:pale_oak_leaves";
  MinecraftBlockTypes2["PaleOakLog"] = "minecraft:pale_oak_log";
  MinecraftBlockTypes2["PaleOakPlanks"] = "minecraft:pale_oak_planks";
  MinecraftBlockTypes2["PaleOakPressurePlate"] = "minecraft:pale_oak_pressure_plate";
  MinecraftBlockTypes2["PaleOakSapling"] = "minecraft:pale_oak_sapling";
  MinecraftBlockTypes2["PaleOakSlab"] = "minecraft:pale_oak_slab";
  MinecraftBlockTypes2["PaleOakStairs"] = "minecraft:pale_oak_stairs";
  MinecraftBlockTypes2["PaleOakStandingSign"] = "minecraft:pale_oak_standing_sign";
  MinecraftBlockTypes2["PaleOakTrapdoor"] = "minecraft:pale_oak_trapdoor";
  MinecraftBlockTypes2["PaleOakWallSign"] = "minecraft:pale_oak_wall_sign";
  MinecraftBlockTypes2["PaleOakWood"] = "minecraft:pale_oak_wood";
  MinecraftBlockTypes2["PearlescentFroglight"] = "minecraft:pearlescent_froglight";
  MinecraftBlockTypes2["Peony"] = "minecraft:peony";
  MinecraftBlockTypes2["PetrifiedOakDoubleSlab"] = "minecraft:petrified_oak_double_slab";
  MinecraftBlockTypes2["PetrifiedOakSlab"] = "minecraft:petrified_oak_slab";
  MinecraftBlockTypes2["PiglinHead"] = "minecraft:piglin_head";
  MinecraftBlockTypes2["PinkCandle"] = "minecraft:pink_candle";
  MinecraftBlockTypes2["PinkCandleCake"] = "minecraft:pink_candle_cake";
  MinecraftBlockTypes2["PinkCarpet"] = "minecraft:pink_carpet";
  MinecraftBlockTypes2["PinkConcrete"] = "minecraft:pink_concrete";
  MinecraftBlockTypes2["PinkConcretePowder"] = "minecraft:pink_concrete_powder";
  MinecraftBlockTypes2["PinkGlazedTerracotta"] = "minecraft:pink_glazed_terracotta";
  MinecraftBlockTypes2["PinkPetals"] = "minecraft:pink_petals";
  MinecraftBlockTypes2["PinkShulkerBox"] = "minecraft:pink_shulker_box";
  MinecraftBlockTypes2["PinkStainedGlass"] = "minecraft:pink_stained_glass";
  MinecraftBlockTypes2["PinkStainedGlassPane"] = "minecraft:pink_stained_glass_pane";
  MinecraftBlockTypes2["PinkTerracotta"] = "minecraft:pink_terracotta";
  MinecraftBlockTypes2["PinkTulip"] = "minecraft:pink_tulip";
  MinecraftBlockTypes2["PinkWool"] = "minecraft:pink_wool";
  MinecraftBlockTypes2["Piston"] = "minecraft:piston";
  MinecraftBlockTypes2["PistonArmCollision"] = "minecraft:piston_arm_collision";
  MinecraftBlockTypes2["PitcherCrop"] = "minecraft:pitcher_crop";
  MinecraftBlockTypes2["PitcherPlant"] = "minecraft:pitcher_plant";
  MinecraftBlockTypes2["PlayerHead"] = "minecraft:player_head";
  MinecraftBlockTypes2["Podzol"] = "minecraft:podzol";
  MinecraftBlockTypes2["PointedDripstone"] = "minecraft:pointed_dripstone";
  MinecraftBlockTypes2["PolishedAndesite"] = "minecraft:polished_andesite";
  MinecraftBlockTypes2["PolishedAndesiteDoubleSlab"] = "minecraft:polished_andesite_double_slab";
  MinecraftBlockTypes2["PolishedAndesiteSlab"] = "minecraft:polished_andesite_slab";
  MinecraftBlockTypes2["PolishedAndesiteStairs"] = "minecraft:polished_andesite_stairs";
  MinecraftBlockTypes2["PolishedBasalt"] = "minecraft:polished_basalt";
  MinecraftBlockTypes2["PolishedBlackstone"] = "minecraft:polished_blackstone";
  MinecraftBlockTypes2["PolishedBlackstoneBrickDoubleSlab"] = "minecraft:polished_blackstone_brick_double_slab";
  MinecraftBlockTypes2["PolishedBlackstoneBrickSlab"] = "minecraft:polished_blackstone_brick_slab";
  MinecraftBlockTypes2["PolishedBlackstoneBrickStairs"] = "minecraft:polished_blackstone_brick_stairs";
  MinecraftBlockTypes2["PolishedBlackstoneBrickWall"] = "minecraft:polished_blackstone_brick_wall";
  MinecraftBlockTypes2["PolishedBlackstoneBricks"] = "minecraft:polished_blackstone_bricks";
  MinecraftBlockTypes2["PolishedBlackstoneButton"] = "minecraft:polished_blackstone_button";
  MinecraftBlockTypes2["PolishedBlackstoneDoubleSlab"] = "minecraft:polished_blackstone_double_slab";
  MinecraftBlockTypes2["PolishedBlackstonePressurePlate"] = "minecraft:polished_blackstone_pressure_plate";
  MinecraftBlockTypes2["PolishedBlackstoneSlab"] = "minecraft:polished_blackstone_slab";
  MinecraftBlockTypes2["PolishedBlackstoneStairs"] = "minecraft:polished_blackstone_stairs";
  MinecraftBlockTypes2["PolishedBlackstoneWall"] = "minecraft:polished_blackstone_wall";
  MinecraftBlockTypes2["PolishedDeepslate"] = "minecraft:polished_deepslate";
  MinecraftBlockTypes2["PolishedDeepslateDoubleSlab"] = "minecraft:polished_deepslate_double_slab";
  MinecraftBlockTypes2["PolishedDeepslateSlab"] = "minecraft:polished_deepslate_slab";
  MinecraftBlockTypes2["PolishedDeepslateStairs"] = "minecraft:polished_deepslate_stairs";
  MinecraftBlockTypes2["PolishedDeepslateWall"] = "minecraft:polished_deepslate_wall";
  MinecraftBlockTypes2["PolishedDiorite"] = "minecraft:polished_diorite";
  MinecraftBlockTypes2["PolishedDioriteDoubleSlab"] = "minecraft:polished_diorite_double_slab";
  MinecraftBlockTypes2["PolishedDioriteSlab"] = "minecraft:polished_diorite_slab";
  MinecraftBlockTypes2["PolishedDioriteStairs"] = "minecraft:polished_diorite_stairs";
  MinecraftBlockTypes2["PolishedGranite"] = "minecraft:polished_granite";
  MinecraftBlockTypes2["PolishedGraniteDoubleSlab"] = "minecraft:polished_granite_double_slab";
  MinecraftBlockTypes2["PolishedGraniteSlab"] = "minecraft:polished_granite_slab";
  MinecraftBlockTypes2["PolishedGraniteStairs"] = "minecraft:polished_granite_stairs";
  MinecraftBlockTypes2["PolishedTuff"] = "minecraft:polished_tuff";
  MinecraftBlockTypes2["PolishedTuffDoubleSlab"] = "minecraft:polished_tuff_double_slab";
  MinecraftBlockTypes2["PolishedTuffSlab"] = "minecraft:polished_tuff_slab";
  MinecraftBlockTypes2["PolishedTuffStairs"] = "minecraft:polished_tuff_stairs";
  MinecraftBlockTypes2["PolishedTuffWall"] = "minecraft:polished_tuff_wall";
  MinecraftBlockTypes2["Poppy"] = "minecraft:poppy";
  MinecraftBlockTypes2["Portal"] = "minecraft:portal";
  MinecraftBlockTypes2["Potatoes"] = "minecraft:potatoes";
  MinecraftBlockTypes2["PowderSnow"] = "minecraft:powder_snow";
  MinecraftBlockTypes2["PoweredComparator"] = "minecraft:powered_comparator";
  MinecraftBlockTypes2["PoweredRepeater"] = "minecraft:powered_repeater";
  MinecraftBlockTypes2["Prismarine"] = "minecraft:prismarine";
  MinecraftBlockTypes2["PrismarineBrickDoubleSlab"] = "minecraft:prismarine_brick_double_slab";
  MinecraftBlockTypes2["PrismarineBrickSlab"] = "minecraft:prismarine_brick_slab";
  MinecraftBlockTypes2["PrismarineBricks"] = "minecraft:prismarine_bricks";
  MinecraftBlockTypes2["PrismarineBricksStairs"] = "minecraft:prismarine_bricks_stairs";
  MinecraftBlockTypes2["PrismarineDoubleSlab"] = "minecraft:prismarine_double_slab";
  MinecraftBlockTypes2["PrismarineSlab"] = "minecraft:prismarine_slab";
  MinecraftBlockTypes2["PrismarineStairs"] = "minecraft:prismarine_stairs";
  MinecraftBlockTypes2["PrismarineWall"] = "minecraft:prismarine_wall";
  MinecraftBlockTypes2["Pumpkin"] = "minecraft:pumpkin";
  MinecraftBlockTypes2["PumpkinStem"] = "minecraft:pumpkin_stem";
  MinecraftBlockTypes2["PurpleCandle"] = "minecraft:purple_candle";
  MinecraftBlockTypes2["PurpleCandleCake"] = "minecraft:purple_candle_cake";
  MinecraftBlockTypes2["PurpleCarpet"] = "minecraft:purple_carpet";
  MinecraftBlockTypes2["PurpleConcrete"] = "minecraft:purple_concrete";
  MinecraftBlockTypes2["PurpleConcretePowder"] = "minecraft:purple_concrete_powder";
  MinecraftBlockTypes2["PurpleGlazedTerracotta"] = "minecraft:purple_glazed_terracotta";
  MinecraftBlockTypes2["PurpleShulkerBox"] = "minecraft:purple_shulker_box";
  MinecraftBlockTypes2["PurpleStainedGlass"] = "minecraft:purple_stained_glass";
  MinecraftBlockTypes2["PurpleStainedGlassPane"] = "minecraft:purple_stained_glass_pane";
  MinecraftBlockTypes2["PurpleTerracotta"] = "minecraft:purple_terracotta";
  MinecraftBlockTypes2["PurpleWool"] = "minecraft:purple_wool";
  MinecraftBlockTypes2["PurpurBlock"] = "minecraft:purpur_block";
  MinecraftBlockTypes2["PurpurDoubleSlab"] = "minecraft:purpur_double_slab";
  MinecraftBlockTypes2["PurpurPillar"] = "minecraft:purpur_pillar";
  MinecraftBlockTypes2["PurpurSlab"] = "minecraft:purpur_slab";
  MinecraftBlockTypes2["PurpurStairs"] = "minecraft:purpur_stairs";
  MinecraftBlockTypes2["QuartzBlock"] = "minecraft:quartz_block";
  MinecraftBlockTypes2["QuartzBricks"] = "minecraft:quartz_bricks";
  MinecraftBlockTypes2["QuartzDoubleSlab"] = "minecraft:quartz_double_slab";
  MinecraftBlockTypes2["QuartzOre"] = "minecraft:quartz_ore";
  MinecraftBlockTypes2["QuartzPillar"] = "minecraft:quartz_pillar";
  MinecraftBlockTypes2["QuartzSlab"] = "minecraft:quartz_slab";
  MinecraftBlockTypes2["QuartzStairs"] = "minecraft:quartz_stairs";
  MinecraftBlockTypes2["Rail"] = "minecraft:rail";
  MinecraftBlockTypes2["RawCopperBlock"] = "minecraft:raw_copper_block";
  MinecraftBlockTypes2["RawGoldBlock"] = "minecraft:raw_gold_block";
  MinecraftBlockTypes2["RawIronBlock"] = "minecraft:raw_iron_block";
  MinecraftBlockTypes2["RedCandle"] = "minecraft:red_candle";
  MinecraftBlockTypes2["RedCandleCake"] = "minecraft:red_candle_cake";
  MinecraftBlockTypes2["RedCarpet"] = "minecraft:red_carpet";
  MinecraftBlockTypes2["RedConcrete"] = "minecraft:red_concrete";
  MinecraftBlockTypes2["RedConcretePowder"] = "minecraft:red_concrete_powder";
  MinecraftBlockTypes2["RedGlazedTerracotta"] = "minecraft:red_glazed_terracotta";
  MinecraftBlockTypes2["RedMushroom"] = "minecraft:red_mushroom";
  MinecraftBlockTypes2["RedMushroomBlock"] = "minecraft:red_mushroom_block";
  MinecraftBlockTypes2["RedNetherBrick"] = "minecraft:red_nether_brick";
  MinecraftBlockTypes2["RedNetherBrickDoubleSlab"] = "minecraft:red_nether_brick_double_slab";
  MinecraftBlockTypes2["RedNetherBrickSlab"] = "minecraft:red_nether_brick_slab";
  MinecraftBlockTypes2["RedNetherBrickStairs"] = "minecraft:red_nether_brick_stairs";
  MinecraftBlockTypes2["RedNetherBrickWall"] = "minecraft:red_nether_brick_wall";
  MinecraftBlockTypes2["RedSand"] = "minecraft:red_sand";
  MinecraftBlockTypes2["RedSandstone"] = "minecraft:red_sandstone";
  MinecraftBlockTypes2["RedSandstoneDoubleSlab"] = "minecraft:red_sandstone_double_slab";
  MinecraftBlockTypes2["RedSandstoneSlab"] = "minecraft:red_sandstone_slab";
  MinecraftBlockTypes2["RedSandstoneStairs"] = "minecraft:red_sandstone_stairs";
  MinecraftBlockTypes2["RedSandstoneWall"] = "minecraft:red_sandstone_wall";
  MinecraftBlockTypes2["RedShulkerBox"] = "minecraft:red_shulker_box";
  MinecraftBlockTypes2["RedStainedGlass"] = "minecraft:red_stained_glass";
  MinecraftBlockTypes2["RedStainedGlassPane"] = "minecraft:red_stained_glass_pane";
  MinecraftBlockTypes2["RedTerracotta"] = "minecraft:red_terracotta";
  MinecraftBlockTypes2["RedTulip"] = "minecraft:red_tulip";
  MinecraftBlockTypes2["RedWool"] = "minecraft:red_wool";
  MinecraftBlockTypes2["RedstoneBlock"] = "minecraft:redstone_block";
  MinecraftBlockTypes2["RedstoneLamp"] = "minecraft:redstone_lamp";
  MinecraftBlockTypes2["RedstoneOre"] = "minecraft:redstone_ore";
  MinecraftBlockTypes2["RedstoneTorch"] = "minecraft:redstone_torch";
  MinecraftBlockTypes2["RedstoneWire"] = "minecraft:redstone_wire";
  MinecraftBlockTypes2["Reeds"] = "minecraft:reeds";
  MinecraftBlockTypes2["ReinforcedDeepslate"] = "minecraft:reinforced_deepslate";
  MinecraftBlockTypes2["RepeatingCommandBlock"] = "minecraft:repeating_command_block";
  MinecraftBlockTypes2["ResinBlock"] = "minecraft:resin_block";
  MinecraftBlockTypes2["ResinBrickDoubleSlab"] = "minecraft:resin_brick_double_slab";
  MinecraftBlockTypes2["ResinBrickSlab"] = "minecraft:resin_brick_slab";
  MinecraftBlockTypes2["ResinBrickStairs"] = "minecraft:resin_brick_stairs";
  MinecraftBlockTypes2["ResinBrickWall"] = "minecraft:resin_brick_wall";
  MinecraftBlockTypes2["ResinBricks"] = "minecraft:resin_bricks";
  MinecraftBlockTypes2["ResinClump"] = "minecraft:resin_clump";
  MinecraftBlockTypes2["RespawnAnchor"] = "minecraft:respawn_anchor";
  MinecraftBlockTypes2["RoseBush"] = "minecraft:rose_bush";
  MinecraftBlockTypes2["Sand"] = "minecraft:sand";
  MinecraftBlockTypes2["Sandstone"] = "minecraft:sandstone";
  MinecraftBlockTypes2["SandstoneDoubleSlab"] = "minecraft:sandstone_double_slab";
  MinecraftBlockTypes2["SandstoneSlab"] = "minecraft:sandstone_slab";
  MinecraftBlockTypes2["SandstoneStairs"] = "minecraft:sandstone_stairs";
  MinecraftBlockTypes2["SandstoneWall"] = "minecraft:sandstone_wall";
  MinecraftBlockTypes2["Scaffolding"] = "minecraft:scaffolding";
  MinecraftBlockTypes2["Sculk"] = "minecraft:sculk";
  MinecraftBlockTypes2["SculkCatalyst"] = "minecraft:sculk_catalyst";
  MinecraftBlockTypes2["SculkSensor"] = "minecraft:sculk_sensor";
  MinecraftBlockTypes2["SculkShrieker"] = "minecraft:sculk_shrieker";
  MinecraftBlockTypes2["SculkVein"] = "minecraft:sculk_vein";
  MinecraftBlockTypes2["SeaLantern"] = "minecraft:sea_lantern";
  MinecraftBlockTypes2["SeaPickle"] = "minecraft:sea_pickle";
  MinecraftBlockTypes2["Seagrass"] = "minecraft:seagrass";
  MinecraftBlockTypes2["ShortDryGrass"] = "minecraft:short_dry_grass";
  MinecraftBlockTypes2["ShortGrass"] = "minecraft:short_grass";
  MinecraftBlockTypes2["Shroomlight"] = "minecraft:shroomlight";
  MinecraftBlockTypes2["SilverGlazedTerracotta"] = "minecraft:silver_glazed_terracotta";
  MinecraftBlockTypes2["SkeletonSkull"] = "minecraft:skeleton_skull";
  MinecraftBlockTypes2["Slime"] = "minecraft:slime";
  MinecraftBlockTypes2["SmallAmethystBud"] = "minecraft:small_amethyst_bud";
  MinecraftBlockTypes2["SmallDripleafBlock"] = "minecraft:small_dripleaf_block";
  MinecraftBlockTypes2["SmithingTable"] = "minecraft:smithing_table";
  MinecraftBlockTypes2["Smoker"] = "minecraft:smoker";
  MinecraftBlockTypes2["SmoothBasalt"] = "minecraft:smooth_basalt";
  MinecraftBlockTypes2["SmoothQuartz"] = "minecraft:smooth_quartz";
  MinecraftBlockTypes2["SmoothQuartzDoubleSlab"] = "minecraft:smooth_quartz_double_slab";
  MinecraftBlockTypes2["SmoothQuartzSlab"] = "minecraft:smooth_quartz_slab";
  MinecraftBlockTypes2["SmoothQuartzStairs"] = "minecraft:smooth_quartz_stairs";
  MinecraftBlockTypes2["SmoothRedSandstone"] = "minecraft:smooth_red_sandstone";
  MinecraftBlockTypes2["SmoothRedSandstoneDoubleSlab"] = "minecraft:smooth_red_sandstone_double_slab";
  MinecraftBlockTypes2["SmoothRedSandstoneSlab"] = "minecraft:smooth_red_sandstone_slab";
  MinecraftBlockTypes2["SmoothRedSandstoneStairs"] = "minecraft:smooth_red_sandstone_stairs";
  MinecraftBlockTypes2["SmoothSandstone"] = "minecraft:smooth_sandstone";
  MinecraftBlockTypes2["SmoothSandstoneDoubleSlab"] = "minecraft:smooth_sandstone_double_slab";
  MinecraftBlockTypes2["SmoothSandstoneSlab"] = "minecraft:smooth_sandstone_slab";
  MinecraftBlockTypes2["SmoothSandstoneStairs"] = "minecraft:smooth_sandstone_stairs";
  MinecraftBlockTypes2["SmoothStone"] = "minecraft:smooth_stone";
  MinecraftBlockTypes2["SmoothStoneDoubleSlab"] = "minecraft:smooth_stone_double_slab";
  MinecraftBlockTypes2["SmoothStoneSlab"] = "minecraft:smooth_stone_slab";
  MinecraftBlockTypes2["SnifferEgg"] = "minecraft:sniffer_egg";
  MinecraftBlockTypes2["Snow"] = "minecraft:snow";
  MinecraftBlockTypes2["SnowLayer"] = "minecraft:snow_layer";
  MinecraftBlockTypes2["SoulCampfire"] = "minecraft:soul_campfire";
  MinecraftBlockTypes2["SoulFire"] = "minecraft:soul_fire";
  MinecraftBlockTypes2["SoulLantern"] = "minecraft:soul_lantern";
  MinecraftBlockTypes2["SoulSand"] = "minecraft:soul_sand";
  MinecraftBlockTypes2["SoulSoil"] = "minecraft:soul_soil";
  MinecraftBlockTypes2["SoulTorch"] = "minecraft:soul_torch";
  MinecraftBlockTypes2["Sponge"] = "minecraft:sponge";
  MinecraftBlockTypes2["SporeBlossom"] = "minecraft:spore_blossom";
  MinecraftBlockTypes2["SpruceButton"] = "minecraft:spruce_button";
  MinecraftBlockTypes2["SpruceDoor"] = "minecraft:spruce_door";
  MinecraftBlockTypes2["SpruceDoubleSlab"] = "minecraft:spruce_double_slab";
  MinecraftBlockTypes2["SpruceFence"] = "minecraft:spruce_fence";
  MinecraftBlockTypes2["SpruceFenceGate"] = "minecraft:spruce_fence_gate";
  MinecraftBlockTypes2["SpruceHangingSign"] = "minecraft:spruce_hanging_sign";
  MinecraftBlockTypes2["SpruceLeaves"] = "minecraft:spruce_leaves";
  MinecraftBlockTypes2["SpruceLog"] = "minecraft:spruce_log";
  MinecraftBlockTypes2["SprucePlanks"] = "minecraft:spruce_planks";
  MinecraftBlockTypes2["SprucePressurePlate"] = "minecraft:spruce_pressure_plate";
  MinecraftBlockTypes2["SpruceSapling"] = "minecraft:spruce_sapling";
  MinecraftBlockTypes2["SpruceSlab"] = "minecraft:spruce_slab";
  MinecraftBlockTypes2["SpruceStairs"] = "minecraft:spruce_stairs";
  MinecraftBlockTypes2["SpruceStandingSign"] = "minecraft:spruce_standing_sign";
  MinecraftBlockTypes2["SpruceTrapdoor"] = "minecraft:spruce_trapdoor";
  MinecraftBlockTypes2["SpruceWallSign"] = "minecraft:spruce_wall_sign";
  MinecraftBlockTypes2["SpruceWood"] = "minecraft:spruce_wood";
  MinecraftBlockTypes2["StandingBanner"] = "minecraft:standing_banner";
  MinecraftBlockTypes2["StandingSign"] = "minecraft:standing_sign";
  MinecraftBlockTypes2["StickyPiston"] = "minecraft:sticky_piston";
  MinecraftBlockTypes2["StickyPistonArmCollision"] = "minecraft:sticky_piston_arm_collision";
  MinecraftBlockTypes2["Stone"] = "minecraft:stone";
  MinecraftBlockTypes2["StoneBrickDoubleSlab"] = "minecraft:stone_brick_double_slab";
  MinecraftBlockTypes2["StoneBrickSlab"] = "minecraft:stone_brick_slab";
  MinecraftBlockTypes2["StoneBrickStairs"] = "minecraft:stone_brick_stairs";
  MinecraftBlockTypes2["StoneBrickWall"] = "minecraft:stone_brick_wall";
  MinecraftBlockTypes2["StoneBricks"] = "minecraft:stone_bricks";
  MinecraftBlockTypes2["StoneButton"] = "minecraft:stone_button";
  MinecraftBlockTypes2["StonePressurePlate"] = "minecraft:stone_pressure_plate";
  MinecraftBlockTypes2["StoneStairs"] = "minecraft:stone_stairs";
  MinecraftBlockTypes2["StonecutterBlock"] = "minecraft:stonecutter_block";
  MinecraftBlockTypes2["StrippedAcaciaLog"] = "minecraft:stripped_acacia_log";
  MinecraftBlockTypes2["StrippedAcaciaWood"] = "minecraft:stripped_acacia_wood";
  MinecraftBlockTypes2["StrippedBambooBlock"] = "minecraft:stripped_bamboo_block";
  MinecraftBlockTypes2["StrippedBirchLog"] = "minecraft:stripped_birch_log";
  MinecraftBlockTypes2["StrippedBirchWood"] = "minecraft:stripped_birch_wood";
  MinecraftBlockTypes2["StrippedCherryLog"] = "minecraft:stripped_cherry_log";
  MinecraftBlockTypes2["StrippedCherryWood"] = "minecraft:stripped_cherry_wood";
  MinecraftBlockTypes2["StrippedCrimsonHyphae"] = "minecraft:stripped_crimson_hyphae";
  MinecraftBlockTypes2["StrippedCrimsonStem"] = "minecraft:stripped_crimson_stem";
  MinecraftBlockTypes2["StrippedDarkOakLog"] = "minecraft:stripped_dark_oak_log";
  MinecraftBlockTypes2["StrippedDarkOakWood"] = "minecraft:stripped_dark_oak_wood";
  MinecraftBlockTypes2["StrippedJungleLog"] = "minecraft:stripped_jungle_log";
  MinecraftBlockTypes2["StrippedJungleWood"] = "minecraft:stripped_jungle_wood";
  MinecraftBlockTypes2["StrippedMangroveLog"] = "minecraft:stripped_mangrove_log";
  MinecraftBlockTypes2["StrippedMangroveWood"] = "minecraft:stripped_mangrove_wood";
  MinecraftBlockTypes2["StrippedOakLog"] = "minecraft:stripped_oak_log";
  MinecraftBlockTypes2["StrippedOakWood"] = "minecraft:stripped_oak_wood";
  MinecraftBlockTypes2["StrippedPaleOakLog"] = "minecraft:stripped_pale_oak_log";
  MinecraftBlockTypes2["StrippedPaleOakWood"] = "minecraft:stripped_pale_oak_wood";
  MinecraftBlockTypes2["StrippedSpruceLog"] = "minecraft:stripped_spruce_log";
  MinecraftBlockTypes2["StrippedSpruceWood"] = "minecraft:stripped_spruce_wood";
  MinecraftBlockTypes2["StrippedWarpedHyphae"] = "minecraft:stripped_warped_hyphae";
  MinecraftBlockTypes2["StrippedWarpedStem"] = "minecraft:stripped_warped_stem";
  MinecraftBlockTypes2["StructureBlock"] = "minecraft:structure_block";
  MinecraftBlockTypes2["StructureVoid"] = "minecraft:structure_void";
  MinecraftBlockTypes2["Sunflower"] = "minecraft:sunflower";
  MinecraftBlockTypes2["SuspiciousGravel"] = "minecraft:suspicious_gravel";
  MinecraftBlockTypes2["SuspiciousSand"] = "minecraft:suspicious_sand";
  MinecraftBlockTypes2["SweetBerryBush"] = "minecraft:sweet_berry_bush";
  MinecraftBlockTypes2["TallDryGrass"] = "minecraft:tall_dry_grass";
  MinecraftBlockTypes2["TallGrass"] = "minecraft:tall_grass";
  MinecraftBlockTypes2["Target"] = "minecraft:target";
  MinecraftBlockTypes2["TintedGlass"] = "minecraft:tinted_glass";
  MinecraftBlockTypes2["Tnt"] = "minecraft:tnt";
  MinecraftBlockTypes2["Torch"] = "minecraft:torch";
  MinecraftBlockTypes2["Torchflower"] = "minecraft:torchflower";
  MinecraftBlockTypes2["TorchflowerCrop"] = "minecraft:torchflower_crop";
  MinecraftBlockTypes2["Trapdoor"] = "minecraft:trapdoor";
  MinecraftBlockTypes2["TrappedChest"] = "minecraft:trapped_chest";
  MinecraftBlockTypes2["TrialSpawner"] = "minecraft:trial_spawner";
  MinecraftBlockTypes2["TripWire"] = "minecraft:trip_wire";
  MinecraftBlockTypes2["TripwireHook"] = "minecraft:tripwire_hook";
  MinecraftBlockTypes2["TubeCoral"] = "minecraft:tube_coral";
  MinecraftBlockTypes2["TubeCoralBlock"] = "minecraft:tube_coral_block";
  MinecraftBlockTypes2["TubeCoralFan"] = "minecraft:tube_coral_fan";
  MinecraftBlockTypes2["TubeCoralWallFan"] = "minecraft:tube_coral_wall_fan";
  MinecraftBlockTypes2["Tuff"] = "minecraft:tuff";
  MinecraftBlockTypes2["TuffBrickDoubleSlab"] = "minecraft:tuff_brick_double_slab";
  MinecraftBlockTypes2["TuffBrickSlab"] = "minecraft:tuff_brick_slab";
  MinecraftBlockTypes2["TuffBrickStairs"] = "minecraft:tuff_brick_stairs";
  MinecraftBlockTypes2["TuffBrickWall"] = "minecraft:tuff_brick_wall";
  MinecraftBlockTypes2["TuffBricks"] = "minecraft:tuff_bricks";
  MinecraftBlockTypes2["TuffDoubleSlab"] = "minecraft:tuff_double_slab";
  MinecraftBlockTypes2["TuffSlab"] = "minecraft:tuff_slab";
  MinecraftBlockTypes2["TuffStairs"] = "minecraft:tuff_stairs";
  MinecraftBlockTypes2["TuffWall"] = "minecraft:tuff_wall";
  MinecraftBlockTypes2["TurtleEgg"] = "minecraft:turtle_egg";
  MinecraftBlockTypes2["TwistingVines"] = "minecraft:twisting_vines";
  MinecraftBlockTypes2["UnderwaterTnt"] = "minecraft:underwater_tnt";
  MinecraftBlockTypes2["UnderwaterTorch"] = "minecraft:underwater_torch";
  MinecraftBlockTypes2["UndyedShulkerBox"] = "minecraft:undyed_shulker_box";
  MinecraftBlockTypes2["Unknown"] = "minecraft:unknown";
  MinecraftBlockTypes2["UnlitRedstoneTorch"] = "minecraft:unlit_redstone_torch";
  MinecraftBlockTypes2["UnpoweredComparator"] = "minecraft:unpowered_comparator";
  MinecraftBlockTypes2["UnpoweredRepeater"] = "minecraft:unpowered_repeater";
  MinecraftBlockTypes2["Vault"] = "minecraft:vault";
  MinecraftBlockTypes2["VerdantFroglight"] = "minecraft:verdant_froglight";
  MinecraftBlockTypes2["Vine"] = "minecraft:vine";
  MinecraftBlockTypes2["WallBanner"] = "minecraft:wall_banner";
  MinecraftBlockTypes2["WallSign"] = "minecraft:wall_sign";
  MinecraftBlockTypes2["WarpedButton"] = "minecraft:warped_button";
  MinecraftBlockTypes2["WarpedDoor"] = "minecraft:warped_door";
  MinecraftBlockTypes2["WarpedDoubleSlab"] = "minecraft:warped_double_slab";
  MinecraftBlockTypes2["WarpedFence"] = "minecraft:warped_fence";
  MinecraftBlockTypes2["WarpedFenceGate"] = "minecraft:warped_fence_gate";
  MinecraftBlockTypes2["WarpedFungus"] = "minecraft:warped_fungus";
  MinecraftBlockTypes2["WarpedHangingSign"] = "minecraft:warped_hanging_sign";
  MinecraftBlockTypes2["WarpedHyphae"] = "minecraft:warped_hyphae";
  MinecraftBlockTypes2["WarpedNylium"] = "minecraft:warped_nylium";
  MinecraftBlockTypes2["WarpedPlanks"] = "minecraft:warped_planks";
  MinecraftBlockTypes2["WarpedPressurePlate"] = "minecraft:warped_pressure_plate";
  MinecraftBlockTypes2["WarpedRoots"] = "minecraft:warped_roots";
  MinecraftBlockTypes2["WarpedSlab"] = "minecraft:warped_slab";
  MinecraftBlockTypes2["WarpedStairs"] = "minecraft:warped_stairs";
  MinecraftBlockTypes2["WarpedStandingSign"] = "minecraft:warped_standing_sign";
  MinecraftBlockTypes2["WarpedStem"] = "minecraft:warped_stem";
  MinecraftBlockTypes2["WarpedTrapdoor"] = "minecraft:warped_trapdoor";
  MinecraftBlockTypes2["WarpedWallSign"] = "minecraft:warped_wall_sign";
  MinecraftBlockTypes2["WarpedWartBlock"] = "minecraft:warped_wart_block";
  MinecraftBlockTypes2["Water"] = "minecraft:water";
  MinecraftBlockTypes2["Waterlily"] = "minecraft:waterlily";
  MinecraftBlockTypes2["WaxedChiseledCopper"] = "minecraft:waxed_chiseled_copper";
  MinecraftBlockTypes2["WaxedCopper"] = "minecraft:waxed_copper";
  MinecraftBlockTypes2["WaxedCopperBulb"] = "minecraft:waxed_copper_bulb";
  MinecraftBlockTypes2["WaxedCopperDoor"] = "minecraft:waxed_copper_door";
  MinecraftBlockTypes2["WaxedCopperGrate"] = "minecraft:waxed_copper_grate";
  MinecraftBlockTypes2["WaxedCopperTrapdoor"] = "minecraft:waxed_copper_trapdoor";
  MinecraftBlockTypes2["WaxedCutCopper"] = "minecraft:waxed_cut_copper";
  MinecraftBlockTypes2["WaxedCutCopperSlab"] = "minecraft:waxed_cut_copper_slab";
  MinecraftBlockTypes2["WaxedCutCopperStairs"] = "minecraft:waxed_cut_copper_stairs";
  MinecraftBlockTypes2["WaxedDoubleCutCopperSlab"] = "minecraft:waxed_double_cut_copper_slab";
  MinecraftBlockTypes2["WaxedExposedChiseledCopper"] = "minecraft:waxed_exposed_chiseled_copper";
  MinecraftBlockTypes2["WaxedExposedCopper"] = "minecraft:waxed_exposed_copper";
  MinecraftBlockTypes2["WaxedExposedCopperBulb"] = "minecraft:waxed_exposed_copper_bulb";
  MinecraftBlockTypes2["WaxedExposedCopperDoor"] = "minecraft:waxed_exposed_copper_door";
  MinecraftBlockTypes2["WaxedExposedCopperGrate"] = "minecraft:waxed_exposed_copper_grate";
  MinecraftBlockTypes2["WaxedExposedCopperTrapdoor"] = "minecraft:waxed_exposed_copper_trapdoor";
  MinecraftBlockTypes2["WaxedExposedCutCopper"] = "minecraft:waxed_exposed_cut_copper";
  MinecraftBlockTypes2["WaxedExposedCutCopperSlab"] = "minecraft:waxed_exposed_cut_copper_slab";
  MinecraftBlockTypes2["WaxedExposedCutCopperStairs"] = "minecraft:waxed_exposed_cut_copper_stairs";
  MinecraftBlockTypes2["WaxedExposedDoubleCutCopperSlab"] = "minecraft:waxed_exposed_double_cut_copper_slab";
  MinecraftBlockTypes2["WaxedOxidizedChiseledCopper"] = "minecraft:waxed_oxidized_chiseled_copper";
  MinecraftBlockTypes2["WaxedOxidizedCopper"] = "minecraft:waxed_oxidized_copper";
  MinecraftBlockTypes2["WaxedOxidizedCopperBulb"] = "minecraft:waxed_oxidized_copper_bulb";
  MinecraftBlockTypes2["WaxedOxidizedCopperDoor"] = "minecraft:waxed_oxidized_copper_door";
  MinecraftBlockTypes2["WaxedOxidizedCopperGrate"] = "minecraft:waxed_oxidized_copper_grate";
  MinecraftBlockTypes2["WaxedOxidizedCopperTrapdoor"] = "minecraft:waxed_oxidized_copper_trapdoor";
  MinecraftBlockTypes2["WaxedOxidizedCutCopper"] = "minecraft:waxed_oxidized_cut_copper";
  MinecraftBlockTypes2["WaxedOxidizedCutCopperSlab"] = "minecraft:waxed_oxidized_cut_copper_slab";
  MinecraftBlockTypes2["WaxedOxidizedCutCopperStairs"] = "minecraft:waxed_oxidized_cut_copper_stairs";
  MinecraftBlockTypes2["WaxedOxidizedDoubleCutCopperSlab"] = "minecraft:waxed_oxidized_double_cut_copper_slab";
  MinecraftBlockTypes2["WaxedWeatheredChiseledCopper"] = "minecraft:waxed_weathered_chiseled_copper";
  MinecraftBlockTypes2["WaxedWeatheredCopper"] = "minecraft:waxed_weathered_copper";
  MinecraftBlockTypes2["WaxedWeatheredCopperBulb"] = "minecraft:waxed_weathered_copper_bulb";
  MinecraftBlockTypes2["WaxedWeatheredCopperDoor"] = "minecraft:waxed_weathered_copper_door";
  MinecraftBlockTypes2["WaxedWeatheredCopperGrate"] = "minecraft:waxed_weathered_copper_grate";
  MinecraftBlockTypes2["WaxedWeatheredCopperTrapdoor"] = "minecraft:waxed_weathered_copper_trapdoor";
  MinecraftBlockTypes2["WaxedWeatheredCutCopper"] = "minecraft:waxed_weathered_cut_copper";
  MinecraftBlockTypes2["WaxedWeatheredCutCopperSlab"] = "minecraft:waxed_weathered_cut_copper_slab";
  MinecraftBlockTypes2["WaxedWeatheredCutCopperStairs"] = "minecraft:waxed_weathered_cut_copper_stairs";
  MinecraftBlockTypes2["WaxedWeatheredDoubleCutCopperSlab"] = "minecraft:waxed_weathered_double_cut_copper_slab";
  MinecraftBlockTypes2["WeatheredChiseledCopper"] = "minecraft:weathered_chiseled_copper";
  MinecraftBlockTypes2["WeatheredCopper"] = "minecraft:weathered_copper";
  MinecraftBlockTypes2["WeatheredCopperBulb"] = "minecraft:weathered_copper_bulb";
  MinecraftBlockTypes2["WeatheredCopperDoor"] = "minecraft:weathered_copper_door";
  MinecraftBlockTypes2["WeatheredCopperGrate"] = "minecraft:weathered_copper_grate";
  MinecraftBlockTypes2["WeatheredCopperTrapdoor"] = "minecraft:weathered_copper_trapdoor";
  MinecraftBlockTypes2["WeatheredCutCopper"] = "minecraft:weathered_cut_copper";
  MinecraftBlockTypes2["WeatheredCutCopperSlab"] = "minecraft:weathered_cut_copper_slab";
  MinecraftBlockTypes2["WeatheredCutCopperStairs"] = "minecraft:weathered_cut_copper_stairs";
  MinecraftBlockTypes2["WeatheredDoubleCutCopperSlab"] = "minecraft:weathered_double_cut_copper_slab";
  MinecraftBlockTypes2["Web"] = "minecraft:web";
  MinecraftBlockTypes2["WeepingVines"] = "minecraft:weeping_vines";
  MinecraftBlockTypes2["WetSponge"] = "minecraft:wet_sponge";
  MinecraftBlockTypes2["Wheat"] = "minecraft:wheat";
  MinecraftBlockTypes2["WhiteCandle"] = "minecraft:white_candle";
  MinecraftBlockTypes2["WhiteCandleCake"] = "minecraft:white_candle_cake";
  MinecraftBlockTypes2["WhiteCarpet"] = "minecraft:white_carpet";
  MinecraftBlockTypes2["WhiteConcrete"] = "minecraft:white_concrete";
  MinecraftBlockTypes2["WhiteConcretePowder"] = "minecraft:white_concrete_powder";
  MinecraftBlockTypes2["WhiteGlazedTerracotta"] = "minecraft:white_glazed_terracotta";
  MinecraftBlockTypes2["WhiteShulkerBox"] = "minecraft:white_shulker_box";
  MinecraftBlockTypes2["WhiteStainedGlass"] = "minecraft:white_stained_glass";
  MinecraftBlockTypes2["WhiteStainedGlassPane"] = "minecraft:white_stained_glass_pane";
  MinecraftBlockTypes2["WhiteTerracotta"] = "minecraft:white_terracotta";
  MinecraftBlockTypes2["WhiteTulip"] = "minecraft:white_tulip";
  MinecraftBlockTypes2["WhiteWool"] = "minecraft:white_wool";
  MinecraftBlockTypes2["Wildflowers"] = "minecraft:wildflowers";
  MinecraftBlockTypes2["WitherRose"] = "minecraft:wither_rose";
  MinecraftBlockTypes2["WitherSkeletonSkull"] = "minecraft:wither_skeleton_skull";
  MinecraftBlockTypes2["WoodenButton"] = "minecraft:wooden_button";
  MinecraftBlockTypes2["WoodenDoor"] = "minecraft:wooden_door";
  MinecraftBlockTypes2["WoodenPressurePlate"] = "minecraft:wooden_pressure_plate";
  MinecraftBlockTypes2["YellowCandle"] = "minecraft:yellow_candle";
  MinecraftBlockTypes2["YellowCandleCake"] = "minecraft:yellow_candle_cake";
  MinecraftBlockTypes2["YellowCarpet"] = "minecraft:yellow_carpet";
  MinecraftBlockTypes2["YellowConcrete"] = "minecraft:yellow_concrete";
  MinecraftBlockTypes2["YellowConcretePowder"] = "minecraft:yellow_concrete_powder";
  MinecraftBlockTypes2["YellowGlazedTerracotta"] = "minecraft:yellow_glazed_terracotta";
  MinecraftBlockTypes2["YellowShulkerBox"] = "minecraft:yellow_shulker_box";
  MinecraftBlockTypes2["YellowStainedGlass"] = "minecraft:yellow_stained_glass";
  MinecraftBlockTypes2["YellowStainedGlassPane"] = "minecraft:yellow_stained_glass_pane";
  MinecraftBlockTypes2["YellowTerracotta"] = "minecraft:yellow_terracotta";
  MinecraftBlockTypes2["YellowWool"] = "minecraft:yellow_wool";
  MinecraftBlockTypes2["ZombieHead"] = "minecraft:zombie_head";
  return MinecraftBlockTypes2;
})(MinecraftBlockTypes || {});
var MinecraftCameraPresetsTypes = ((MinecraftCameraPresetsTypes2) => {
  MinecraftCameraPresetsTypes2["ControlSchemeCamera"] = "minecraft:control_scheme_camera";
  MinecraftCameraPresetsTypes2["FirstPerson"] = "minecraft:first_person";
  MinecraftCameraPresetsTypes2["FixedBoom"] = "minecraft:fixed_boom";
  MinecraftCameraPresetsTypes2["FollowOrbit"] = "minecraft:follow_orbit";
  MinecraftCameraPresetsTypes2["Free"] = "minecraft:free";
  MinecraftCameraPresetsTypes2["ThirdPerson"] = "minecraft:third_person";
  MinecraftCameraPresetsTypes2["ThirdPersonFront"] = "minecraft:third_person_front";
  return MinecraftCameraPresetsTypes2;
})(MinecraftCameraPresetsTypes || {});
var MinecraftCooldownCategoryTypes = ((MinecraftCooldownCategoryTypes2) => {
  MinecraftCooldownCategoryTypes2["Chorusfruit"] = "minecraft:chorusfruit";
  MinecraftCooldownCategoryTypes2["EnderPearl"] = "minecraft:ender_pearl";
  MinecraftCooldownCategoryTypes2["GoatHorn"] = "minecraft:goat_horn";
  MinecraftCooldownCategoryTypes2["Shield"] = "minecraft:shield";
  MinecraftCooldownCategoryTypes2["WindCharge"] = "minecraft:wind_charge";
  return MinecraftCooldownCategoryTypes2;
})(MinecraftCooldownCategoryTypes || {});
var MinecraftDimensionTypes = ((MinecraftDimensionTypes2) => {
  MinecraftDimensionTypes2["Nether"] = "minecraft:nether";
  MinecraftDimensionTypes2["Overworld"] = "minecraft:overworld";
  MinecraftDimensionTypes2["TheEnd"] = "minecraft:the_end";
  return MinecraftDimensionTypes2;
})(MinecraftDimensionTypes || {});
var MinecraftEffectTypes = ((MinecraftEffectTypes2) => {
  MinecraftEffectTypes2["Absorption"] = "minecraft:absorption";
  MinecraftEffectTypes2["BadOmen"] = "minecraft:bad_omen";
  MinecraftEffectTypes2["Blindness"] = "minecraft:blindness";
  MinecraftEffectTypes2["ConduitPower"] = "minecraft:conduit_power";
  MinecraftEffectTypes2["Darkness"] = "minecraft:darkness";
  MinecraftEffectTypes2["FatalPoison"] = "minecraft:fatal_poison";
  MinecraftEffectTypes2["FireResistance"] = "minecraft:fire_resistance";
  MinecraftEffectTypes2["Haste"] = "minecraft:haste";
  MinecraftEffectTypes2["HealthBoost"] = "minecraft:health_boost";
  MinecraftEffectTypes2["Hunger"] = "minecraft:hunger";
  MinecraftEffectTypes2["Infested"] = "minecraft:infested";
  MinecraftEffectTypes2["InstantDamage"] = "minecraft:instant_damage";
  MinecraftEffectTypes2["InstantHealth"] = "minecraft:instant_health";
  MinecraftEffectTypes2["Invisibility"] = "minecraft:invisibility";
  MinecraftEffectTypes2["JumpBoost"] = "minecraft:jump_boost";
  MinecraftEffectTypes2["Levitation"] = "minecraft:levitation";
  MinecraftEffectTypes2["MiningFatigue"] = "minecraft:mining_fatigue";
  MinecraftEffectTypes2["Nausea"] = "minecraft:nausea";
  MinecraftEffectTypes2["NightVision"] = "minecraft:night_vision";
  MinecraftEffectTypes2["Oozing"] = "minecraft:oozing";
  MinecraftEffectTypes2["Poison"] = "minecraft:poison";
  MinecraftEffectTypes2["RaidOmen"] = "minecraft:raid_omen";
  MinecraftEffectTypes2["Regeneration"] = "minecraft:regeneration";
  MinecraftEffectTypes2["Resistance"] = "minecraft:resistance";
  MinecraftEffectTypes2["Saturation"] = "minecraft:saturation";
  MinecraftEffectTypes2["SlowFalling"] = "minecraft:slow_falling";
  MinecraftEffectTypes2["Slowness"] = "minecraft:slowness";
  MinecraftEffectTypes2["Speed"] = "minecraft:speed";
  MinecraftEffectTypes2["Strength"] = "minecraft:strength";
  MinecraftEffectTypes2["TrialOmen"] = "minecraft:trial_omen";
  MinecraftEffectTypes2["VillageHero"] = "minecraft:village_hero";
  MinecraftEffectTypes2["WaterBreathing"] = "minecraft:water_breathing";
  MinecraftEffectTypes2["Weakness"] = "minecraft:weakness";
  MinecraftEffectTypes2["Weaving"] = "minecraft:weaving";
  MinecraftEffectTypes2["WindCharged"] = "minecraft:wind_charged";
  MinecraftEffectTypes2["Wither"] = "minecraft:wither";
  return MinecraftEffectTypes2;
})(MinecraftEffectTypes || {});
var MinecraftEnchantmentTypes = ((MinecraftEnchantmentTypes2) => {
  MinecraftEnchantmentTypes2["AquaAffinity"] = "minecraft:aqua_affinity";
  MinecraftEnchantmentTypes2["BaneOfArthropods"] = "minecraft:bane_of_arthropods";
  MinecraftEnchantmentTypes2["Binding"] = "minecraft:binding";
  MinecraftEnchantmentTypes2["BlastProtection"] = "minecraft:blast_protection";
  MinecraftEnchantmentTypes2["BowInfinity"] = "minecraft:infinity";
  MinecraftEnchantmentTypes2["Breach"] = "minecraft:breach";
  MinecraftEnchantmentTypes2["Channeling"] = "minecraft:channeling";
  MinecraftEnchantmentTypes2["Density"] = "minecraft:density";
  MinecraftEnchantmentTypes2["DepthStrider"] = "minecraft:depth_strider";
  MinecraftEnchantmentTypes2["Efficiency"] = "minecraft:efficiency";
  MinecraftEnchantmentTypes2["FeatherFalling"] = "minecraft:feather_falling";
  MinecraftEnchantmentTypes2["FireAspect"] = "minecraft:fire_aspect";
  MinecraftEnchantmentTypes2["FireProtection"] = "minecraft:fire_protection";
  MinecraftEnchantmentTypes2["Flame"] = "minecraft:flame";
  MinecraftEnchantmentTypes2["Fortune"] = "minecraft:fortune";
  MinecraftEnchantmentTypes2["FrostWalker"] = "minecraft:frost_walker";
  MinecraftEnchantmentTypes2["Impaling"] = "minecraft:impaling";
  MinecraftEnchantmentTypes2["Knockback"] = "minecraft:knockback";
  MinecraftEnchantmentTypes2["Looting"] = "minecraft:looting";
  MinecraftEnchantmentTypes2["Loyalty"] = "minecraft:loyalty";
  MinecraftEnchantmentTypes2["LuckOfTheSea"] = "minecraft:luck_of_the_sea";
  MinecraftEnchantmentTypes2["Lure"] = "minecraft:lure";
  MinecraftEnchantmentTypes2["Mending"] = "minecraft:mending";
  MinecraftEnchantmentTypes2["Multishot"] = "minecraft:multishot";
  MinecraftEnchantmentTypes2["Piercing"] = "minecraft:piercing";
  MinecraftEnchantmentTypes2["Power"] = "minecraft:power";
  MinecraftEnchantmentTypes2["ProjectileProtection"] = "minecraft:projectile_protection";
  MinecraftEnchantmentTypes2["Protection"] = "minecraft:protection";
  MinecraftEnchantmentTypes2["Punch"] = "minecraft:punch";
  MinecraftEnchantmentTypes2["QuickCharge"] = "minecraft:quick_charge";
  MinecraftEnchantmentTypes2["Respiration"] = "minecraft:respiration";
  MinecraftEnchantmentTypes2["Riptide"] = "minecraft:riptide";
  MinecraftEnchantmentTypes2["Sharpness"] = "minecraft:sharpness";
  MinecraftEnchantmentTypes2["SilkTouch"] = "minecraft:silk_touch";
  MinecraftEnchantmentTypes2["Smite"] = "minecraft:smite";
  MinecraftEnchantmentTypes2["SoulSpeed"] = "minecraft:soul_speed";
  MinecraftEnchantmentTypes2["SwiftSneak"] = "minecraft:swift_sneak";
  MinecraftEnchantmentTypes2["Thorns"] = "minecraft:thorns";
  MinecraftEnchantmentTypes2["Unbreaking"] = "minecraft:unbreaking";
  MinecraftEnchantmentTypes2["Vanishing"] = "minecraft:vanishing";
  MinecraftEnchantmentTypes2["WindBurst"] = "minecraft:wind_burst";
  return MinecraftEnchantmentTypes2;
})(MinecraftEnchantmentTypes || {});
var MinecraftEntityTypes = ((MinecraftEntityTypes2) => {
  MinecraftEntityTypes2["Agent"] = "minecraft:agent";
  MinecraftEntityTypes2["Allay"] = "minecraft:allay";
  MinecraftEntityTypes2["AreaEffectCloud"] = "minecraft:area_effect_cloud";
  MinecraftEntityTypes2["Armadillo"] = "minecraft:armadillo";
  MinecraftEntityTypes2["ArmorStand"] = "minecraft:armor_stand";
  MinecraftEntityTypes2["Arrow"] = "minecraft:arrow";
  MinecraftEntityTypes2["Axolotl"] = "minecraft:axolotl";
  MinecraftEntityTypes2["Bat"] = "minecraft:bat";
  MinecraftEntityTypes2["Bee"] = "minecraft:bee";
  MinecraftEntityTypes2["Blaze"] = "minecraft:blaze";
  MinecraftEntityTypes2["Boat"] = "minecraft:boat";
  MinecraftEntityTypes2["Bogged"] = "minecraft:bogged";
  MinecraftEntityTypes2["Breeze"] = "minecraft:breeze";
  MinecraftEntityTypes2["BreezeWindChargeProjectile"] = "minecraft:breeze_wind_charge_projectile";
  MinecraftEntityTypes2["Camel"] = "minecraft:camel";
  MinecraftEntityTypes2["Cat"] = "minecraft:cat";
  MinecraftEntityTypes2["CaveSpider"] = "minecraft:cave_spider";
  MinecraftEntityTypes2["ChestBoat"] = "minecraft:chest_boat";
  MinecraftEntityTypes2["ChestMinecart"] = "minecraft:chest_minecart";
  MinecraftEntityTypes2["Chicken"] = "minecraft:chicken";
  MinecraftEntityTypes2["Cod"] = "minecraft:cod";
  MinecraftEntityTypes2["CommandBlockMinecart"] = "minecraft:command_block_minecart";
  MinecraftEntityTypes2["Cow"] = "minecraft:cow";
  MinecraftEntityTypes2["Creaking"] = "minecraft:creaking";
  MinecraftEntityTypes2["Creeper"] = "minecraft:creeper";
  MinecraftEntityTypes2["Dolphin"] = "minecraft:dolphin";
  MinecraftEntityTypes2["Donkey"] = "minecraft:donkey";
  MinecraftEntityTypes2["DragonFireball"] = "minecraft:dragon_fireball";
  MinecraftEntityTypes2["Drowned"] = "minecraft:drowned";
  MinecraftEntityTypes2["Egg"] = "minecraft:egg";
  MinecraftEntityTypes2["ElderGuardian"] = "minecraft:elder_guardian";
  MinecraftEntityTypes2["EnderCrystal"] = "minecraft:ender_crystal";
  MinecraftEntityTypes2["EnderDragon"] = "minecraft:ender_dragon";
  MinecraftEntityTypes2["EnderPearl"] = "minecraft:ender_pearl";
  MinecraftEntityTypes2["Enderman"] = "minecraft:enderman";
  MinecraftEntityTypes2["Endermite"] = "minecraft:endermite";
  MinecraftEntityTypes2["EvocationIllager"] = "minecraft:evocation_illager";
  MinecraftEntityTypes2["EyeOfEnderSignal"] = "minecraft:eye_of_ender_signal";
  MinecraftEntityTypes2["Fireball"] = "minecraft:fireball";
  MinecraftEntityTypes2["FireworksRocket"] = "minecraft:fireworks_rocket";
  MinecraftEntityTypes2["FishingHook"] = "minecraft:fishing_hook";
  MinecraftEntityTypes2["Fox"] = "minecraft:fox";
  MinecraftEntityTypes2["Frog"] = "minecraft:frog";
  MinecraftEntityTypes2["Ghast"] = "minecraft:ghast";
  MinecraftEntityTypes2["GlowSquid"] = "minecraft:glow_squid";
  MinecraftEntityTypes2["Goat"] = "minecraft:goat";
  MinecraftEntityTypes2["Guardian"] = "minecraft:guardian";
  MinecraftEntityTypes2["HappyGhast"] = "minecraft:happy_ghast";
  MinecraftEntityTypes2["Hoglin"] = "minecraft:hoglin";
  MinecraftEntityTypes2["HopperMinecart"] = "minecraft:hopper_minecart";
  MinecraftEntityTypes2["Horse"] = "minecraft:horse";
  MinecraftEntityTypes2["Husk"] = "minecraft:husk";
  MinecraftEntityTypes2["IronGolem"] = "minecraft:iron_golem";
  MinecraftEntityTypes2["LightningBolt"] = "minecraft:lightning_bolt";
  MinecraftEntityTypes2["LingeringPotion"] = "minecraft:lingering_potion";
  MinecraftEntityTypes2["Llama"] = "minecraft:llama";
  MinecraftEntityTypes2["LlamaSpit"] = "minecraft:llama_spit";
  MinecraftEntityTypes2["MagmaCube"] = "minecraft:magma_cube";
  MinecraftEntityTypes2["Minecart"] = "minecraft:minecart";
  MinecraftEntityTypes2["Mooshroom"] = "minecraft:mooshroom";
  MinecraftEntityTypes2["Mule"] = "minecraft:mule";
  MinecraftEntityTypes2["Npc"] = "minecraft:npc";
  MinecraftEntityTypes2["Ocelot"] = "minecraft:ocelot";
  MinecraftEntityTypes2["OminousItemSpawner"] = "minecraft:ominous_item_spawner";
  MinecraftEntityTypes2["Panda"] = "minecraft:panda";
  MinecraftEntityTypes2["Parrot"] = "minecraft:parrot";
  MinecraftEntityTypes2["Phantom"] = "minecraft:phantom";
  MinecraftEntityTypes2["Pig"] = "minecraft:pig";
  MinecraftEntityTypes2["Piglin"] = "minecraft:piglin";
  MinecraftEntityTypes2["PiglinBrute"] = "minecraft:piglin_brute";
  MinecraftEntityTypes2["Pillager"] = "minecraft:pillager";
  MinecraftEntityTypes2["Player"] = "minecraft:player";
  MinecraftEntityTypes2["PolarBear"] = "minecraft:polar_bear";
  MinecraftEntityTypes2["Pufferfish"] = "minecraft:pufferfish";
  MinecraftEntityTypes2["Rabbit"] = "minecraft:rabbit";
  MinecraftEntityTypes2["Ravager"] = "minecraft:ravager";
  MinecraftEntityTypes2["Salmon"] = "minecraft:salmon";
  MinecraftEntityTypes2["Sheep"] = "minecraft:sheep";
  MinecraftEntityTypes2["Shulker"] = "minecraft:shulker";
  MinecraftEntityTypes2["ShulkerBullet"] = "minecraft:shulker_bullet";
  MinecraftEntityTypes2["Silverfish"] = "minecraft:silverfish";
  MinecraftEntityTypes2["Skeleton"] = "minecraft:skeleton";
  MinecraftEntityTypes2["SkeletonHorse"] = "minecraft:skeleton_horse";
  MinecraftEntityTypes2["Slime"] = "minecraft:slime";
  MinecraftEntityTypes2["SmallFireball"] = "minecraft:small_fireball";
  MinecraftEntityTypes2["Sniffer"] = "minecraft:sniffer";
  MinecraftEntityTypes2["SnowGolem"] = "minecraft:snow_golem";
  MinecraftEntityTypes2["Snowball"] = "minecraft:snowball";
  MinecraftEntityTypes2["Spider"] = "minecraft:spider";
  MinecraftEntityTypes2["SplashPotion"] = "minecraft:splash_potion";
  MinecraftEntityTypes2["Squid"] = "minecraft:squid";
  MinecraftEntityTypes2["Stray"] = "minecraft:stray";
  MinecraftEntityTypes2["Strider"] = "minecraft:strider";
  MinecraftEntityTypes2["Tadpole"] = "minecraft:tadpole";
  MinecraftEntityTypes2["ThrownTrident"] = "minecraft:thrown_trident";
  MinecraftEntityTypes2["Tnt"] = "minecraft:tnt";
  MinecraftEntityTypes2["TntMinecart"] = "minecraft:tnt_minecart";
  MinecraftEntityTypes2["TraderLlama"] = "minecraft:trader_llama";
  MinecraftEntityTypes2["TripodCamera"] = "minecraft:tripod_camera";
  MinecraftEntityTypes2["Tropicalfish"] = "minecraft:tropicalfish";
  MinecraftEntityTypes2["Turtle"] = "minecraft:turtle";
  MinecraftEntityTypes2["Vex"] = "minecraft:vex";
  MinecraftEntityTypes2["Villager"] = "minecraft:villager";
  MinecraftEntityTypes2["VillagerV2"] = "minecraft:villager_v2";
  MinecraftEntityTypes2["Vindicator"] = "minecraft:vindicator";
  MinecraftEntityTypes2["WanderingTrader"] = "minecraft:wandering_trader";
  MinecraftEntityTypes2["Warden"] = "minecraft:warden";
  MinecraftEntityTypes2["WindChargeProjectile"] = "minecraft:wind_charge_projectile";
  MinecraftEntityTypes2["Witch"] = "minecraft:witch";
  MinecraftEntityTypes2["Wither"] = "minecraft:wither";
  MinecraftEntityTypes2["WitherSkeleton"] = "minecraft:wither_skeleton";
  MinecraftEntityTypes2["WitherSkull"] = "minecraft:wither_skull";
  MinecraftEntityTypes2["WitherSkullDangerous"] = "minecraft:wither_skull_dangerous";
  MinecraftEntityTypes2["Wolf"] = "minecraft:wolf";
  MinecraftEntityTypes2["XpBottle"] = "minecraft:xp_bottle";
  MinecraftEntityTypes2["XpOrb"] = "minecraft:xp_orb";
  MinecraftEntityTypes2["Zoglin"] = "minecraft:zoglin";
  MinecraftEntityTypes2["Zombie"] = "minecraft:zombie";
  MinecraftEntityTypes2["ZombieHorse"] = "minecraft:zombie_horse";
  MinecraftEntityTypes2["ZombiePigman"] = "minecraft:zombie_pigman";
  MinecraftEntityTypes2["ZombieVillager"] = "minecraft:zombie_villager";
  MinecraftEntityTypes2["ZombieVillagerV2"] = "minecraft:zombie_villager_v2";
  return MinecraftEntityTypes2;
})(MinecraftEntityTypes || {});
var MinecraftFeatureTypes = ((MinecraftFeatureTypes2) => {
  MinecraftFeatureTypes2["AncientCity"] = "minecraft:ancient_city";
  MinecraftFeatureTypes2["BastionRemnant"] = "minecraft:bastion_remnant";
  MinecraftFeatureTypes2["BuriedTreasure"] = "minecraft:buried_treasure";
  MinecraftFeatureTypes2["EndCity"] = "minecraft:end_city";
  MinecraftFeatureTypes2["Fortress"] = "minecraft:fortress";
  MinecraftFeatureTypes2["Mansion"] = "minecraft:mansion";
  MinecraftFeatureTypes2["Mineshaft"] = "minecraft:mineshaft";
  MinecraftFeatureTypes2["Monument"] = "minecraft:monument";
  MinecraftFeatureTypes2["PillagerOutpost"] = "minecraft:pillager_outpost";
  MinecraftFeatureTypes2["RuinedPortal"] = "minecraft:ruined_portal";
  MinecraftFeatureTypes2["Ruins"] = "minecraft:ruins";
  MinecraftFeatureTypes2["Shipwreck"] = "minecraft:shipwreck";
  MinecraftFeatureTypes2["Stronghold"] = "minecraft:stronghold";
  MinecraftFeatureTypes2["Temple"] = "minecraft:temple";
  MinecraftFeatureTypes2["TrailRuins"] = "minecraft:trail_ruins";
  MinecraftFeatureTypes2["TrialChambers"] = "minecraft:trial_chambers";
  MinecraftFeatureTypes2["Village"] = "minecraft:village";
  return MinecraftFeatureTypes2;
})(MinecraftFeatureTypes || {});
var MinecraftItemTypes = ((MinecraftItemTypes2) => {
  MinecraftItemTypes2["AcaciaBoat"] = "minecraft:acacia_boat";
  MinecraftItemTypes2["AcaciaButton"] = "minecraft:acacia_button";
  MinecraftItemTypes2["AcaciaChestBoat"] = "minecraft:acacia_chest_boat";
  MinecraftItemTypes2["AcaciaDoor"] = "minecraft:acacia_door";
  MinecraftItemTypes2["AcaciaFence"] = "minecraft:acacia_fence";
  MinecraftItemTypes2["AcaciaFenceGate"] = "minecraft:acacia_fence_gate";
  MinecraftItemTypes2["AcaciaHangingSign"] = "minecraft:acacia_hanging_sign";
  MinecraftItemTypes2["AcaciaLeaves"] = "minecraft:acacia_leaves";
  MinecraftItemTypes2["AcaciaLog"] = "minecraft:acacia_log";
  MinecraftItemTypes2["AcaciaPlanks"] = "minecraft:acacia_planks";
  MinecraftItemTypes2["AcaciaPressurePlate"] = "minecraft:acacia_pressure_plate";
  MinecraftItemTypes2["AcaciaSapling"] = "minecraft:acacia_sapling";
  MinecraftItemTypes2["AcaciaSign"] = "minecraft:acacia_sign";
  MinecraftItemTypes2["AcaciaSlab"] = "minecraft:acacia_slab";
  MinecraftItemTypes2["AcaciaStairs"] = "minecraft:acacia_stairs";
  MinecraftItemTypes2["AcaciaTrapdoor"] = "minecraft:acacia_trapdoor";
  MinecraftItemTypes2["AcaciaWood"] = "minecraft:acacia_wood";
  MinecraftItemTypes2["ActivatorRail"] = "minecraft:activator_rail";
  MinecraftItemTypes2["AllaySpawnEgg"] = "minecraft:allay_spawn_egg";
  MinecraftItemTypes2["Allium"] = "minecraft:allium";
  MinecraftItemTypes2["Allow"] = "minecraft:allow";
  MinecraftItemTypes2["AmethystBlock"] = "minecraft:amethyst_block";
  MinecraftItemTypes2["AmethystCluster"] = "minecraft:amethyst_cluster";
  MinecraftItemTypes2["AmethystShard"] = "minecraft:amethyst_shard";
  MinecraftItemTypes2["AncientDebris"] = "minecraft:ancient_debris";
  MinecraftItemTypes2["Andesite"] = "minecraft:andesite";
  MinecraftItemTypes2["AndesiteSlab"] = "minecraft:andesite_slab";
  MinecraftItemTypes2["AndesiteStairs"] = "minecraft:andesite_stairs";
  MinecraftItemTypes2["AndesiteWall"] = "minecraft:andesite_wall";
  MinecraftItemTypes2["AnglerPotterySherd"] = "minecraft:angler_pottery_sherd";
  MinecraftItemTypes2["Anvil"] = "minecraft:anvil";
  MinecraftItemTypes2["Apple"] = "minecraft:apple";
  MinecraftItemTypes2["ArcherPotterySherd"] = "minecraft:archer_pottery_sherd";
  MinecraftItemTypes2["ArmadilloScute"] = "minecraft:armadillo_scute";
  MinecraftItemTypes2["ArmadilloSpawnEgg"] = "minecraft:armadillo_spawn_egg";
  MinecraftItemTypes2["ArmorStand"] = "minecraft:armor_stand";
  MinecraftItemTypes2["ArmsUpPotterySherd"] = "minecraft:arms_up_pottery_sherd";
  MinecraftItemTypes2["Arrow"] = "minecraft:arrow";
  MinecraftItemTypes2["AxolotlBucket"] = "minecraft:axolotl_bucket";
  MinecraftItemTypes2["AxolotlSpawnEgg"] = "minecraft:axolotl_spawn_egg";
  MinecraftItemTypes2["Azalea"] = "minecraft:azalea";
  MinecraftItemTypes2["AzaleaLeaves"] = "minecraft:azalea_leaves";
  MinecraftItemTypes2["AzaleaLeavesFlowered"] = "minecraft:azalea_leaves_flowered";
  MinecraftItemTypes2["AzureBluet"] = "minecraft:azure_bluet";
  MinecraftItemTypes2["BakedPotato"] = "minecraft:baked_potato";
  MinecraftItemTypes2["Bamboo"] = "minecraft:bamboo";
  MinecraftItemTypes2["BambooBlock"] = "minecraft:bamboo_block";
  MinecraftItemTypes2["BambooButton"] = "minecraft:bamboo_button";
  MinecraftItemTypes2["BambooChestRaft"] = "minecraft:bamboo_chest_raft";
  MinecraftItemTypes2["BambooDoor"] = "minecraft:bamboo_door";
  MinecraftItemTypes2["BambooFence"] = "minecraft:bamboo_fence";
  MinecraftItemTypes2["BambooFenceGate"] = "minecraft:bamboo_fence_gate";
  MinecraftItemTypes2["BambooHangingSign"] = "minecraft:bamboo_hanging_sign";
  MinecraftItemTypes2["BambooMosaic"] = "minecraft:bamboo_mosaic";
  MinecraftItemTypes2["BambooMosaicSlab"] = "minecraft:bamboo_mosaic_slab";
  MinecraftItemTypes2["BambooMosaicStairs"] = "minecraft:bamboo_mosaic_stairs";
  MinecraftItemTypes2["BambooPlanks"] = "minecraft:bamboo_planks";
  MinecraftItemTypes2["BambooPressurePlate"] = "minecraft:bamboo_pressure_plate";
  MinecraftItemTypes2["BambooRaft"] = "minecraft:bamboo_raft";
  MinecraftItemTypes2["BambooSign"] = "minecraft:bamboo_sign";
  MinecraftItemTypes2["BambooSlab"] = "minecraft:bamboo_slab";
  MinecraftItemTypes2["BambooStairs"] = "minecraft:bamboo_stairs";
  MinecraftItemTypes2["BambooTrapdoor"] = "minecraft:bamboo_trapdoor";
  MinecraftItemTypes2["Banner"] = "minecraft:banner";
  MinecraftItemTypes2["Barrel"] = "minecraft:barrel";
  MinecraftItemTypes2["Barrier"] = "minecraft:barrier";
  MinecraftItemTypes2["Basalt"] = "minecraft:basalt";
  MinecraftItemTypes2["BatSpawnEgg"] = "minecraft:bat_spawn_egg";
  MinecraftItemTypes2["Beacon"] = "minecraft:beacon";
  MinecraftItemTypes2["Bed"] = "minecraft:bed";
  MinecraftItemTypes2["Bedrock"] = "minecraft:bedrock";
  MinecraftItemTypes2["BeeNest"] = "minecraft:bee_nest";
  MinecraftItemTypes2["BeeSpawnEgg"] = "minecraft:bee_spawn_egg";
  MinecraftItemTypes2["Beef"] = "minecraft:beef";
  MinecraftItemTypes2["Beehive"] = "minecraft:beehive";
  MinecraftItemTypes2["Beetroot"] = "minecraft:beetroot";
  MinecraftItemTypes2["BeetrootSeeds"] = "minecraft:beetroot_seeds";
  MinecraftItemTypes2["BeetrootSoup"] = "minecraft:beetroot_soup";
  MinecraftItemTypes2["Bell"] = "minecraft:bell";
  MinecraftItemTypes2["BigDripleaf"] = "minecraft:big_dripleaf";
  MinecraftItemTypes2["BirchBoat"] = "minecraft:birch_boat";
  MinecraftItemTypes2["BirchButton"] = "minecraft:birch_button";
  MinecraftItemTypes2["BirchChestBoat"] = "minecraft:birch_chest_boat";
  MinecraftItemTypes2["BirchDoor"] = "minecraft:birch_door";
  MinecraftItemTypes2["BirchFence"] = "minecraft:birch_fence";
  MinecraftItemTypes2["BirchFenceGate"] = "minecraft:birch_fence_gate";
  MinecraftItemTypes2["BirchHangingSign"] = "minecraft:birch_hanging_sign";
  MinecraftItemTypes2["BirchLeaves"] = "minecraft:birch_leaves";
  MinecraftItemTypes2["BirchLog"] = "minecraft:birch_log";
  MinecraftItemTypes2["BirchPlanks"] = "minecraft:birch_planks";
  MinecraftItemTypes2["BirchPressurePlate"] = "minecraft:birch_pressure_plate";
  MinecraftItemTypes2["BirchSapling"] = "minecraft:birch_sapling";
  MinecraftItemTypes2["BirchSign"] = "minecraft:birch_sign";
  MinecraftItemTypes2["BirchSlab"] = "minecraft:birch_slab";
  MinecraftItemTypes2["BirchStairs"] = "minecraft:birch_stairs";
  MinecraftItemTypes2["BirchTrapdoor"] = "minecraft:birch_trapdoor";
  MinecraftItemTypes2["BirchWood"] = "minecraft:birch_wood";
  MinecraftItemTypes2["BlackBundle"] = "minecraft:black_bundle";
  MinecraftItemTypes2["BlackCandle"] = "minecraft:black_candle";
  MinecraftItemTypes2["BlackCarpet"] = "minecraft:black_carpet";
  MinecraftItemTypes2["BlackConcrete"] = "minecraft:black_concrete";
  MinecraftItemTypes2["BlackConcretePowder"] = "minecraft:black_concrete_powder";
  MinecraftItemTypes2["BlackDye"] = "minecraft:black_dye";
  MinecraftItemTypes2["BlackGlazedTerracotta"] = "minecraft:black_glazed_terracotta";
  MinecraftItemTypes2["BlackHarness"] = "minecraft:black_harness";
  MinecraftItemTypes2["BlackShulkerBox"] = "minecraft:black_shulker_box";
  MinecraftItemTypes2["BlackStainedGlass"] = "minecraft:black_stained_glass";
  MinecraftItemTypes2["BlackStainedGlassPane"] = "minecraft:black_stained_glass_pane";
  MinecraftItemTypes2["BlackTerracotta"] = "minecraft:black_terracotta";
  MinecraftItemTypes2["BlackWool"] = "minecraft:black_wool";
  MinecraftItemTypes2["Blackstone"] = "minecraft:blackstone";
  MinecraftItemTypes2["BlackstoneSlab"] = "minecraft:blackstone_slab";
  MinecraftItemTypes2["BlackstoneStairs"] = "minecraft:blackstone_stairs";
  MinecraftItemTypes2["BlackstoneWall"] = "minecraft:blackstone_wall";
  MinecraftItemTypes2["BladePotterySherd"] = "minecraft:blade_pottery_sherd";
  MinecraftItemTypes2["BlastFurnace"] = "minecraft:blast_furnace";
  MinecraftItemTypes2["BlazePowder"] = "minecraft:blaze_powder";
  MinecraftItemTypes2["BlazeRod"] = "minecraft:blaze_rod";
  MinecraftItemTypes2["BlazeSpawnEgg"] = "minecraft:blaze_spawn_egg";
  MinecraftItemTypes2["BlueBundle"] = "minecraft:blue_bundle";
  MinecraftItemTypes2["BlueCandle"] = "minecraft:blue_candle";
  MinecraftItemTypes2["BlueCarpet"] = "minecraft:blue_carpet";
  MinecraftItemTypes2["BlueConcrete"] = "minecraft:blue_concrete";
  MinecraftItemTypes2["BlueConcretePowder"] = "minecraft:blue_concrete_powder";
  MinecraftItemTypes2["BlueDye"] = "minecraft:blue_dye";
  MinecraftItemTypes2["BlueEgg"] = "minecraft:blue_egg";
  MinecraftItemTypes2["BlueGlazedTerracotta"] = "minecraft:blue_glazed_terracotta";
  MinecraftItemTypes2["BlueHarness"] = "minecraft:blue_harness";
  MinecraftItemTypes2["BlueIce"] = "minecraft:blue_ice";
  MinecraftItemTypes2["BlueOrchid"] = "minecraft:blue_orchid";
  MinecraftItemTypes2["BlueShulkerBox"] = "minecraft:blue_shulker_box";
  MinecraftItemTypes2["BlueStainedGlass"] = "minecraft:blue_stained_glass";
  MinecraftItemTypes2["BlueStainedGlassPane"] = "minecraft:blue_stained_glass_pane";
  MinecraftItemTypes2["BlueTerracotta"] = "minecraft:blue_terracotta";
  MinecraftItemTypes2["BlueWool"] = "minecraft:blue_wool";
  MinecraftItemTypes2["BoggedSpawnEgg"] = "minecraft:bogged_spawn_egg";
  MinecraftItemTypes2["BoltArmorTrimSmithingTemplate"] = "minecraft:bolt_armor_trim_smithing_template";
  MinecraftItemTypes2["Bone"] = "minecraft:bone";
  MinecraftItemTypes2["BoneBlock"] = "minecraft:bone_block";
  MinecraftItemTypes2["BoneMeal"] = "minecraft:bone_meal";
  MinecraftItemTypes2["Book"] = "minecraft:book";
  MinecraftItemTypes2["Bookshelf"] = "minecraft:bookshelf";
  MinecraftItemTypes2["BorderBlock"] = "minecraft:border_block";
  MinecraftItemTypes2["BordureIndentedBannerPattern"] = "minecraft:bordure_indented_banner_pattern";
  MinecraftItemTypes2["Bow"] = "minecraft:bow";
  MinecraftItemTypes2["Bowl"] = "minecraft:bowl";
  MinecraftItemTypes2["BrainCoral"] = "minecraft:brain_coral";
  MinecraftItemTypes2["BrainCoralBlock"] = "minecraft:brain_coral_block";
  MinecraftItemTypes2["BrainCoralFan"] = "minecraft:brain_coral_fan";
  MinecraftItemTypes2["Bread"] = "minecraft:bread";
  MinecraftItemTypes2["BreezeRod"] = "minecraft:breeze_rod";
  MinecraftItemTypes2["BreezeSpawnEgg"] = "minecraft:breeze_spawn_egg";
  MinecraftItemTypes2["BrewerPotterySherd"] = "minecraft:brewer_pottery_sherd";
  MinecraftItemTypes2["BrewingStand"] = "minecraft:brewing_stand";
  MinecraftItemTypes2["Brick"] = "minecraft:brick";
  MinecraftItemTypes2["BrickBlock"] = "minecraft:brick_block";
  MinecraftItemTypes2["BrickSlab"] = "minecraft:brick_slab";
  MinecraftItemTypes2["BrickStairs"] = "minecraft:brick_stairs";
  MinecraftItemTypes2["BrickWall"] = "minecraft:brick_wall";
  MinecraftItemTypes2["BrownBundle"] = "minecraft:brown_bundle";
  MinecraftItemTypes2["BrownCandle"] = "minecraft:brown_candle";
  MinecraftItemTypes2["BrownCarpet"] = "minecraft:brown_carpet";
  MinecraftItemTypes2["BrownConcrete"] = "minecraft:brown_concrete";
  MinecraftItemTypes2["BrownConcretePowder"] = "minecraft:brown_concrete_powder";
  MinecraftItemTypes2["BrownDye"] = "minecraft:brown_dye";
  MinecraftItemTypes2["BrownEgg"] = "minecraft:brown_egg";
  MinecraftItemTypes2["BrownGlazedTerracotta"] = "minecraft:brown_glazed_terracotta";
  MinecraftItemTypes2["BrownHarness"] = "minecraft:brown_harness";
  MinecraftItemTypes2["BrownMushroom"] = "minecraft:brown_mushroom";
  MinecraftItemTypes2["BrownMushroomBlock"] = "minecraft:brown_mushroom_block";
  MinecraftItemTypes2["BrownShulkerBox"] = "minecraft:brown_shulker_box";
  MinecraftItemTypes2["BrownStainedGlass"] = "minecraft:brown_stained_glass";
  MinecraftItemTypes2["BrownStainedGlassPane"] = "minecraft:brown_stained_glass_pane";
  MinecraftItemTypes2["BrownTerracotta"] = "minecraft:brown_terracotta";
  MinecraftItemTypes2["BrownWool"] = "minecraft:brown_wool";
  MinecraftItemTypes2["Brush"] = "minecraft:brush";
  MinecraftItemTypes2["BubbleCoral"] = "minecraft:bubble_coral";
  MinecraftItemTypes2["BubbleCoralBlock"] = "minecraft:bubble_coral_block";
  MinecraftItemTypes2["BubbleCoralFan"] = "minecraft:bubble_coral_fan";
  MinecraftItemTypes2["Bucket"] = "minecraft:bucket";
  MinecraftItemTypes2["BuddingAmethyst"] = "minecraft:budding_amethyst";
  MinecraftItemTypes2["Bundle"] = "minecraft:bundle";
  MinecraftItemTypes2["BurnPotterySherd"] = "minecraft:burn_pottery_sherd";
  MinecraftItemTypes2["Bush"] = "minecraft:bush";
  MinecraftItemTypes2["Cactus"] = "minecraft:cactus";
  MinecraftItemTypes2["CactusFlower"] = "minecraft:cactus_flower";
  MinecraftItemTypes2["Cake"] = "minecraft:cake";
  MinecraftItemTypes2["Calcite"] = "minecraft:calcite";
  MinecraftItemTypes2["CalibratedSculkSensor"] = "minecraft:calibrated_sculk_sensor";
  MinecraftItemTypes2["CamelSpawnEgg"] = "minecraft:camel_spawn_egg";
  MinecraftItemTypes2["Campfire"] = "minecraft:campfire";
  MinecraftItemTypes2["Candle"] = "minecraft:candle";
  MinecraftItemTypes2["Carrot"] = "minecraft:carrot";
  MinecraftItemTypes2["CarrotOnAStick"] = "minecraft:carrot_on_a_stick";
  MinecraftItemTypes2["CartographyTable"] = "minecraft:cartography_table";
  MinecraftItemTypes2["CarvedPumpkin"] = "minecraft:carved_pumpkin";
  MinecraftItemTypes2["CatSpawnEgg"] = "minecraft:cat_spawn_egg";
  MinecraftItemTypes2["Cauldron"] = "minecraft:cauldron";
  MinecraftItemTypes2["CaveSpiderSpawnEgg"] = "minecraft:cave_spider_spawn_egg";
  MinecraftItemTypes2["Chain"] = "minecraft:chain";
  MinecraftItemTypes2["ChainCommandBlock"] = "minecraft:chain_command_block";
  MinecraftItemTypes2["ChainmailBoots"] = "minecraft:chainmail_boots";
  MinecraftItemTypes2["ChainmailChestplate"] = "minecraft:chainmail_chestplate";
  MinecraftItemTypes2["ChainmailHelmet"] = "minecraft:chainmail_helmet";
  MinecraftItemTypes2["ChainmailLeggings"] = "minecraft:chainmail_leggings";
  MinecraftItemTypes2["Charcoal"] = "minecraft:charcoal";
  MinecraftItemTypes2["CherryBoat"] = "minecraft:cherry_boat";
  MinecraftItemTypes2["CherryButton"] = "minecraft:cherry_button";
  MinecraftItemTypes2["CherryChestBoat"] = "minecraft:cherry_chest_boat";
  MinecraftItemTypes2["CherryDoor"] = "minecraft:cherry_door";
  MinecraftItemTypes2["CherryFence"] = "minecraft:cherry_fence";
  MinecraftItemTypes2["CherryFenceGate"] = "minecraft:cherry_fence_gate";
  MinecraftItemTypes2["CherryHangingSign"] = "minecraft:cherry_hanging_sign";
  MinecraftItemTypes2["CherryLeaves"] = "minecraft:cherry_leaves";
  MinecraftItemTypes2["CherryLog"] = "minecraft:cherry_log";
  MinecraftItemTypes2["CherryPlanks"] = "minecraft:cherry_planks";
  MinecraftItemTypes2["CherryPressurePlate"] = "minecraft:cherry_pressure_plate";
  MinecraftItemTypes2["CherrySapling"] = "minecraft:cherry_sapling";
  MinecraftItemTypes2["CherrySign"] = "minecraft:cherry_sign";
  MinecraftItemTypes2["CherrySlab"] = "minecraft:cherry_slab";
  MinecraftItemTypes2["CherryStairs"] = "minecraft:cherry_stairs";
  MinecraftItemTypes2["CherryTrapdoor"] = "minecraft:cherry_trapdoor";
  MinecraftItemTypes2["CherryWood"] = "minecraft:cherry_wood";
  MinecraftItemTypes2["Chest"] = "minecraft:chest";
  MinecraftItemTypes2["ChestMinecart"] = "minecraft:chest_minecart";
  MinecraftItemTypes2["Chicken"] = "minecraft:chicken";
  MinecraftItemTypes2["ChickenSpawnEgg"] = "minecraft:chicken_spawn_egg";
  MinecraftItemTypes2["ChippedAnvil"] = "minecraft:chipped_anvil";
  MinecraftItemTypes2["ChiseledBookshelf"] = "minecraft:chiseled_bookshelf";
  MinecraftItemTypes2["ChiseledCopper"] = "minecraft:chiseled_copper";
  MinecraftItemTypes2["ChiseledDeepslate"] = "minecraft:chiseled_deepslate";
  MinecraftItemTypes2["ChiseledNetherBricks"] = "minecraft:chiseled_nether_bricks";
  MinecraftItemTypes2["ChiseledPolishedBlackstone"] = "minecraft:chiseled_polished_blackstone";
  MinecraftItemTypes2["ChiseledQuartzBlock"] = "minecraft:chiseled_quartz_block";
  MinecraftItemTypes2["ChiseledRedSandstone"] = "minecraft:chiseled_red_sandstone";
  MinecraftItemTypes2["ChiseledResinBricks"] = "minecraft:chiseled_resin_bricks";
  MinecraftItemTypes2["ChiseledSandstone"] = "minecraft:chiseled_sandstone";
  MinecraftItemTypes2["ChiseledStoneBricks"] = "minecraft:chiseled_stone_bricks";
  MinecraftItemTypes2["ChiseledTuff"] = "minecraft:chiseled_tuff";
  MinecraftItemTypes2["ChiseledTuffBricks"] = "minecraft:chiseled_tuff_bricks";
  MinecraftItemTypes2["ChorusFlower"] = "minecraft:chorus_flower";
  MinecraftItemTypes2["ChorusFruit"] = "minecraft:chorus_fruit";
  MinecraftItemTypes2["ChorusPlant"] = "minecraft:chorus_plant";
  MinecraftItemTypes2["Clay"] = "minecraft:clay";
  MinecraftItemTypes2["ClayBall"] = "minecraft:clay_ball";
  MinecraftItemTypes2["Clock"] = "minecraft:clock";
  MinecraftItemTypes2["ClosedEyeblossom"] = "minecraft:closed_eyeblossom";
  MinecraftItemTypes2["Coal"] = "minecraft:coal";
  MinecraftItemTypes2["CoalBlock"] = "minecraft:coal_block";
  MinecraftItemTypes2["CoalOre"] = "minecraft:coal_ore";
  MinecraftItemTypes2["CoarseDirt"] = "minecraft:coarse_dirt";
  MinecraftItemTypes2["CoastArmorTrimSmithingTemplate"] = "minecraft:coast_armor_trim_smithing_template";
  MinecraftItemTypes2["CobbledDeepslate"] = "minecraft:cobbled_deepslate";
  MinecraftItemTypes2["CobbledDeepslateSlab"] = "minecraft:cobbled_deepslate_slab";
  MinecraftItemTypes2["CobbledDeepslateStairs"] = "minecraft:cobbled_deepslate_stairs";
  MinecraftItemTypes2["CobbledDeepslateWall"] = "minecraft:cobbled_deepslate_wall";
  MinecraftItemTypes2["Cobblestone"] = "minecraft:cobblestone";
  MinecraftItemTypes2["CobblestoneSlab"] = "minecraft:cobblestone_slab";
  MinecraftItemTypes2["CobblestoneWall"] = "minecraft:cobblestone_wall";
  MinecraftItemTypes2["CocoaBeans"] = "minecraft:cocoa_beans";
  MinecraftItemTypes2["Cod"] = "minecraft:cod";
  MinecraftItemTypes2["CodBucket"] = "minecraft:cod_bucket";
  MinecraftItemTypes2["CodSpawnEgg"] = "minecraft:cod_spawn_egg";
  MinecraftItemTypes2["CommandBlock"] = "minecraft:command_block";
  MinecraftItemTypes2["CommandBlockMinecart"] = "minecraft:command_block_minecart";
  MinecraftItemTypes2["Comparator"] = "minecraft:comparator";
  MinecraftItemTypes2["Compass"] = "minecraft:compass";
  MinecraftItemTypes2["Composter"] = "minecraft:composter";
  MinecraftItemTypes2["Conduit"] = "minecraft:conduit";
  MinecraftItemTypes2["CookedBeef"] = "minecraft:cooked_beef";
  MinecraftItemTypes2["CookedChicken"] = "minecraft:cooked_chicken";
  MinecraftItemTypes2["CookedCod"] = "minecraft:cooked_cod";
  MinecraftItemTypes2["CookedMutton"] = "minecraft:cooked_mutton";
  MinecraftItemTypes2["CookedPorkchop"] = "minecraft:cooked_porkchop";
  MinecraftItemTypes2["CookedRabbit"] = "minecraft:cooked_rabbit";
  MinecraftItemTypes2["CookedSalmon"] = "minecraft:cooked_salmon";
  MinecraftItemTypes2["Cookie"] = "minecraft:cookie";
  MinecraftItemTypes2["CopperBlock"] = "minecraft:copper_block";
  MinecraftItemTypes2["CopperBulb"] = "minecraft:copper_bulb";
  MinecraftItemTypes2["CopperDoor"] = "minecraft:copper_door";
  MinecraftItemTypes2["CopperGrate"] = "minecraft:copper_grate";
  MinecraftItemTypes2["CopperIngot"] = "minecraft:copper_ingot";
  MinecraftItemTypes2["CopperOre"] = "minecraft:copper_ore";
  MinecraftItemTypes2["CopperTrapdoor"] = "minecraft:copper_trapdoor";
  MinecraftItemTypes2["Cornflower"] = "minecraft:cornflower";
  MinecraftItemTypes2["CowSpawnEgg"] = "minecraft:cow_spawn_egg";
  MinecraftItemTypes2["CrackedDeepslateBricks"] = "minecraft:cracked_deepslate_bricks";
  MinecraftItemTypes2["CrackedDeepslateTiles"] = "minecraft:cracked_deepslate_tiles";
  MinecraftItemTypes2["CrackedNetherBricks"] = "minecraft:cracked_nether_bricks";
  MinecraftItemTypes2["CrackedPolishedBlackstoneBricks"] = "minecraft:cracked_polished_blackstone_bricks";
  MinecraftItemTypes2["CrackedStoneBricks"] = "minecraft:cracked_stone_bricks";
  MinecraftItemTypes2["Crafter"] = "minecraft:crafter";
  MinecraftItemTypes2["CraftingTable"] = "minecraft:crafting_table";
  MinecraftItemTypes2["CreakingHeart"] = "minecraft:creaking_heart";
  MinecraftItemTypes2["CreakingSpawnEgg"] = "minecraft:creaking_spawn_egg";
  MinecraftItemTypes2["CreeperBannerPattern"] = "minecraft:creeper_banner_pattern";
  MinecraftItemTypes2["CreeperHead"] = "minecraft:creeper_head";
  MinecraftItemTypes2["CreeperSpawnEgg"] = "minecraft:creeper_spawn_egg";
  MinecraftItemTypes2["CrimsonButton"] = "minecraft:crimson_button";
  MinecraftItemTypes2["CrimsonDoor"] = "minecraft:crimson_door";
  MinecraftItemTypes2["CrimsonFence"] = "minecraft:crimson_fence";
  MinecraftItemTypes2["CrimsonFenceGate"] = "minecraft:crimson_fence_gate";
  MinecraftItemTypes2["CrimsonFungus"] = "minecraft:crimson_fungus";
  MinecraftItemTypes2["CrimsonHangingSign"] = "minecraft:crimson_hanging_sign";
  MinecraftItemTypes2["CrimsonHyphae"] = "minecraft:crimson_hyphae";
  MinecraftItemTypes2["CrimsonNylium"] = "minecraft:crimson_nylium";
  MinecraftItemTypes2["CrimsonPlanks"] = "minecraft:crimson_planks";
  MinecraftItemTypes2["CrimsonPressurePlate"] = "minecraft:crimson_pressure_plate";
  MinecraftItemTypes2["CrimsonRoots"] = "minecraft:crimson_roots";
  MinecraftItemTypes2["CrimsonSign"] = "minecraft:crimson_sign";
  MinecraftItemTypes2["CrimsonSlab"] = "minecraft:crimson_slab";
  MinecraftItemTypes2["CrimsonStairs"] = "minecraft:crimson_stairs";
  MinecraftItemTypes2["CrimsonStem"] = "minecraft:crimson_stem";
  MinecraftItemTypes2["CrimsonTrapdoor"] = "minecraft:crimson_trapdoor";
  MinecraftItemTypes2["Crossbow"] = "minecraft:crossbow";
  MinecraftItemTypes2["CryingObsidian"] = "minecraft:crying_obsidian";
  MinecraftItemTypes2["CutCopper"] = "minecraft:cut_copper";
  MinecraftItemTypes2["CutCopperSlab"] = "minecraft:cut_copper_slab";
  MinecraftItemTypes2["CutCopperStairs"] = "minecraft:cut_copper_stairs";
  MinecraftItemTypes2["CutRedSandstone"] = "minecraft:cut_red_sandstone";
  MinecraftItemTypes2["CutRedSandstoneSlab"] = "minecraft:cut_red_sandstone_slab";
  MinecraftItemTypes2["CutSandstone"] = "minecraft:cut_sandstone";
  MinecraftItemTypes2["CutSandstoneSlab"] = "minecraft:cut_sandstone_slab";
  MinecraftItemTypes2["CyanBundle"] = "minecraft:cyan_bundle";
  MinecraftItemTypes2["CyanCandle"] = "minecraft:cyan_candle";
  MinecraftItemTypes2["CyanCarpet"] = "minecraft:cyan_carpet";
  MinecraftItemTypes2["CyanConcrete"] = "minecraft:cyan_concrete";
  MinecraftItemTypes2["CyanConcretePowder"] = "minecraft:cyan_concrete_powder";
  MinecraftItemTypes2["CyanDye"] = "minecraft:cyan_dye";
  MinecraftItemTypes2["CyanGlazedTerracotta"] = "minecraft:cyan_glazed_terracotta";
  MinecraftItemTypes2["CyanHarness"] = "minecraft:cyan_harness";
  MinecraftItemTypes2["CyanShulkerBox"] = "minecraft:cyan_shulker_box";
  MinecraftItemTypes2["CyanStainedGlass"] = "minecraft:cyan_stained_glass";
  MinecraftItemTypes2["CyanStainedGlassPane"] = "minecraft:cyan_stained_glass_pane";
  MinecraftItemTypes2["CyanTerracotta"] = "minecraft:cyan_terracotta";
  MinecraftItemTypes2["CyanWool"] = "minecraft:cyan_wool";
  MinecraftItemTypes2["DamagedAnvil"] = "minecraft:damaged_anvil";
  MinecraftItemTypes2["Dandelion"] = "minecraft:dandelion";
  MinecraftItemTypes2["DangerPotterySherd"] = "minecraft:danger_pottery_sherd";
  MinecraftItemTypes2["DarkOakBoat"] = "minecraft:dark_oak_boat";
  MinecraftItemTypes2["DarkOakButton"] = "minecraft:dark_oak_button";
  MinecraftItemTypes2["DarkOakChestBoat"] = "minecraft:dark_oak_chest_boat";
  MinecraftItemTypes2["DarkOakDoor"] = "minecraft:dark_oak_door";
  MinecraftItemTypes2["DarkOakFence"] = "minecraft:dark_oak_fence";
  MinecraftItemTypes2["DarkOakFenceGate"] = "minecraft:dark_oak_fence_gate";
  MinecraftItemTypes2["DarkOakHangingSign"] = "minecraft:dark_oak_hanging_sign";
  MinecraftItemTypes2["DarkOakLeaves"] = "minecraft:dark_oak_leaves";
  MinecraftItemTypes2["DarkOakLog"] = "minecraft:dark_oak_log";
  MinecraftItemTypes2["DarkOakPlanks"] = "minecraft:dark_oak_planks";
  MinecraftItemTypes2["DarkOakPressurePlate"] = "minecraft:dark_oak_pressure_plate";
  MinecraftItemTypes2["DarkOakSapling"] = "minecraft:dark_oak_sapling";
  MinecraftItemTypes2["DarkOakSign"] = "minecraft:dark_oak_sign";
  MinecraftItemTypes2["DarkOakSlab"] = "minecraft:dark_oak_slab";
  MinecraftItemTypes2["DarkOakStairs"] = "minecraft:dark_oak_stairs";
  MinecraftItemTypes2["DarkOakTrapdoor"] = "minecraft:dark_oak_trapdoor";
  MinecraftItemTypes2["DarkOakWood"] = "minecraft:dark_oak_wood";
  MinecraftItemTypes2["DarkPrismarine"] = "minecraft:dark_prismarine";
  MinecraftItemTypes2["DarkPrismarineSlab"] = "minecraft:dark_prismarine_slab";
  MinecraftItemTypes2["DarkPrismarineStairs"] = "minecraft:dark_prismarine_stairs";
  MinecraftItemTypes2["DaylightDetector"] = "minecraft:daylight_detector";
  MinecraftItemTypes2["DeadBrainCoral"] = "minecraft:dead_brain_coral";
  MinecraftItemTypes2["DeadBrainCoralBlock"] = "minecraft:dead_brain_coral_block";
  MinecraftItemTypes2["DeadBrainCoralFan"] = "minecraft:dead_brain_coral_fan";
  MinecraftItemTypes2["DeadBubbleCoral"] = "minecraft:dead_bubble_coral";
  MinecraftItemTypes2["DeadBubbleCoralBlock"] = "minecraft:dead_bubble_coral_block";
  MinecraftItemTypes2["DeadBubbleCoralFan"] = "minecraft:dead_bubble_coral_fan";
  MinecraftItemTypes2["DeadFireCoral"] = "minecraft:dead_fire_coral";
  MinecraftItemTypes2["DeadFireCoralBlock"] = "minecraft:dead_fire_coral_block";
  MinecraftItemTypes2["DeadFireCoralFan"] = "minecraft:dead_fire_coral_fan";
  MinecraftItemTypes2["DeadHornCoral"] = "minecraft:dead_horn_coral";
  MinecraftItemTypes2["DeadHornCoralBlock"] = "minecraft:dead_horn_coral_block";
  MinecraftItemTypes2["DeadHornCoralFan"] = "minecraft:dead_horn_coral_fan";
  MinecraftItemTypes2["DeadTubeCoral"] = "minecraft:dead_tube_coral";
  MinecraftItemTypes2["DeadTubeCoralBlock"] = "minecraft:dead_tube_coral_block";
  MinecraftItemTypes2["DeadTubeCoralFan"] = "minecraft:dead_tube_coral_fan";
  MinecraftItemTypes2["Deadbush"] = "minecraft:deadbush";
  MinecraftItemTypes2["DecoratedPot"] = "minecraft:decorated_pot";
  MinecraftItemTypes2["Deepslate"] = "minecraft:deepslate";
  MinecraftItemTypes2["DeepslateBrickSlab"] = "minecraft:deepslate_brick_slab";
  MinecraftItemTypes2["DeepslateBrickStairs"] = "minecraft:deepslate_brick_stairs";
  MinecraftItemTypes2["DeepslateBrickWall"] = "minecraft:deepslate_brick_wall";
  MinecraftItemTypes2["DeepslateBricks"] = "minecraft:deepslate_bricks";
  MinecraftItemTypes2["DeepslateCoalOre"] = "minecraft:deepslate_coal_ore";
  MinecraftItemTypes2["DeepslateCopperOre"] = "minecraft:deepslate_copper_ore";
  MinecraftItemTypes2["DeepslateDiamondOre"] = "minecraft:deepslate_diamond_ore";
  MinecraftItemTypes2["DeepslateEmeraldOre"] = "minecraft:deepslate_emerald_ore";
  MinecraftItemTypes2["DeepslateGoldOre"] = "minecraft:deepslate_gold_ore";
  MinecraftItemTypes2["DeepslateIronOre"] = "minecraft:deepslate_iron_ore";
  MinecraftItemTypes2["DeepslateLapisOre"] = "minecraft:deepslate_lapis_ore";
  MinecraftItemTypes2["DeepslateRedstoneOre"] = "minecraft:deepslate_redstone_ore";
  MinecraftItemTypes2["DeepslateTileSlab"] = "minecraft:deepslate_tile_slab";
  MinecraftItemTypes2["DeepslateTileStairs"] = "minecraft:deepslate_tile_stairs";
  MinecraftItemTypes2["DeepslateTileWall"] = "minecraft:deepslate_tile_wall";
  MinecraftItemTypes2["DeepslateTiles"] = "minecraft:deepslate_tiles";
  MinecraftItemTypes2["Deny"] = "minecraft:deny";
  MinecraftItemTypes2["DetectorRail"] = "minecraft:detector_rail";
  MinecraftItemTypes2["Diamond"] = "minecraft:diamond";
  MinecraftItemTypes2["DiamondAxe"] = "minecraft:diamond_axe";
  MinecraftItemTypes2["DiamondBlock"] = "minecraft:diamond_block";
  MinecraftItemTypes2["DiamondBoots"] = "minecraft:diamond_boots";
  MinecraftItemTypes2["DiamondChestplate"] = "minecraft:diamond_chestplate";
  MinecraftItemTypes2["DiamondHelmet"] = "minecraft:diamond_helmet";
  MinecraftItemTypes2["DiamondHoe"] = "minecraft:diamond_hoe";
  MinecraftItemTypes2["DiamondHorseArmor"] = "minecraft:diamond_horse_armor";
  MinecraftItemTypes2["DiamondLeggings"] = "minecraft:diamond_leggings";
  MinecraftItemTypes2["DiamondOre"] = "minecraft:diamond_ore";
  MinecraftItemTypes2["DiamondPickaxe"] = "minecraft:diamond_pickaxe";
  MinecraftItemTypes2["DiamondShovel"] = "minecraft:diamond_shovel";
  MinecraftItemTypes2["DiamondSword"] = "minecraft:diamond_sword";
  MinecraftItemTypes2["Diorite"] = "minecraft:diorite";
  MinecraftItemTypes2["DioriteSlab"] = "minecraft:diorite_slab";
  MinecraftItemTypes2["DioriteStairs"] = "minecraft:diorite_stairs";
  MinecraftItemTypes2["DioriteWall"] = "minecraft:diorite_wall";
  MinecraftItemTypes2["Dirt"] = "minecraft:dirt";
  MinecraftItemTypes2["DirtWithRoots"] = "minecraft:dirt_with_roots";
  MinecraftItemTypes2["DiscFragment5"] = "minecraft:disc_fragment_5";
  MinecraftItemTypes2["Dispenser"] = "minecraft:dispenser";
  MinecraftItemTypes2["DolphinSpawnEgg"] = "minecraft:dolphin_spawn_egg";
  MinecraftItemTypes2["DonkeySpawnEgg"] = "minecraft:donkey_spawn_egg";
  MinecraftItemTypes2["DragonBreath"] = "minecraft:dragon_breath";
  MinecraftItemTypes2["DragonEgg"] = "minecraft:dragon_egg";
  MinecraftItemTypes2["DragonHead"] = "minecraft:dragon_head";
  MinecraftItemTypes2["DriedGhast"] = "minecraft:dried_ghast";
  MinecraftItemTypes2["DriedKelp"] = "minecraft:dried_kelp";
  MinecraftItemTypes2["DriedKelpBlock"] = "minecraft:dried_kelp_block";
  MinecraftItemTypes2["DripstoneBlock"] = "minecraft:dripstone_block";
  MinecraftItemTypes2["Dropper"] = "minecraft:dropper";
  MinecraftItemTypes2["DrownedSpawnEgg"] = "minecraft:drowned_spawn_egg";
  MinecraftItemTypes2["DuneArmorTrimSmithingTemplate"] = "minecraft:dune_armor_trim_smithing_template";
  MinecraftItemTypes2["EchoShard"] = "minecraft:echo_shard";
  MinecraftItemTypes2["Egg"] = "minecraft:egg";
  MinecraftItemTypes2["ElderGuardianSpawnEgg"] = "minecraft:elder_guardian_spawn_egg";
  MinecraftItemTypes2["Elytra"] = "minecraft:elytra";
  MinecraftItemTypes2["Emerald"] = "minecraft:emerald";
  MinecraftItemTypes2["EmeraldBlock"] = "minecraft:emerald_block";
  MinecraftItemTypes2["EmeraldOre"] = "minecraft:emerald_ore";
  MinecraftItemTypes2["EmptyMap"] = "minecraft:empty_map";
  MinecraftItemTypes2["EnchantedBook"] = "minecraft:enchanted_book";
  MinecraftItemTypes2["EnchantedGoldenApple"] = "minecraft:enchanted_golden_apple";
  MinecraftItemTypes2["EnchantingTable"] = "minecraft:enchanting_table";
  MinecraftItemTypes2["EndBrickStairs"] = "minecraft:end_brick_stairs";
  MinecraftItemTypes2["EndBricks"] = "minecraft:end_bricks";
  MinecraftItemTypes2["EndCrystal"] = "minecraft:end_crystal";
  MinecraftItemTypes2["EndPortalFrame"] = "minecraft:end_portal_frame";
  MinecraftItemTypes2["EndRod"] = "minecraft:end_rod";
  MinecraftItemTypes2["EndStone"] = "minecraft:end_stone";
  MinecraftItemTypes2["EndStoneBrickSlab"] = "minecraft:end_stone_brick_slab";
  MinecraftItemTypes2["EndStoneBrickWall"] = "minecraft:end_stone_brick_wall";
  MinecraftItemTypes2["EnderChest"] = "minecraft:ender_chest";
  MinecraftItemTypes2["EnderDragonSpawnEgg"] = "minecraft:ender_dragon_spawn_egg";
  MinecraftItemTypes2["EnderEye"] = "minecraft:ender_eye";
  MinecraftItemTypes2["EnderPearl"] = "minecraft:ender_pearl";
  MinecraftItemTypes2["EndermanSpawnEgg"] = "minecraft:enderman_spawn_egg";
  MinecraftItemTypes2["EndermiteSpawnEgg"] = "minecraft:endermite_spawn_egg";
  MinecraftItemTypes2["EvokerSpawnEgg"] = "minecraft:evoker_spawn_egg";
  MinecraftItemTypes2["ExperienceBottle"] = "minecraft:experience_bottle";
  MinecraftItemTypes2["ExplorerPotterySherd"] = "minecraft:explorer_pottery_sherd";
  MinecraftItemTypes2["ExposedChiseledCopper"] = "minecraft:exposed_chiseled_copper";
  MinecraftItemTypes2["ExposedCopper"] = "minecraft:exposed_copper";
  MinecraftItemTypes2["ExposedCopperBulb"] = "minecraft:exposed_copper_bulb";
  MinecraftItemTypes2["ExposedCopperDoor"] = "minecraft:exposed_copper_door";
  MinecraftItemTypes2["ExposedCopperGrate"] = "minecraft:exposed_copper_grate";
  MinecraftItemTypes2["ExposedCopperTrapdoor"] = "minecraft:exposed_copper_trapdoor";
  MinecraftItemTypes2["ExposedCutCopper"] = "minecraft:exposed_cut_copper";
  MinecraftItemTypes2["ExposedCutCopperSlab"] = "minecraft:exposed_cut_copper_slab";
  MinecraftItemTypes2["ExposedCutCopperStairs"] = "minecraft:exposed_cut_copper_stairs";
  MinecraftItemTypes2["EyeArmorTrimSmithingTemplate"] = "minecraft:eye_armor_trim_smithing_template";
  MinecraftItemTypes2["Farmland"] = "minecraft:farmland";
  MinecraftItemTypes2["Feather"] = "minecraft:feather";
  MinecraftItemTypes2["FenceGate"] = "minecraft:fence_gate";
  MinecraftItemTypes2["FermentedSpiderEye"] = "minecraft:fermented_spider_eye";
  MinecraftItemTypes2["Fern"] = "minecraft:fern";
  MinecraftItemTypes2["FieldMasonedBannerPattern"] = "minecraft:field_masoned_banner_pattern";
  MinecraftItemTypes2["FilledMap"] = "minecraft:filled_map";
  MinecraftItemTypes2["FireCharge"] = "minecraft:fire_charge";
  MinecraftItemTypes2["FireCoral"] = "minecraft:fire_coral";
  MinecraftItemTypes2["FireCoralBlock"] = "minecraft:fire_coral_block";
  MinecraftItemTypes2["FireCoralFan"] = "minecraft:fire_coral_fan";
  MinecraftItemTypes2["FireflyBush"] = "minecraft:firefly_bush";
  MinecraftItemTypes2["FireworkRocket"] = "minecraft:firework_rocket";
  MinecraftItemTypes2["FireworkStar"] = "minecraft:firework_star";
  MinecraftItemTypes2["FishingRod"] = "minecraft:fishing_rod";
  MinecraftItemTypes2["FletchingTable"] = "minecraft:fletching_table";
  MinecraftItemTypes2["Flint"] = "minecraft:flint";
  MinecraftItemTypes2["FlintAndSteel"] = "minecraft:flint_and_steel";
  MinecraftItemTypes2["FlowArmorTrimSmithingTemplate"] = "minecraft:flow_armor_trim_smithing_template";
  MinecraftItemTypes2["FlowBannerPattern"] = "minecraft:flow_banner_pattern";
  MinecraftItemTypes2["FlowPotterySherd"] = "minecraft:flow_pottery_sherd";
  MinecraftItemTypes2["FlowerBannerPattern"] = "minecraft:flower_banner_pattern";
  MinecraftItemTypes2["FlowerPot"] = "minecraft:flower_pot";
  MinecraftItemTypes2["FloweringAzalea"] = "minecraft:flowering_azalea";
  MinecraftItemTypes2["FoxSpawnEgg"] = "minecraft:fox_spawn_egg";
  MinecraftItemTypes2["Frame"] = "minecraft:frame";
  MinecraftItemTypes2["FriendPotterySherd"] = "minecraft:friend_pottery_sherd";
  MinecraftItemTypes2["FrogSpawn"] = "minecraft:frog_spawn";
  MinecraftItemTypes2["FrogSpawnEgg"] = "minecraft:frog_spawn_egg";
  MinecraftItemTypes2["FrostedIce"] = "minecraft:frosted_ice";
  MinecraftItemTypes2["Furnace"] = "minecraft:furnace";
  MinecraftItemTypes2["GhastSpawnEgg"] = "minecraft:ghast_spawn_egg";
  MinecraftItemTypes2["GhastTear"] = "minecraft:ghast_tear";
  MinecraftItemTypes2["GildedBlackstone"] = "minecraft:gilded_blackstone";
  MinecraftItemTypes2["Glass"] = "minecraft:glass";
  MinecraftItemTypes2["GlassBottle"] = "minecraft:glass_bottle";
  MinecraftItemTypes2["GlassPane"] = "minecraft:glass_pane";
  MinecraftItemTypes2["GlisteringMelonSlice"] = "minecraft:glistering_melon_slice";
  MinecraftItemTypes2["GlobeBannerPattern"] = "minecraft:globe_banner_pattern";
  MinecraftItemTypes2["GlowBerries"] = "minecraft:glow_berries";
  MinecraftItemTypes2["GlowFrame"] = "minecraft:glow_frame";
  MinecraftItemTypes2["GlowInkSac"] = "minecraft:glow_ink_sac";
  MinecraftItemTypes2["GlowLichen"] = "minecraft:glow_lichen";
  MinecraftItemTypes2["GlowSquidSpawnEgg"] = "minecraft:glow_squid_spawn_egg";
  MinecraftItemTypes2["Glowstone"] = "minecraft:glowstone";
  MinecraftItemTypes2["GlowstoneDust"] = "minecraft:glowstone_dust";
  MinecraftItemTypes2["GoatHorn"] = "minecraft:goat_horn";
  MinecraftItemTypes2["GoatSpawnEgg"] = "minecraft:goat_spawn_egg";
  MinecraftItemTypes2["GoldBlock"] = "minecraft:gold_block";
  MinecraftItemTypes2["GoldIngot"] = "minecraft:gold_ingot";
  MinecraftItemTypes2["GoldNugget"] = "minecraft:gold_nugget";
  MinecraftItemTypes2["GoldOre"] = "minecraft:gold_ore";
  MinecraftItemTypes2["GoldenApple"] = "minecraft:golden_apple";
  MinecraftItemTypes2["GoldenAxe"] = "minecraft:golden_axe";
  MinecraftItemTypes2["GoldenBoots"] = "minecraft:golden_boots";
  MinecraftItemTypes2["GoldenCarrot"] = "minecraft:golden_carrot";
  MinecraftItemTypes2["GoldenChestplate"] = "minecraft:golden_chestplate";
  MinecraftItemTypes2["GoldenHelmet"] = "minecraft:golden_helmet";
  MinecraftItemTypes2["GoldenHoe"] = "minecraft:golden_hoe";
  MinecraftItemTypes2["GoldenHorseArmor"] = "minecraft:golden_horse_armor";
  MinecraftItemTypes2["GoldenLeggings"] = "minecraft:golden_leggings";
  MinecraftItemTypes2["GoldenPickaxe"] = "minecraft:golden_pickaxe";
  MinecraftItemTypes2["GoldenRail"] = "minecraft:golden_rail";
  MinecraftItemTypes2["GoldenShovel"] = "minecraft:golden_shovel";
  MinecraftItemTypes2["GoldenSword"] = "minecraft:golden_sword";
  MinecraftItemTypes2["Granite"] = "minecraft:granite";
  MinecraftItemTypes2["GraniteSlab"] = "minecraft:granite_slab";
  MinecraftItemTypes2["GraniteStairs"] = "minecraft:granite_stairs";
  MinecraftItemTypes2["GraniteWall"] = "minecraft:granite_wall";
  MinecraftItemTypes2["GrassBlock"] = "minecraft:grass_block";
  MinecraftItemTypes2["GrassPath"] = "minecraft:grass_path";
  MinecraftItemTypes2["Gravel"] = "minecraft:gravel";
  MinecraftItemTypes2["GrayBundle"] = "minecraft:gray_bundle";
  MinecraftItemTypes2["GrayCandle"] = "minecraft:gray_candle";
  MinecraftItemTypes2["GrayCarpet"] = "minecraft:gray_carpet";
  MinecraftItemTypes2["GrayConcrete"] = "minecraft:gray_concrete";
  MinecraftItemTypes2["GrayConcretePowder"] = "minecraft:gray_concrete_powder";
  MinecraftItemTypes2["GrayDye"] = "minecraft:gray_dye";
  MinecraftItemTypes2["GrayGlazedTerracotta"] = "minecraft:gray_glazed_terracotta";
  MinecraftItemTypes2["GrayHarness"] = "minecraft:gray_harness";
  MinecraftItemTypes2["GrayShulkerBox"] = "minecraft:gray_shulker_box";
  MinecraftItemTypes2["GrayStainedGlass"] = "minecraft:gray_stained_glass";
  MinecraftItemTypes2["GrayStainedGlassPane"] = "minecraft:gray_stained_glass_pane";
  MinecraftItemTypes2["GrayTerracotta"] = "minecraft:gray_terracotta";
  MinecraftItemTypes2["GrayWool"] = "minecraft:gray_wool";
  MinecraftItemTypes2["GreenBundle"] = "minecraft:green_bundle";
  MinecraftItemTypes2["GreenCandle"] = "minecraft:green_candle";
  MinecraftItemTypes2["GreenCarpet"] = "minecraft:green_carpet";
  MinecraftItemTypes2["GreenConcrete"] = "minecraft:green_concrete";
  MinecraftItemTypes2["GreenConcretePowder"] = "minecraft:green_concrete_powder";
  MinecraftItemTypes2["GreenDye"] = "minecraft:green_dye";
  MinecraftItemTypes2["GreenGlazedTerracotta"] = "minecraft:green_glazed_terracotta";
  MinecraftItemTypes2["GreenHarness"] = "minecraft:green_harness";
  MinecraftItemTypes2["GreenShulkerBox"] = "minecraft:green_shulker_box";
  MinecraftItemTypes2["GreenStainedGlass"] = "minecraft:green_stained_glass";
  MinecraftItemTypes2["GreenStainedGlassPane"] = "minecraft:green_stained_glass_pane";
  MinecraftItemTypes2["GreenTerracotta"] = "minecraft:green_terracotta";
  MinecraftItemTypes2["GreenWool"] = "minecraft:green_wool";
  MinecraftItemTypes2["Grindstone"] = "minecraft:grindstone";
  MinecraftItemTypes2["GuardianSpawnEgg"] = "minecraft:guardian_spawn_egg";
  MinecraftItemTypes2["Gunpowder"] = "minecraft:gunpowder";
  MinecraftItemTypes2["GusterBannerPattern"] = "minecraft:guster_banner_pattern";
  MinecraftItemTypes2["GusterPotterySherd"] = "minecraft:guster_pottery_sherd";
  MinecraftItemTypes2["HangingRoots"] = "minecraft:hanging_roots";
  MinecraftItemTypes2["HappyGhastSpawnEgg"] = "minecraft:happy_ghast_spawn_egg";
  MinecraftItemTypes2["HardenedClay"] = "minecraft:hardened_clay";
  MinecraftItemTypes2["HayBlock"] = "minecraft:hay_block";
  MinecraftItemTypes2["HeartOfTheSea"] = "minecraft:heart_of_the_sea";
  MinecraftItemTypes2["HeartPotterySherd"] = "minecraft:heart_pottery_sherd";
  MinecraftItemTypes2["HeartbreakPotterySherd"] = "minecraft:heartbreak_pottery_sherd";
  MinecraftItemTypes2["HeavyCore"] = "minecraft:heavy_core";
  MinecraftItemTypes2["HeavyWeightedPressurePlate"] = "minecraft:heavy_weighted_pressure_plate";
  MinecraftItemTypes2["HoglinSpawnEgg"] = "minecraft:hoglin_spawn_egg";
  MinecraftItemTypes2["HoneyBlock"] = "minecraft:honey_block";
  MinecraftItemTypes2["HoneyBottle"] = "minecraft:honey_bottle";
  MinecraftItemTypes2["Honeycomb"] = "minecraft:honeycomb";
  MinecraftItemTypes2["HoneycombBlock"] = "minecraft:honeycomb_block";
  MinecraftItemTypes2["Hopper"] = "minecraft:hopper";
  MinecraftItemTypes2["HopperMinecart"] = "minecraft:hopper_minecart";
  MinecraftItemTypes2["HornCoral"] = "minecraft:horn_coral";
  MinecraftItemTypes2["HornCoralBlock"] = "minecraft:horn_coral_block";
  MinecraftItemTypes2["HornCoralFan"] = "minecraft:horn_coral_fan";
  MinecraftItemTypes2["HorseSpawnEgg"] = "minecraft:horse_spawn_egg";
  MinecraftItemTypes2["HostArmorTrimSmithingTemplate"] = "minecraft:host_armor_trim_smithing_template";
  MinecraftItemTypes2["HowlPotterySherd"] = "minecraft:howl_pottery_sherd";
  MinecraftItemTypes2["HuskSpawnEgg"] = "minecraft:husk_spawn_egg";
  MinecraftItemTypes2["Ice"] = "minecraft:ice";
  MinecraftItemTypes2["InfestedChiseledStoneBricks"] = "minecraft:infested_chiseled_stone_bricks";
  MinecraftItemTypes2["InfestedCobblestone"] = "minecraft:infested_cobblestone";
  MinecraftItemTypes2["InfestedCrackedStoneBricks"] = "minecraft:infested_cracked_stone_bricks";
  MinecraftItemTypes2["InfestedDeepslate"] = "minecraft:infested_deepslate";
  MinecraftItemTypes2["InfestedMossyStoneBricks"] = "minecraft:infested_mossy_stone_bricks";
  MinecraftItemTypes2["InfestedStone"] = "minecraft:infested_stone";
  MinecraftItemTypes2["InfestedStoneBricks"] = "minecraft:infested_stone_bricks";
  MinecraftItemTypes2["InkSac"] = "minecraft:ink_sac";
  MinecraftItemTypes2["IronAxe"] = "minecraft:iron_axe";
  MinecraftItemTypes2["IronBars"] = "minecraft:iron_bars";
  MinecraftItemTypes2["IronBlock"] = "minecraft:iron_block";
  MinecraftItemTypes2["IronBoots"] = "minecraft:iron_boots";
  MinecraftItemTypes2["IronChestplate"] = "minecraft:iron_chestplate";
  MinecraftItemTypes2["IronDoor"] = "minecraft:iron_door";
  MinecraftItemTypes2["IronGolemSpawnEgg"] = "minecraft:iron_golem_spawn_egg";
  MinecraftItemTypes2["IronHelmet"] = "minecraft:iron_helmet";
  MinecraftItemTypes2["IronHoe"] = "minecraft:iron_hoe";
  MinecraftItemTypes2["IronHorseArmor"] = "minecraft:iron_horse_armor";
  MinecraftItemTypes2["IronIngot"] = "minecraft:iron_ingot";
  MinecraftItemTypes2["IronLeggings"] = "minecraft:iron_leggings";
  MinecraftItemTypes2["IronNugget"] = "minecraft:iron_nugget";
  MinecraftItemTypes2["IronOre"] = "minecraft:iron_ore";
  MinecraftItemTypes2["IronPickaxe"] = "minecraft:iron_pickaxe";
  MinecraftItemTypes2["IronShovel"] = "minecraft:iron_shovel";
  MinecraftItemTypes2["IronSword"] = "minecraft:iron_sword";
  MinecraftItemTypes2["IronTrapdoor"] = "minecraft:iron_trapdoor";
  MinecraftItemTypes2["Jigsaw"] = "minecraft:jigsaw";
  MinecraftItemTypes2["Jukebox"] = "minecraft:jukebox";
  MinecraftItemTypes2["JungleBoat"] = "minecraft:jungle_boat";
  MinecraftItemTypes2["JungleButton"] = "minecraft:jungle_button";
  MinecraftItemTypes2["JungleChestBoat"] = "minecraft:jungle_chest_boat";
  MinecraftItemTypes2["JungleDoor"] = "minecraft:jungle_door";
  MinecraftItemTypes2["JungleFence"] = "minecraft:jungle_fence";
  MinecraftItemTypes2["JungleFenceGate"] = "minecraft:jungle_fence_gate";
  MinecraftItemTypes2["JungleHangingSign"] = "minecraft:jungle_hanging_sign";
  MinecraftItemTypes2["JungleLeaves"] = "minecraft:jungle_leaves";
  MinecraftItemTypes2["JungleLog"] = "minecraft:jungle_log";
  MinecraftItemTypes2["JunglePlanks"] = "minecraft:jungle_planks";
  MinecraftItemTypes2["JunglePressurePlate"] = "minecraft:jungle_pressure_plate";
  MinecraftItemTypes2["JungleSapling"] = "minecraft:jungle_sapling";
  MinecraftItemTypes2["JungleSign"] = "minecraft:jungle_sign";
  MinecraftItemTypes2["JungleSlab"] = "minecraft:jungle_slab";
  MinecraftItemTypes2["JungleStairs"] = "minecraft:jungle_stairs";
  MinecraftItemTypes2["JungleTrapdoor"] = "minecraft:jungle_trapdoor";
  MinecraftItemTypes2["JungleWood"] = "minecraft:jungle_wood";
  MinecraftItemTypes2["Kelp"] = "minecraft:kelp";
  MinecraftItemTypes2["Ladder"] = "minecraft:ladder";
  MinecraftItemTypes2["Lantern"] = "minecraft:lantern";
  MinecraftItemTypes2["LapisBlock"] = "minecraft:lapis_block";
  MinecraftItemTypes2["LapisLazuli"] = "minecraft:lapis_lazuli";
  MinecraftItemTypes2["LapisOre"] = "minecraft:lapis_ore";
  MinecraftItemTypes2["LargeAmethystBud"] = "minecraft:large_amethyst_bud";
  MinecraftItemTypes2["LargeFern"] = "minecraft:large_fern";
  MinecraftItemTypes2["LavaBucket"] = "minecraft:lava_bucket";
  MinecraftItemTypes2["Lead"] = "minecraft:lead";
  MinecraftItemTypes2["LeafLitter"] = "minecraft:leaf_litter";
  MinecraftItemTypes2["Leather"] = "minecraft:leather";
  MinecraftItemTypes2["LeatherBoots"] = "minecraft:leather_boots";
  MinecraftItemTypes2["LeatherChestplate"] = "minecraft:leather_chestplate";
  MinecraftItemTypes2["LeatherHelmet"] = "minecraft:leather_helmet";
  MinecraftItemTypes2["LeatherHorseArmor"] = "minecraft:leather_horse_armor";
  MinecraftItemTypes2["LeatherLeggings"] = "minecraft:leather_leggings";
  MinecraftItemTypes2["Lectern"] = "minecraft:lectern";
  MinecraftItemTypes2["Lever"] = "minecraft:lever";
  MinecraftItemTypes2["LightBlock0"] = "minecraft:light_block_0";
  MinecraftItemTypes2["LightBlock1"] = "minecraft:light_block_1";
  MinecraftItemTypes2["LightBlock10"] = "minecraft:light_block_10";
  MinecraftItemTypes2["LightBlock11"] = "minecraft:light_block_11";
  MinecraftItemTypes2["LightBlock12"] = "minecraft:light_block_12";
  MinecraftItemTypes2["LightBlock13"] = "minecraft:light_block_13";
  MinecraftItemTypes2["LightBlock14"] = "minecraft:light_block_14";
  MinecraftItemTypes2["LightBlock15"] = "minecraft:light_block_15";
  MinecraftItemTypes2["LightBlock2"] = "minecraft:light_block_2";
  MinecraftItemTypes2["LightBlock3"] = "minecraft:light_block_3";
  MinecraftItemTypes2["LightBlock4"] = "minecraft:light_block_4";
  MinecraftItemTypes2["LightBlock5"] = "minecraft:light_block_5";
  MinecraftItemTypes2["LightBlock6"] = "minecraft:light_block_6";
  MinecraftItemTypes2["LightBlock7"] = "minecraft:light_block_7";
  MinecraftItemTypes2["LightBlock8"] = "minecraft:light_block_8";
  MinecraftItemTypes2["LightBlock9"] = "minecraft:light_block_9";
  MinecraftItemTypes2["LightBlueBundle"] = "minecraft:light_blue_bundle";
  MinecraftItemTypes2["LightBlueCandle"] = "minecraft:light_blue_candle";
  MinecraftItemTypes2["LightBlueCarpet"] = "minecraft:light_blue_carpet";
  MinecraftItemTypes2["LightBlueConcrete"] = "minecraft:light_blue_concrete";
  MinecraftItemTypes2["LightBlueConcretePowder"] = "minecraft:light_blue_concrete_powder";
  MinecraftItemTypes2["LightBlueDye"] = "minecraft:light_blue_dye";
  MinecraftItemTypes2["LightBlueGlazedTerracotta"] = "minecraft:light_blue_glazed_terracotta";
  MinecraftItemTypes2["LightBlueHarness"] = "minecraft:light_blue_harness";
  MinecraftItemTypes2["LightBlueShulkerBox"] = "minecraft:light_blue_shulker_box";
  MinecraftItemTypes2["LightBlueStainedGlass"] = "minecraft:light_blue_stained_glass";
  MinecraftItemTypes2["LightBlueStainedGlassPane"] = "minecraft:light_blue_stained_glass_pane";
  MinecraftItemTypes2["LightBlueTerracotta"] = "minecraft:light_blue_terracotta";
  MinecraftItemTypes2["LightBlueWool"] = "minecraft:light_blue_wool";
  MinecraftItemTypes2["LightGrayBundle"] = "minecraft:light_gray_bundle";
  MinecraftItemTypes2["LightGrayCandle"] = "minecraft:light_gray_candle";
  MinecraftItemTypes2["LightGrayCarpet"] = "minecraft:light_gray_carpet";
  MinecraftItemTypes2["LightGrayConcrete"] = "minecraft:light_gray_concrete";
  MinecraftItemTypes2["LightGrayConcretePowder"] = "minecraft:light_gray_concrete_powder";
  MinecraftItemTypes2["LightGrayDye"] = "minecraft:light_gray_dye";
  MinecraftItemTypes2["LightGrayHarness"] = "minecraft:light_gray_harness";
  MinecraftItemTypes2["LightGrayShulkerBox"] = "minecraft:light_gray_shulker_box";
  MinecraftItemTypes2["LightGrayStainedGlass"] = "minecraft:light_gray_stained_glass";
  MinecraftItemTypes2["LightGrayStainedGlassPane"] = "minecraft:light_gray_stained_glass_pane";
  MinecraftItemTypes2["LightGrayTerracotta"] = "minecraft:light_gray_terracotta";
  MinecraftItemTypes2["LightGrayWool"] = "minecraft:light_gray_wool";
  MinecraftItemTypes2["LightWeightedPressurePlate"] = "minecraft:light_weighted_pressure_plate";
  MinecraftItemTypes2["LightningRod"] = "minecraft:lightning_rod";
  MinecraftItemTypes2["Lilac"] = "minecraft:lilac";
  MinecraftItemTypes2["LilyOfTheValley"] = "minecraft:lily_of_the_valley";
  MinecraftItemTypes2["LimeBundle"] = "minecraft:lime_bundle";
  MinecraftItemTypes2["LimeCandle"] = "minecraft:lime_candle";
  MinecraftItemTypes2["LimeCarpet"] = "minecraft:lime_carpet";
  MinecraftItemTypes2["LimeConcrete"] = "minecraft:lime_concrete";
  MinecraftItemTypes2["LimeConcretePowder"] = "minecraft:lime_concrete_powder";
  MinecraftItemTypes2["LimeDye"] = "minecraft:lime_dye";
  MinecraftItemTypes2["LimeGlazedTerracotta"] = "minecraft:lime_glazed_terracotta";
  MinecraftItemTypes2["LimeHarness"] = "minecraft:lime_harness";
  MinecraftItemTypes2["LimeShulkerBox"] = "minecraft:lime_shulker_box";
  MinecraftItemTypes2["LimeStainedGlass"] = "minecraft:lime_stained_glass";
  MinecraftItemTypes2["LimeStainedGlassPane"] = "minecraft:lime_stained_glass_pane";
  MinecraftItemTypes2["LimeTerracotta"] = "minecraft:lime_terracotta";
  MinecraftItemTypes2["LimeWool"] = "minecraft:lime_wool";
  MinecraftItemTypes2["LingeringPotion"] = "minecraft:lingering_potion";
  MinecraftItemTypes2["LitPumpkin"] = "minecraft:lit_pumpkin";
  MinecraftItemTypes2["LlamaSpawnEgg"] = "minecraft:llama_spawn_egg";
  MinecraftItemTypes2["Lodestone"] = "minecraft:lodestone";
  MinecraftItemTypes2["LodestoneCompass"] = "minecraft:lodestone_compass";
  MinecraftItemTypes2["Loom"] = "minecraft:loom";
  MinecraftItemTypes2["Mace"] = "minecraft:mace";
  MinecraftItemTypes2["MagentaBundle"] = "minecraft:magenta_bundle";
  MinecraftItemTypes2["MagentaCandle"] = "minecraft:magenta_candle";
  MinecraftItemTypes2["MagentaCarpet"] = "minecraft:magenta_carpet";
  MinecraftItemTypes2["MagentaConcrete"] = "minecraft:magenta_concrete";
  MinecraftItemTypes2["MagentaConcretePowder"] = "minecraft:magenta_concrete_powder";
  MinecraftItemTypes2["MagentaDye"] = "minecraft:magenta_dye";
  MinecraftItemTypes2["MagentaGlazedTerracotta"] = "minecraft:magenta_glazed_terracotta";
  MinecraftItemTypes2["MagentaHarness"] = "minecraft:magenta_harness";
  MinecraftItemTypes2["MagentaShulkerBox"] = "minecraft:magenta_shulker_box";
  MinecraftItemTypes2["MagentaStainedGlass"] = "minecraft:magenta_stained_glass";
  MinecraftItemTypes2["MagentaStainedGlassPane"] = "minecraft:magenta_stained_glass_pane";
  MinecraftItemTypes2["MagentaTerracotta"] = "minecraft:magenta_terracotta";
  MinecraftItemTypes2["MagentaWool"] = "minecraft:magenta_wool";
  MinecraftItemTypes2["Magma"] = "minecraft:magma";
  MinecraftItemTypes2["MagmaCream"] = "minecraft:magma_cream";
  MinecraftItemTypes2["MagmaCubeSpawnEgg"] = "minecraft:magma_cube_spawn_egg";
  MinecraftItemTypes2["MangroveBoat"] = "minecraft:mangrove_boat";
  MinecraftItemTypes2["MangroveButton"] = "minecraft:mangrove_button";
  MinecraftItemTypes2["MangroveChestBoat"] = "minecraft:mangrove_chest_boat";
  MinecraftItemTypes2["MangroveDoor"] = "minecraft:mangrove_door";
  MinecraftItemTypes2["MangroveFence"] = "minecraft:mangrove_fence";
  MinecraftItemTypes2["MangroveFenceGate"] = "minecraft:mangrove_fence_gate";
  MinecraftItemTypes2["MangroveHangingSign"] = "minecraft:mangrove_hanging_sign";
  MinecraftItemTypes2["MangroveLeaves"] = "minecraft:mangrove_leaves";
  MinecraftItemTypes2["MangroveLog"] = "minecraft:mangrove_log";
  MinecraftItemTypes2["MangrovePlanks"] = "minecraft:mangrove_planks";
  MinecraftItemTypes2["MangrovePressurePlate"] = "minecraft:mangrove_pressure_plate";
  MinecraftItemTypes2["MangrovePropagule"] = "minecraft:mangrove_propagule";
  MinecraftItemTypes2["MangroveRoots"] = "minecraft:mangrove_roots";
  MinecraftItemTypes2["MangroveSign"] = "minecraft:mangrove_sign";
  MinecraftItemTypes2["MangroveSlab"] = "minecraft:mangrove_slab";
  MinecraftItemTypes2["MangroveStairs"] = "minecraft:mangrove_stairs";
  MinecraftItemTypes2["MangroveTrapdoor"] = "minecraft:mangrove_trapdoor";
  MinecraftItemTypes2["MangroveWood"] = "minecraft:mangrove_wood";
  MinecraftItemTypes2["MediumAmethystBud"] = "minecraft:medium_amethyst_bud";
  MinecraftItemTypes2["MelonBlock"] = "minecraft:melon_block";
  MinecraftItemTypes2["MelonSeeds"] = "minecraft:melon_seeds";
  MinecraftItemTypes2["MelonSlice"] = "minecraft:melon_slice";
  MinecraftItemTypes2["MilkBucket"] = "minecraft:milk_bucket";
  MinecraftItemTypes2["Minecart"] = "minecraft:minecart";
  MinecraftItemTypes2["MinerPotterySherd"] = "minecraft:miner_pottery_sherd";
  MinecraftItemTypes2["MobSpawner"] = "minecraft:mob_spawner";
  MinecraftItemTypes2["MojangBannerPattern"] = "minecraft:mojang_banner_pattern";
  MinecraftItemTypes2["MooshroomSpawnEgg"] = "minecraft:mooshroom_spawn_egg";
  MinecraftItemTypes2["MossBlock"] = "minecraft:moss_block";
  MinecraftItemTypes2["MossCarpet"] = "minecraft:moss_carpet";
  MinecraftItemTypes2["MossyCobblestone"] = "minecraft:mossy_cobblestone";
  MinecraftItemTypes2["MossyCobblestoneSlab"] = "minecraft:mossy_cobblestone_slab";
  MinecraftItemTypes2["MossyCobblestoneStairs"] = "minecraft:mossy_cobblestone_stairs";
  MinecraftItemTypes2["MossyCobblestoneWall"] = "minecraft:mossy_cobblestone_wall";
  MinecraftItemTypes2["MossyStoneBrickSlab"] = "minecraft:mossy_stone_brick_slab";
  MinecraftItemTypes2["MossyStoneBrickStairs"] = "minecraft:mossy_stone_brick_stairs";
  MinecraftItemTypes2["MossyStoneBrickWall"] = "minecraft:mossy_stone_brick_wall";
  MinecraftItemTypes2["MossyStoneBricks"] = "minecraft:mossy_stone_bricks";
  MinecraftItemTypes2["MournerPotterySherd"] = "minecraft:mourner_pottery_sherd";
  MinecraftItemTypes2["Mud"] = "minecraft:mud";
  MinecraftItemTypes2["MudBrickSlab"] = "minecraft:mud_brick_slab";
  MinecraftItemTypes2["MudBrickStairs"] = "minecraft:mud_brick_stairs";
  MinecraftItemTypes2["MudBrickWall"] = "minecraft:mud_brick_wall";
  MinecraftItemTypes2["MudBricks"] = "minecraft:mud_bricks";
  MinecraftItemTypes2["MuddyMangroveRoots"] = "minecraft:muddy_mangrove_roots";
  MinecraftItemTypes2["MuleSpawnEgg"] = "minecraft:mule_spawn_egg";
  MinecraftItemTypes2["MushroomStem"] = "minecraft:mushroom_stem";
  MinecraftItemTypes2["MushroomStew"] = "minecraft:mushroom_stew";
  MinecraftItemTypes2["MusicDisc11"] = "minecraft:music_disc_11";
  MinecraftItemTypes2["MusicDisc13"] = "minecraft:music_disc_13";
  MinecraftItemTypes2["MusicDisc5"] = "minecraft:music_disc_5";
  MinecraftItemTypes2["MusicDiscBlocks"] = "minecraft:music_disc_blocks";
  MinecraftItemTypes2["MusicDiscCat"] = "minecraft:music_disc_cat";
  MinecraftItemTypes2["MusicDiscChirp"] = "minecraft:music_disc_chirp";
  MinecraftItemTypes2["MusicDiscCreator"] = "minecraft:music_disc_creator";
  MinecraftItemTypes2["MusicDiscCreatorMusicBox"] = "minecraft:music_disc_creator_music_box";
  MinecraftItemTypes2["MusicDiscFar"] = "minecraft:music_disc_far";
  MinecraftItemTypes2["MusicDiscLavaChicken"] = "minecraft:music_disc_lava_chicken";
  MinecraftItemTypes2["MusicDiscMall"] = "minecraft:music_disc_mall";
  MinecraftItemTypes2["MusicDiscMellohi"] = "minecraft:music_disc_mellohi";
  MinecraftItemTypes2["MusicDiscOtherside"] = "minecraft:music_disc_otherside";
  MinecraftItemTypes2["MusicDiscPigstep"] = "minecraft:music_disc_pigstep";
  MinecraftItemTypes2["MusicDiscPrecipice"] = "minecraft:music_disc_precipice";
  MinecraftItemTypes2["MusicDiscRelic"] = "minecraft:music_disc_relic";
  MinecraftItemTypes2["MusicDiscStal"] = "minecraft:music_disc_stal";
  MinecraftItemTypes2["MusicDiscStrad"] = "minecraft:music_disc_strad";
  MinecraftItemTypes2["MusicDiscTears"] = "minecraft:music_disc_tears";
  MinecraftItemTypes2["MusicDiscWait"] = "minecraft:music_disc_wait";
  MinecraftItemTypes2["MusicDiscWard"] = "minecraft:music_disc_ward";
  MinecraftItemTypes2["Mutton"] = "minecraft:mutton";
  MinecraftItemTypes2["Mycelium"] = "minecraft:mycelium";
  MinecraftItemTypes2["NameTag"] = "minecraft:name_tag";
  MinecraftItemTypes2["NautilusShell"] = "minecraft:nautilus_shell";
  MinecraftItemTypes2["NetherBrick"] = "minecraft:nether_brick";
  MinecraftItemTypes2["NetherBrickFence"] = "minecraft:nether_brick_fence";
  MinecraftItemTypes2["NetherBrickSlab"] = "minecraft:nether_brick_slab";
  MinecraftItemTypes2["NetherBrickStairs"] = "minecraft:nether_brick_stairs";
  MinecraftItemTypes2["NetherBrickWall"] = "minecraft:nether_brick_wall";
  MinecraftItemTypes2["NetherGoldOre"] = "minecraft:nether_gold_ore";
  MinecraftItemTypes2["NetherSprouts"] = "minecraft:nether_sprouts";
  MinecraftItemTypes2["NetherStar"] = "minecraft:nether_star";
  MinecraftItemTypes2["NetherWart"] = "minecraft:nether_wart";
  MinecraftItemTypes2["NetherWartBlock"] = "minecraft:nether_wart_block";
  MinecraftItemTypes2["Netherbrick"] = "minecraft:netherbrick";
  MinecraftItemTypes2["NetheriteAxe"] = "minecraft:netherite_axe";
  MinecraftItemTypes2["NetheriteBlock"] = "minecraft:netherite_block";
  MinecraftItemTypes2["NetheriteBoots"] = "minecraft:netherite_boots";
  MinecraftItemTypes2["NetheriteChestplate"] = "minecraft:netherite_chestplate";
  MinecraftItemTypes2["NetheriteHelmet"] = "minecraft:netherite_helmet";
  MinecraftItemTypes2["NetheriteHoe"] = "minecraft:netherite_hoe";
  MinecraftItemTypes2["NetheriteIngot"] = "minecraft:netherite_ingot";
  MinecraftItemTypes2["NetheriteLeggings"] = "minecraft:netherite_leggings";
  MinecraftItemTypes2["NetheritePickaxe"] = "minecraft:netherite_pickaxe";
  MinecraftItemTypes2["NetheriteScrap"] = "minecraft:netherite_scrap";
  MinecraftItemTypes2["NetheriteShovel"] = "minecraft:netherite_shovel";
  MinecraftItemTypes2["NetheriteSword"] = "minecraft:netherite_sword";
  MinecraftItemTypes2["NetheriteUpgradeSmithingTemplate"] = "minecraft:netherite_upgrade_smithing_template";
  MinecraftItemTypes2["Netherrack"] = "minecraft:netherrack";
  MinecraftItemTypes2["NormalStoneSlab"] = "minecraft:normal_stone_slab";
  MinecraftItemTypes2["NormalStoneStairs"] = "minecraft:normal_stone_stairs";
  MinecraftItemTypes2["Noteblock"] = "minecraft:noteblock";
  MinecraftItemTypes2["OakBoat"] = "minecraft:oak_boat";
  MinecraftItemTypes2["OakChestBoat"] = "minecraft:oak_chest_boat";
  MinecraftItemTypes2["OakFence"] = "minecraft:oak_fence";
  MinecraftItemTypes2["OakHangingSign"] = "minecraft:oak_hanging_sign";
  MinecraftItemTypes2["OakLeaves"] = "minecraft:oak_leaves";
  MinecraftItemTypes2["OakLog"] = "minecraft:oak_log";
  MinecraftItemTypes2["OakPlanks"] = "minecraft:oak_planks";
  MinecraftItemTypes2["OakSapling"] = "minecraft:oak_sapling";
  MinecraftItemTypes2["OakSign"] = "minecraft:oak_sign";
  MinecraftItemTypes2["OakSlab"] = "minecraft:oak_slab";
  MinecraftItemTypes2["OakStairs"] = "minecraft:oak_stairs";
  MinecraftItemTypes2["OakWood"] = "minecraft:oak_wood";
  MinecraftItemTypes2["Observer"] = "minecraft:observer";
  MinecraftItemTypes2["Obsidian"] = "minecraft:obsidian";
  MinecraftItemTypes2["OcelotSpawnEgg"] = "minecraft:ocelot_spawn_egg";
  MinecraftItemTypes2["OchreFroglight"] = "minecraft:ochre_froglight";
  MinecraftItemTypes2["OminousBottle"] = "minecraft:ominous_bottle";
  MinecraftItemTypes2["OminousTrialKey"] = "minecraft:ominous_trial_key";
  MinecraftItemTypes2["OpenEyeblossom"] = "minecraft:open_eyeblossom";
  MinecraftItemTypes2["OrangeBundle"] = "minecraft:orange_bundle";
  MinecraftItemTypes2["OrangeCandle"] = "minecraft:orange_candle";
  MinecraftItemTypes2["OrangeCarpet"] = "minecraft:orange_carpet";
  MinecraftItemTypes2["OrangeConcrete"] = "minecraft:orange_concrete";
  MinecraftItemTypes2["OrangeConcretePowder"] = "minecraft:orange_concrete_powder";
  MinecraftItemTypes2["OrangeDye"] = "minecraft:orange_dye";
  MinecraftItemTypes2["OrangeGlazedTerracotta"] = "minecraft:orange_glazed_terracotta";
  MinecraftItemTypes2["OrangeHarness"] = "minecraft:orange_harness";
  MinecraftItemTypes2["OrangeShulkerBox"] = "minecraft:orange_shulker_box";
  MinecraftItemTypes2["OrangeStainedGlass"] = "minecraft:orange_stained_glass";
  MinecraftItemTypes2["OrangeStainedGlassPane"] = "minecraft:orange_stained_glass_pane";
  MinecraftItemTypes2["OrangeTerracotta"] = "minecraft:orange_terracotta";
  MinecraftItemTypes2["OrangeTulip"] = "minecraft:orange_tulip";
  MinecraftItemTypes2["OrangeWool"] = "minecraft:orange_wool";
  MinecraftItemTypes2["OxeyeDaisy"] = "minecraft:oxeye_daisy";
  MinecraftItemTypes2["OxidizedChiseledCopper"] = "minecraft:oxidized_chiseled_copper";
  MinecraftItemTypes2["OxidizedCopper"] = "minecraft:oxidized_copper";
  MinecraftItemTypes2["OxidizedCopperBulb"] = "minecraft:oxidized_copper_bulb";
  MinecraftItemTypes2["OxidizedCopperDoor"] = "minecraft:oxidized_copper_door";
  MinecraftItemTypes2["OxidizedCopperGrate"] = "minecraft:oxidized_copper_grate";
  MinecraftItemTypes2["OxidizedCopperTrapdoor"] = "minecraft:oxidized_copper_trapdoor";
  MinecraftItemTypes2["OxidizedCutCopper"] = "minecraft:oxidized_cut_copper";
  MinecraftItemTypes2["OxidizedCutCopperSlab"] = "minecraft:oxidized_cut_copper_slab";
  MinecraftItemTypes2["OxidizedCutCopperStairs"] = "minecraft:oxidized_cut_copper_stairs";
  MinecraftItemTypes2["PackedIce"] = "minecraft:packed_ice";
  MinecraftItemTypes2["PackedMud"] = "minecraft:packed_mud";
  MinecraftItemTypes2["Painting"] = "minecraft:painting";
  MinecraftItemTypes2["PaleHangingMoss"] = "minecraft:pale_hanging_moss";
  MinecraftItemTypes2["PaleMossBlock"] = "minecraft:pale_moss_block";
  MinecraftItemTypes2["PaleMossCarpet"] = "minecraft:pale_moss_carpet";
  MinecraftItemTypes2["PaleOakBoat"] = "minecraft:pale_oak_boat";
  MinecraftItemTypes2["PaleOakButton"] = "minecraft:pale_oak_button";
  MinecraftItemTypes2["PaleOakChestBoat"] = "minecraft:pale_oak_chest_boat";
  MinecraftItemTypes2["PaleOakDoor"] = "minecraft:pale_oak_door";
  MinecraftItemTypes2["PaleOakFence"] = "minecraft:pale_oak_fence";
  MinecraftItemTypes2["PaleOakFenceGate"] = "minecraft:pale_oak_fence_gate";
  MinecraftItemTypes2["PaleOakHangingSign"] = "minecraft:pale_oak_hanging_sign";
  MinecraftItemTypes2["PaleOakLeaves"] = "minecraft:pale_oak_leaves";
  MinecraftItemTypes2["PaleOakLog"] = "minecraft:pale_oak_log";
  MinecraftItemTypes2["PaleOakPlanks"] = "minecraft:pale_oak_planks";
  MinecraftItemTypes2["PaleOakPressurePlate"] = "minecraft:pale_oak_pressure_plate";
  MinecraftItemTypes2["PaleOakSapling"] = "minecraft:pale_oak_sapling";
  MinecraftItemTypes2["PaleOakSign"] = "minecraft:pale_oak_sign";
  MinecraftItemTypes2["PaleOakSlab"] = "minecraft:pale_oak_slab";
  MinecraftItemTypes2["PaleOakStairs"] = "minecraft:pale_oak_stairs";
  MinecraftItemTypes2["PaleOakTrapdoor"] = "minecraft:pale_oak_trapdoor";
  MinecraftItemTypes2["PaleOakWood"] = "minecraft:pale_oak_wood";
  MinecraftItemTypes2["PandaSpawnEgg"] = "minecraft:panda_spawn_egg";
  MinecraftItemTypes2["Paper"] = "minecraft:paper";
  MinecraftItemTypes2["ParrotSpawnEgg"] = "minecraft:parrot_spawn_egg";
  MinecraftItemTypes2["PearlescentFroglight"] = "minecraft:pearlescent_froglight";
  MinecraftItemTypes2["Peony"] = "minecraft:peony";
  MinecraftItemTypes2["PetrifiedOakSlab"] = "minecraft:petrified_oak_slab";
  MinecraftItemTypes2["PhantomMembrane"] = "minecraft:phantom_membrane";
  MinecraftItemTypes2["PhantomSpawnEgg"] = "minecraft:phantom_spawn_egg";
  MinecraftItemTypes2["PigSpawnEgg"] = "minecraft:pig_spawn_egg";
  MinecraftItemTypes2["PiglinBannerPattern"] = "minecraft:piglin_banner_pattern";
  MinecraftItemTypes2["PiglinBruteSpawnEgg"] = "minecraft:piglin_brute_spawn_egg";
  MinecraftItemTypes2["PiglinHead"] = "minecraft:piglin_head";
  MinecraftItemTypes2["PiglinSpawnEgg"] = "minecraft:piglin_spawn_egg";
  MinecraftItemTypes2["PillagerSpawnEgg"] = "minecraft:pillager_spawn_egg";
  MinecraftItemTypes2["PinkBundle"] = "minecraft:pink_bundle";
  MinecraftItemTypes2["PinkCandle"] = "minecraft:pink_candle";
  MinecraftItemTypes2["PinkCarpet"] = "minecraft:pink_carpet";
  MinecraftItemTypes2["PinkConcrete"] = "minecraft:pink_concrete";
  MinecraftItemTypes2["PinkConcretePowder"] = "minecraft:pink_concrete_powder";
  MinecraftItemTypes2["PinkDye"] = "minecraft:pink_dye";
  MinecraftItemTypes2["PinkGlazedTerracotta"] = "minecraft:pink_glazed_terracotta";
  MinecraftItemTypes2["PinkHarness"] = "minecraft:pink_harness";
  MinecraftItemTypes2["PinkPetals"] = "minecraft:pink_petals";
  MinecraftItemTypes2["PinkShulkerBox"] = "minecraft:pink_shulker_box";
  MinecraftItemTypes2["PinkStainedGlass"] = "minecraft:pink_stained_glass";
  MinecraftItemTypes2["PinkStainedGlassPane"] = "minecraft:pink_stained_glass_pane";
  MinecraftItemTypes2["PinkTerracotta"] = "minecraft:pink_terracotta";
  MinecraftItemTypes2["PinkTulip"] = "minecraft:pink_tulip";
  MinecraftItemTypes2["PinkWool"] = "minecraft:pink_wool";
  MinecraftItemTypes2["Piston"] = "minecraft:piston";
  MinecraftItemTypes2["PitcherPlant"] = "minecraft:pitcher_plant";
  MinecraftItemTypes2["PitcherPod"] = "minecraft:pitcher_pod";
  MinecraftItemTypes2["PlayerHead"] = "minecraft:player_head";
  MinecraftItemTypes2["PlentyPotterySherd"] = "minecraft:plenty_pottery_sherd";
  MinecraftItemTypes2["Podzol"] = "minecraft:podzol";
  MinecraftItemTypes2["PointedDripstone"] = "minecraft:pointed_dripstone";
  MinecraftItemTypes2["PoisonousPotato"] = "minecraft:poisonous_potato";
  MinecraftItemTypes2["PolarBearSpawnEgg"] = "minecraft:polar_bear_spawn_egg";
  MinecraftItemTypes2["PolishedAndesite"] = "minecraft:polished_andesite";
  MinecraftItemTypes2["PolishedAndesiteSlab"] = "minecraft:polished_andesite_slab";
  MinecraftItemTypes2["PolishedAndesiteStairs"] = "minecraft:polished_andesite_stairs";
  MinecraftItemTypes2["PolishedBasalt"] = "minecraft:polished_basalt";
  MinecraftItemTypes2["PolishedBlackstone"] = "minecraft:polished_blackstone";
  MinecraftItemTypes2["PolishedBlackstoneBrickSlab"] = "minecraft:polished_blackstone_brick_slab";
  MinecraftItemTypes2["PolishedBlackstoneBrickStairs"] = "minecraft:polished_blackstone_brick_stairs";
  MinecraftItemTypes2["PolishedBlackstoneBrickWall"] = "minecraft:polished_blackstone_brick_wall";
  MinecraftItemTypes2["PolishedBlackstoneBricks"] = "minecraft:polished_blackstone_bricks";
  MinecraftItemTypes2["PolishedBlackstoneButton"] = "minecraft:polished_blackstone_button";
  MinecraftItemTypes2["PolishedBlackstonePressurePlate"] = "minecraft:polished_blackstone_pressure_plate";
  MinecraftItemTypes2["PolishedBlackstoneSlab"] = "minecraft:polished_blackstone_slab";
  MinecraftItemTypes2["PolishedBlackstoneStairs"] = "minecraft:polished_blackstone_stairs";
  MinecraftItemTypes2["PolishedBlackstoneWall"] = "minecraft:polished_blackstone_wall";
  MinecraftItemTypes2["PolishedDeepslate"] = "minecraft:polished_deepslate";
  MinecraftItemTypes2["PolishedDeepslateSlab"] = "minecraft:polished_deepslate_slab";
  MinecraftItemTypes2["PolishedDeepslateStairs"] = "minecraft:polished_deepslate_stairs";
  MinecraftItemTypes2["PolishedDeepslateWall"] = "minecraft:polished_deepslate_wall";
  MinecraftItemTypes2["PolishedDiorite"] = "minecraft:polished_diorite";
  MinecraftItemTypes2["PolishedDioriteSlab"] = "minecraft:polished_diorite_slab";
  MinecraftItemTypes2["PolishedDioriteStairs"] = "minecraft:polished_diorite_stairs";
  MinecraftItemTypes2["PolishedGranite"] = "minecraft:polished_granite";
  MinecraftItemTypes2["PolishedGraniteSlab"] = "minecraft:polished_granite_slab";
  MinecraftItemTypes2["PolishedGraniteStairs"] = "minecraft:polished_granite_stairs";
  MinecraftItemTypes2["PolishedTuff"] = "minecraft:polished_tuff";
  MinecraftItemTypes2["PolishedTuffSlab"] = "minecraft:polished_tuff_slab";
  MinecraftItemTypes2["PolishedTuffStairs"] = "minecraft:polished_tuff_stairs";
  MinecraftItemTypes2["PolishedTuffWall"] = "minecraft:polished_tuff_wall";
  MinecraftItemTypes2["PoppedChorusFruit"] = "minecraft:popped_chorus_fruit";
  MinecraftItemTypes2["Poppy"] = "minecraft:poppy";
  MinecraftItemTypes2["Porkchop"] = "minecraft:porkchop";
  MinecraftItemTypes2["Potato"] = "minecraft:potato";
  MinecraftItemTypes2["Potion"] = "minecraft:potion";
  MinecraftItemTypes2["PowderSnowBucket"] = "minecraft:powder_snow_bucket";
  MinecraftItemTypes2["Prismarine"] = "minecraft:prismarine";
  MinecraftItemTypes2["PrismarineBrickSlab"] = "minecraft:prismarine_brick_slab";
  MinecraftItemTypes2["PrismarineBricks"] = "minecraft:prismarine_bricks";
  MinecraftItemTypes2["PrismarineBricksStairs"] = "minecraft:prismarine_bricks_stairs";
  MinecraftItemTypes2["PrismarineCrystals"] = "minecraft:prismarine_crystals";
  MinecraftItemTypes2["PrismarineShard"] = "minecraft:prismarine_shard";
  MinecraftItemTypes2["PrismarineSlab"] = "minecraft:prismarine_slab";
  MinecraftItemTypes2["PrismarineStairs"] = "minecraft:prismarine_stairs";
  MinecraftItemTypes2["PrismarineWall"] = "minecraft:prismarine_wall";
  MinecraftItemTypes2["PrizePotterySherd"] = "minecraft:prize_pottery_sherd";
  MinecraftItemTypes2["Pufferfish"] = "minecraft:pufferfish";
  MinecraftItemTypes2["PufferfishBucket"] = "minecraft:pufferfish_bucket";
  MinecraftItemTypes2["PufferfishSpawnEgg"] = "minecraft:pufferfish_spawn_egg";
  MinecraftItemTypes2["Pumpkin"] = "minecraft:pumpkin";
  MinecraftItemTypes2["PumpkinPie"] = "minecraft:pumpkin_pie";
  MinecraftItemTypes2["PumpkinSeeds"] = "minecraft:pumpkin_seeds";
  MinecraftItemTypes2["PurpleBundle"] = "minecraft:purple_bundle";
  MinecraftItemTypes2["PurpleCandle"] = "minecraft:purple_candle";
  MinecraftItemTypes2["PurpleCarpet"] = "minecraft:purple_carpet";
  MinecraftItemTypes2["PurpleConcrete"] = "minecraft:purple_concrete";
  MinecraftItemTypes2["PurpleConcretePowder"] = "minecraft:purple_concrete_powder";
  MinecraftItemTypes2["PurpleDye"] = "minecraft:purple_dye";
  MinecraftItemTypes2["PurpleGlazedTerracotta"] = "minecraft:purple_glazed_terracotta";
  MinecraftItemTypes2["PurpleHarness"] = "minecraft:purple_harness";
  MinecraftItemTypes2["PurpleShulkerBox"] = "minecraft:purple_shulker_box";
  MinecraftItemTypes2["PurpleStainedGlass"] = "minecraft:purple_stained_glass";
  MinecraftItemTypes2["PurpleStainedGlassPane"] = "minecraft:purple_stained_glass_pane";
  MinecraftItemTypes2["PurpleTerracotta"] = "minecraft:purple_terracotta";
  MinecraftItemTypes2["PurpleWool"] = "minecraft:purple_wool";
  MinecraftItemTypes2["PurpurBlock"] = "minecraft:purpur_block";
  MinecraftItemTypes2["PurpurPillar"] = "minecraft:purpur_pillar";
  MinecraftItemTypes2["PurpurSlab"] = "minecraft:purpur_slab";
  MinecraftItemTypes2["PurpurStairs"] = "minecraft:purpur_stairs";
  MinecraftItemTypes2["Quartz"] = "minecraft:quartz";
  MinecraftItemTypes2["QuartzBlock"] = "minecraft:quartz_block";
  MinecraftItemTypes2["QuartzBricks"] = "minecraft:quartz_bricks";
  MinecraftItemTypes2["QuartzOre"] = "minecraft:quartz_ore";
  MinecraftItemTypes2["QuartzPillar"] = "minecraft:quartz_pillar";
  MinecraftItemTypes2["QuartzSlab"] = "minecraft:quartz_slab";
  MinecraftItemTypes2["QuartzStairs"] = "minecraft:quartz_stairs";
  MinecraftItemTypes2["Rabbit"] = "minecraft:rabbit";
  MinecraftItemTypes2["RabbitFoot"] = "minecraft:rabbit_foot";
  MinecraftItemTypes2["RabbitHide"] = "minecraft:rabbit_hide";
  MinecraftItemTypes2["RabbitSpawnEgg"] = "minecraft:rabbit_spawn_egg";
  MinecraftItemTypes2["RabbitStew"] = "minecraft:rabbit_stew";
  MinecraftItemTypes2["Rail"] = "minecraft:rail";
  MinecraftItemTypes2["RaiserArmorTrimSmithingTemplate"] = "minecraft:raiser_armor_trim_smithing_template";
  MinecraftItemTypes2["RavagerSpawnEgg"] = "minecraft:ravager_spawn_egg";
  MinecraftItemTypes2["RawCopper"] = "minecraft:raw_copper";
  MinecraftItemTypes2["RawCopperBlock"] = "minecraft:raw_copper_block";
  MinecraftItemTypes2["RawGold"] = "minecraft:raw_gold";
  MinecraftItemTypes2["RawGoldBlock"] = "minecraft:raw_gold_block";
  MinecraftItemTypes2["RawIron"] = "minecraft:raw_iron";
  MinecraftItemTypes2["RawIronBlock"] = "minecraft:raw_iron_block";
  MinecraftItemTypes2["RecoveryCompass"] = "minecraft:recovery_compass";
  MinecraftItemTypes2["RedBundle"] = "minecraft:red_bundle";
  MinecraftItemTypes2["RedCandle"] = "minecraft:red_candle";
  MinecraftItemTypes2["RedCarpet"] = "minecraft:red_carpet";
  MinecraftItemTypes2["RedConcrete"] = "minecraft:red_concrete";
  MinecraftItemTypes2["RedConcretePowder"] = "minecraft:red_concrete_powder";
  MinecraftItemTypes2["RedDye"] = "minecraft:red_dye";
  MinecraftItemTypes2["RedGlazedTerracotta"] = "minecraft:red_glazed_terracotta";
  MinecraftItemTypes2["RedHarness"] = "minecraft:red_harness";
  MinecraftItemTypes2["RedMushroom"] = "minecraft:red_mushroom";
  MinecraftItemTypes2["RedMushroomBlock"] = "minecraft:red_mushroom_block";
  MinecraftItemTypes2["RedNetherBrick"] = "minecraft:red_nether_brick";
  MinecraftItemTypes2["RedNetherBrickSlab"] = "minecraft:red_nether_brick_slab";
  MinecraftItemTypes2["RedNetherBrickStairs"] = "minecraft:red_nether_brick_stairs";
  MinecraftItemTypes2["RedNetherBrickWall"] = "minecraft:red_nether_brick_wall";
  MinecraftItemTypes2["RedSand"] = "minecraft:red_sand";
  MinecraftItemTypes2["RedSandstone"] = "minecraft:red_sandstone";
  MinecraftItemTypes2["RedSandstoneSlab"] = "minecraft:red_sandstone_slab";
  MinecraftItemTypes2["RedSandstoneStairs"] = "minecraft:red_sandstone_stairs";
  MinecraftItemTypes2["RedSandstoneWall"] = "minecraft:red_sandstone_wall";
  MinecraftItemTypes2["RedShulkerBox"] = "minecraft:red_shulker_box";
  MinecraftItemTypes2["RedStainedGlass"] = "minecraft:red_stained_glass";
  MinecraftItemTypes2["RedStainedGlassPane"] = "minecraft:red_stained_glass_pane";
  MinecraftItemTypes2["RedTerracotta"] = "minecraft:red_terracotta";
  MinecraftItemTypes2["RedTulip"] = "minecraft:red_tulip";
  MinecraftItemTypes2["RedWool"] = "minecraft:red_wool";
  MinecraftItemTypes2["Redstone"] = "minecraft:redstone";
  MinecraftItemTypes2["RedstoneBlock"] = "minecraft:redstone_block";
  MinecraftItemTypes2["RedstoneLamp"] = "minecraft:redstone_lamp";
  MinecraftItemTypes2["RedstoneOre"] = "minecraft:redstone_ore";
  MinecraftItemTypes2["RedstoneTorch"] = "minecraft:redstone_torch";
  MinecraftItemTypes2["ReinforcedDeepslate"] = "minecraft:reinforced_deepslate";
  MinecraftItemTypes2["Repeater"] = "minecraft:repeater";
  MinecraftItemTypes2["RepeatingCommandBlock"] = "minecraft:repeating_command_block";
  MinecraftItemTypes2["ResinBlock"] = "minecraft:resin_block";
  MinecraftItemTypes2["ResinBrick"] = "minecraft:resin_brick";
  MinecraftItemTypes2["ResinBrickSlab"] = "minecraft:resin_brick_slab";
  MinecraftItemTypes2["ResinBrickStairs"] = "minecraft:resin_brick_stairs";
  MinecraftItemTypes2["ResinBrickWall"] = "minecraft:resin_brick_wall";
  MinecraftItemTypes2["ResinBricks"] = "minecraft:resin_bricks";
  MinecraftItemTypes2["ResinClump"] = "minecraft:resin_clump";
  MinecraftItemTypes2["RespawnAnchor"] = "minecraft:respawn_anchor";
  MinecraftItemTypes2["RibArmorTrimSmithingTemplate"] = "minecraft:rib_armor_trim_smithing_template";
  MinecraftItemTypes2["RoseBush"] = "minecraft:rose_bush";
  MinecraftItemTypes2["RottenFlesh"] = "minecraft:rotten_flesh";
  MinecraftItemTypes2["Saddle"] = "minecraft:saddle";
  MinecraftItemTypes2["Salmon"] = "minecraft:salmon";
  MinecraftItemTypes2["SalmonBucket"] = "minecraft:salmon_bucket";
  MinecraftItemTypes2["SalmonSpawnEgg"] = "minecraft:salmon_spawn_egg";
  MinecraftItemTypes2["Sand"] = "minecraft:sand";
  MinecraftItemTypes2["Sandstone"] = "minecraft:sandstone";
  MinecraftItemTypes2["SandstoneSlab"] = "minecraft:sandstone_slab";
  MinecraftItemTypes2["SandstoneStairs"] = "minecraft:sandstone_stairs";
  MinecraftItemTypes2["SandstoneWall"] = "minecraft:sandstone_wall";
  MinecraftItemTypes2["Scaffolding"] = "minecraft:scaffolding";
  MinecraftItemTypes2["ScrapePotterySherd"] = "minecraft:scrape_pottery_sherd";
  MinecraftItemTypes2["Sculk"] = "minecraft:sculk";
  MinecraftItemTypes2["SculkCatalyst"] = "minecraft:sculk_catalyst";
  MinecraftItemTypes2["SculkSensor"] = "minecraft:sculk_sensor";
  MinecraftItemTypes2["SculkShrieker"] = "minecraft:sculk_shrieker";
  MinecraftItemTypes2["SculkVein"] = "minecraft:sculk_vein";
  MinecraftItemTypes2["SeaLantern"] = "minecraft:sea_lantern";
  MinecraftItemTypes2["SeaPickle"] = "minecraft:sea_pickle";
  MinecraftItemTypes2["Seagrass"] = "minecraft:seagrass";
  MinecraftItemTypes2["SentryArmorTrimSmithingTemplate"] = "minecraft:sentry_armor_trim_smithing_template";
  MinecraftItemTypes2["ShaperArmorTrimSmithingTemplate"] = "minecraft:shaper_armor_trim_smithing_template";
  MinecraftItemTypes2["SheafPotterySherd"] = "minecraft:sheaf_pottery_sherd";
  MinecraftItemTypes2["Shears"] = "minecraft:shears";
  MinecraftItemTypes2["SheepSpawnEgg"] = "minecraft:sheep_spawn_egg";
  MinecraftItemTypes2["ShelterPotterySherd"] = "minecraft:shelter_pottery_sherd";
  MinecraftItemTypes2["Shield"] = "minecraft:shield";
  MinecraftItemTypes2["ShortDryGrass"] = "minecraft:short_dry_grass";
  MinecraftItemTypes2["ShortGrass"] = "minecraft:short_grass";
  MinecraftItemTypes2["Shroomlight"] = "minecraft:shroomlight";
  MinecraftItemTypes2["ShulkerShell"] = "minecraft:shulker_shell";
  MinecraftItemTypes2["ShulkerSpawnEgg"] = "minecraft:shulker_spawn_egg";
  MinecraftItemTypes2["SilenceArmorTrimSmithingTemplate"] = "minecraft:silence_armor_trim_smithing_template";
  MinecraftItemTypes2["SilverGlazedTerracotta"] = "minecraft:silver_glazed_terracotta";
  MinecraftItemTypes2["SilverfishSpawnEgg"] = "minecraft:silverfish_spawn_egg";
  MinecraftItemTypes2["SkeletonHorseSpawnEgg"] = "minecraft:skeleton_horse_spawn_egg";
  MinecraftItemTypes2["SkeletonSkull"] = "minecraft:skeleton_skull";
  MinecraftItemTypes2["SkeletonSpawnEgg"] = "minecraft:skeleton_spawn_egg";
  MinecraftItemTypes2["SkullBannerPattern"] = "minecraft:skull_banner_pattern";
  MinecraftItemTypes2["SkullPotterySherd"] = "minecraft:skull_pottery_sherd";
  MinecraftItemTypes2["Slime"] = "minecraft:slime";
  MinecraftItemTypes2["SlimeBall"] = "minecraft:slime_ball";
  MinecraftItemTypes2["SlimeSpawnEgg"] = "minecraft:slime_spawn_egg";
  MinecraftItemTypes2["SmallAmethystBud"] = "minecraft:small_amethyst_bud";
  MinecraftItemTypes2["SmallDripleafBlock"] = "minecraft:small_dripleaf_block";
  MinecraftItemTypes2["SmithingTable"] = "minecraft:smithing_table";
  MinecraftItemTypes2["Smoker"] = "minecraft:smoker";
  MinecraftItemTypes2["SmoothBasalt"] = "minecraft:smooth_basalt";
  MinecraftItemTypes2["SmoothQuartz"] = "minecraft:smooth_quartz";
  MinecraftItemTypes2["SmoothQuartzSlab"] = "minecraft:smooth_quartz_slab";
  MinecraftItemTypes2["SmoothQuartzStairs"] = "minecraft:smooth_quartz_stairs";
  MinecraftItemTypes2["SmoothRedSandstone"] = "minecraft:smooth_red_sandstone";
  MinecraftItemTypes2["SmoothRedSandstoneSlab"] = "minecraft:smooth_red_sandstone_slab";
  MinecraftItemTypes2["SmoothRedSandstoneStairs"] = "minecraft:smooth_red_sandstone_stairs";
  MinecraftItemTypes2["SmoothSandstone"] = "minecraft:smooth_sandstone";
  MinecraftItemTypes2["SmoothSandstoneSlab"] = "minecraft:smooth_sandstone_slab";
  MinecraftItemTypes2["SmoothSandstoneStairs"] = "minecraft:smooth_sandstone_stairs";
  MinecraftItemTypes2["SmoothStone"] = "minecraft:smooth_stone";
  MinecraftItemTypes2["SmoothStoneSlab"] = "minecraft:smooth_stone_slab";
  MinecraftItemTypes2["SnifferEgg"] = "minecraft:sniffer_egg";
  MinecraftItemTypes2["SnifferSpawnEgg"] = "minecraft:sniffer_spawn_egg";
  MinecraftItemTypes2["SnortPotterySherd"] = "minecraft:snort_pottery_sherd";
  MinecraftItemTypes2["SnoutArmorTrimSmithingTemplate"] = "minecraft:snout_armor_trim_smithing_template";
  MinecraftItemTypes2["Snow"] = "minecraft:snow";
  MinecraftItemTypes2["SnowGolemSpawnEgg"] = "minecraft:snow_golem_spawn_egg";
  MinecraftItemTypes2["SnowLayer"] = "minecraft:snow_layer";
  MinecraftItemTypes2["Snowball"] = "minecraft:snowball";
  MinecraftItemTypes2["SoulCampfire"] = "minecraft:soul_campfire";
  MinecraftItemTypes2["SoulLantern"] = "minecraft:soul_lantern";
  MinecraftItemTypes2["SoulSand"] = "minecraft:soul_sand";
  MinecraftItemTypes2["SoulSoil"] = "minecraft:soul_soil";
  MinecraftItemTypes2["SoulTorch"] = "minecraft:soul_torch";
  MinecraftItemTypes2["SpiderEye"] = "minecraft:spider_eye";
  MinecraftItemTypes2["SpiderSpawnEgg"] = "minecraft:spider_spawn_egg";
  MinecraftItemTypes2["SpireArmorTrimSmithingTemplate"] = "minecraft:spire_armor_trim_smithing_template";
  MinecraftItemTypes2["SplashPotion"] = "minecraft:splash_potion";
  MinecraftItemTypes2["Sponge"] = "minecraft:sponge";
  MinecraftItemTypes2["SporeBlossom"] = "minecraft:spore_blossom";
  MinecraftItemTypes2["SpruceBoat"] = "minecraft:spruce_boat";
  MinecraftItemTypes2["SpruceButton"] = "minecraft:spruce_button";
  MinecraftItemTypes2["SpruceChestBoat"] = "minecraft:spruce_chest_boat";
  MinecraftItemTypes2["SpruceDoor"] = "minecraft:spruce_door";
  MinecraftItemTypes2["SpruceFence"] = "minecraft:spruce_fence";
  MinecraftItemTypes2["SpruceFenceGate"] = "minecraft:spruce_fence_gate";
  MinecraftItemTypes2["SpruceHangingSign"] = "minecraft:spruce_hanging_sign";
  MinecraftItemTypes2["SpruceLeaves"] = "minecraft:spruce_leaves";
  MinecraftItemTypes2["SpruceLog"] = "minecraft:spruce_log";
  MinecraftItemTypes2["SprucePlanks"] = "minecraft:spruce_planks";
  MinecraftItemTypes2["SprucePressurePlate"] = "minecraft:spruce_pressure_plate";
  MinecraftItemTypes2["SpruceSapling"] = "minecraft:spruce_sapling";
  MinecraftItemTypes2["SpruceSign"] = "minecraft:spruce_sign";
  MinecraftItemTypes2["SpruceSlab"] = "minecraft:spruce_slab";
  MinecraftItemTypes2["SpruceStairs"] = "minecraft:spruce_stairs";
  MinecraftItemTypes2["SpruceTrapdoor"] = "minecraft:spruce_trapdoor";
  MinecraftItemTypes2["SpruceWood"] = "minecraft:spruce_wood";
  MinecraftItemTypes2["Spyglass"] = "minecraft:spyglass";
  MinecraftItemTypes2["SquidSpawnEgg"] = "minecraft:squid_spawn_egg";
  MinecraftItemTypes2["Stick"] = "minecraft:stick";
  MinecraftItemTypes2["StickyPiston"] = "minecraft:sticky_piston";
  MinecraftItemTypes2["Stone"] = "minecraft:stone";
  MinecraftItemTypes2["StoneAxe"] = "minecraft:stone_axe";
  MinecraftItemTypes2["StoneBrickSlab"] = "minecraft:stone_brick_slab";
  MinecraftItemTypes2["StoneBrickStairs"] = "minecraft:stone_brick_stairs";
  MinecraftItemTypes2["StoneBrickWall"] = "minecraft:stone_brick_wall";
  MinecraftItemTypes2["StoneBricks"] = "minecraft:stone_bricks";
  MinecraftItemTypes2["StoneButton"] = "minecraft:stone_button";
  MinecraftItemTypes2["StoneHoe"] = "minecraft:stone_hoe";
  MinecraftItemTypes2["StonePickaxe"] = "minecraft:stone_pickaxe";
  MinecraftItemTypes2["StonePressurePlate"] = "minecraft:stone_pressure_plate";
  MinecraftItemTypes2["StoneShovel"] = "minecraft:stone_shovel";
  MinecraftItemTypes2["StoneStairs"] = "minecraft:stone_stairs";
  MinecraftItemTypes2["StoneSword"] = "minecraft:stone_sword";
  MinecraftItemTypes2["StonecutterBlock"] = "minecraft:stonecutter_block";
  MinecraftItemTypes2["StraySpawnEgg"] = "minecraft:stray_spawn_egg";
  MinecraftItemTypes2["StriderSpawnEgg"] = "minecraft:strider_spawn_egg";
  MinecraftItemTypes2["String"] = "minecraft:string";
  MinecraftItemTypes2["StrippedAcaciaLog"] = "minecraft:stripped_acacia_log";
  MinecraftItemTypes2["StrippedAcaciaWood"] = "minecraft:stripped_acacia_wood";
  MinecraftItemTypes2["StrippedBambooBlock"] = "minecraft:stripped_bamboo_block";
  MinecraftItemTypes2["StrippedBirchLog"] = "minecraft:stripped_birch_log";
  MinecraftItemTypes2["StrippedBirchWood"] = "minecraft:stripped_birch_wood";
  MinecraftItemTypes2["StrippedCherryLog"] = "minecraft:stripped_cherry_log";
  MinecraftItemTypes2["StrippedCherryWood"] = "minecraft:stripped_cherry_wood";
  MinecraftItemTypes2["StrippedCrimsonHyphae"] = "minecraft:stripped_crimson_hyphae";
  MinecraftItemTypes2["StrippedCrimsonStem"] = "minecraft:stripped_crimson_stem";
  MinecraftItemTypes2["StrippedDarkOakLog"] = "minecraft:stripped_dark_oak_log";
  MinecraftItemTypes2["StrippedDarkOakWood"] = "minecraft:stripped_dark_oak_wood";
  MinecraftItemTypes2["StrippedJungleLog"] = "minecraft:stripped_jungle_log";
  MinecraftItemTypes2["StrippedJungleWood"] = "minecraft:stripped_jungle_wood";
  MinecraftItemTypes2["StrippedMangroveLog"] = "minecraft:stripped_mangrove_log";
  MinecraftItemTypes2["StrippedMangroveWood"] = "minecraft:stripped_mangrove_wood";
  MinecraftItemTypes2["StrippedOakLog"] = "minecraft:stripped_oak_log";
  MinecraftItemTypes2["StrippedOakWood"] = "minecraft:stripped_oak_wood";
  MinecraftItemTypes2["StrippedPaleOakLog"] = "minecraft:stripped_pale_oak_log";
  MinecraftItemTypes2["StrippedPaleOakWood"] = "minecraft:stripped_pale_oak_wood";
  MinecraftItemTypes2["StrippedSpruceLog"] = "minecraft:stripped_spruce_log";
  MinecraftItemTypes2["StrippedSpruceWood"] = "minecraft:stripped_spruce_wood";
  MinecraftItemTypes2["StrippedWarpedHyphae"] = "minecraft:stripped_warped_hyphae";
  MinecraftItemTypes2["StrippedWarpedStem"] = "minecraft:stripped_warped_stem";
  MinecraftItemTypes2["StructureBlock"] = "minecraft:structure_block";
  MinecraftItemTypes2["StructureVoid"] = "minecraft:structure_void";
  MinecraftItemTypes2["Sugar"] = "minecraft:sugar";
  MinecraftItemTypes2["SugarCane"] = "minecraft:sugar_cane";
  MinecraftItemTypes2["Sunflower"] = "minecraft:sunflower";
  MinecraftItemTypes2["SuspiciousGravel"] = "minecraft:suspicious_gravel";
  MinecraftItemTypes2["SuspiciousSand"] = "minecraft:suspicious_sand";
  MinecraftItemTypes2["SuspiciousStew"] = "minecraft:suspicious_stew";
  MinecraftItemTypes2["SweetBerries"] = "minecraft:sweet_berries";
  MinecraftItemTypes2["TadpoleBucket"] = "minecraft:tadpole_bucket";
  MinecraftItemTypes2["TadpoleSpawnEgg"] = "minecraft:tadpole_spawn_egg";
  MinecraftItemTypes2["TallDryGrass"] = "minecraft:tall_dry_grass";
  MinecraftItemTypes2["TallGrass"] = "minecraft:tall_grass";
  MinecraftItemTypes2["Target"] = "minecraft:target";
  MinecraftItemTypes2["TideArmorTrimSmithingTemplate"] = "minecraft:tide_armor_trim_smithing_template";
  MinecraftItemTypes2["TintedGlass"] = "minecraft:tinted_glass";
  MinecraftItemTypes2["Tnt"] = "minecraft:tnt";
  MinecraftItemTypes2["TntMinecart"] = "minecraft:tnt_minecart";
  MinecraftItemTypes2["Torch"] = "minecraft:torch";
  MinecraftItemTypes2["Torchflower"] = "minecraft:torchflower";
  MinecraftItemTypes2["TorchflowerSeeds"] = "minecraft:torchflower_seeds";
  MinecraftItemTypes2["TotemOfUndying"] = "minecraft:totem_of_undying";
  MinecraftItemTypes2["TraderLlamaSpawnEgg"] = "minecraft:trader_llama_spawn_egg";
  MinecraftItemTypes2["Trapdoor"] = "minecraft:trapdoor";
  MinecraftItemTypes2["TrappedChest"] = "minecraft:trapped_chest";
  MinecraftItemTypes2["TrialKey"] = "minecraft:trial_key";
  MinecraftItemTypes2["TrialSpawner"] = "minecraft:trial_spawner";
  MinecraftItemTypes2["Trident"] = "minecraft:trident";
  MinecraftItemTypes2["TripwireHook"] = "minecraft:tripwire_hook";
  MinecraftItemTypes2["TropicalFish"] = "minecraft:tropical_fish";
  MinecraftItemTypes2["TropicalFishBucket"] = "minecraft:tropical_fish_bucket";
  MinecraftItemTypes2["TropicalFishSpawnEgg"] = "minecraft:tropical_fish_spawn_egg";
  MinecraftItemTypes2["TubeCoral"] = "minecraft:tube_coral";
  MinecraftItemTypes2["TubeCoralBlock"] = "minecraft:tube_coral_block";
  MinecraftItemTypes2["TubeCoralFan"] = "minecraft:tube_coral_fan";
  MinecraftItemTypes2["Tuff"] = "minecraft:tuff";
  MinecraftItemTypes2["TuffBrickSlab"] = "minecraft:tuff_brick_slab";
  MinecraftItemTypes2["TuffBrickStairs"] = "minecraft:tuff_brick_stairs";
  MinecraftItemTypes2["TuffBrickWall"] = "minecraft:tuff_brick_wall";
  MinecraftItemTypes2["TuffBricks"] = "minecraft:tuff_bricks";
  MinecraftItemTypes2["TuffSlab"] = "minecraft:tuff_slab";
  MinecraftItemTypes2["TuffStairs"] = "minecraft:tuff_stairs";
  MinecraftItemTypes2["TuffWall"] = "minecraft:tuff_wall";
  MinecraftItemTypes2["TurtleEgg"] = "minecraft:turtle_egg";
  MinecraftItemTypes2["TurtleHelmet"] = "minecraft:turtle_helmet";
  MinecraftItemTypes2["TurtleScute"] = "minecraft:turtle_scute";
  MinecraftItemTypes2["TurtleSpawnEgg"] = "minecraft:turtle_spawn_egg";
  MinecraftItemTypes2["TwistingVines"] = "minecraft:twisting_vines";
  MinecraftItemTypes2["UndyedShulkerBox"] = "minecraft:undyed_shulker_box";
  MinecraftItemTypes2["Vault"] = "minecraft:vault";
  MinecraftItemTypes2["VerdantFroglight"] = "minecraft:verdant_froglight";
  MinecraftItemTypes2["VexArmorTrimSmithingTemplate"] = "minecraft:vex_armor_trim_smithing_template";
  MinecraftItemTypes2["VexSpawnEgg"] = "minecraft:vex_spawn_egg";
  MinecraftItemTypes2["VillagerSpawnEgg"] = "minecraft:villager_spawn_egg";
  MinecraftItemTypes2["VindicatorSpawnEgg"] = "minecraft:vindicator_spawn_egg";
  MinecraftItemTypes2["Vine"] = "minecraft:vine";
  MinecraftItemTypes2["WanderingTraderSpawnEgg"] = "minecraft:wandering_trader_spawn_egg";
  MinecraftItemTypes2["WardArmorTrimSmithingTemplate"] = "minecraft:ward_armor_trim_smithing_template";
  MinecraftItemTypes2["WardenSpawnEgg"] = "minecraft:warden_spawn_egg";
  MinecraftItemTypes2["WarpedButton"] = "minecraft:warped_button";
  MinecraftItemTypes2["WarpedDoor"] = "minecraft:warped_door";
  MinecraftItemTypes2["WarpedFence"] = "minecraft:warped_fence";
  MinecraftItemTypes2["WarpedFenceGate"] = "minecraft:warped_fence_gate";
  MinecraftItemTypes2["WarpedFungus"] = "minecraft:warped_fungus";
  MinecraftItemTypes2["WarpedFungusOnAStick"] = "minecraft:warped_fungus_on_a_stick";
  MinecraftItemTypes2["WarpedHangingSign"] = "minecraft:warped_hanging_sign";
  MinecraftItemTypes2["WarpedHyphae"] = "minecraft:warped_hyphae";
  MinecraftItemTypes2["WarpedNylium"] = "minecraft:warped_nylium";
  MinecraftItemTypes2["WarpedPlanks"] = "minecraft:warped_planks";
  MinecraftItemTypes2["WarpedPressurePlate"] = "minecraft:warped_pressure_plate";
  MinecraftItemTypes2["WarpedRoots"] = "minecraft:warped_roots";
  MinecraftItemTypes2["WarpedSign"] = "minecraft:warped_sign";
  MinecraftItemTypes2["WarpedSlab"] = "minecraft:warped_slab";
  MinecraftItemTypes2["WarpedStairs"] = "minecraft:warped_stairs";
  MinecraftItemTypes2["WarpedStem"] = "minecraft:warped_stem";
  MinecraftItemTypes2["WarpedTrapdoor"] = "minecraft:warped_trapdoor";
  MinecraftItemTypes2["WarpedWartBlock"] = "minecraft:warped_wart_block";
  MinecraftItemTypes2["WaterBucket"] = "minecraft:water_bucket";
  MinecraftItemTypes2["Waterlily"] = "minecraft:waterlily";
  MinecraftItemTypes2["WaxedChiseledCopper"] = "minecraft:waxed_chiseled_copper";
  MinecraftItemTypes2["WaxedCopper"] = "minecraft:waxed_copper";
  MinecraftItemTypes2["WaxedCopperBulb"] = "minecraft:waxed_copper_bulb";
  MinecraftItemTypes2["WaxedCopperDoor"] = "minecraft:waxed_copper_door";
  MinecraftItemTypes2["WaxedCopperGrate"] = "minecraft:waxed_copper_grate";
  MinecraftItemTypes2["WaxedCopperTrapdoor"] = "minecraft:waxed_copper_trapdoor";
  MinecraftItemTypes2["WaxedCutCopper"] = "minecraft:waxed_cut_copper";
  MinecraftItemTypes2["WaxedCutCopperSlab"] = "minecraft:waxed_cut_copper_slab";
  MinecraftItemTypes2["WaxedCutCopperStairs"] = "minecraft:waxed_cut_copper_stairs";
  MinecraftItemTypes2["WaxedExposedChiseledCopper"] = "minecraft:waxed_exposed_chiseled_copper";
  MinecraftItemTypes2["WaxedExposedCopper"] = "minecraft:waxed_exposed_copper";
  MinecraftItemTypes2["WaxedExposedCopperBulb"] = "minecraft:waxed_exposed_copper_bulb";
  MinecraftItemTypes2["WaxedExposedCopperDoor"] = "minecraft:waxed_exposed_copper_door";
  MinecraftItemTypes2["WaxedExposedCopperGrate"] = "minecraft:waxed_exposed_copper_grate";
  MinecraftItemTypes2["WaxedExposedCopperTrapdoor"] = "minecraft:waxed_exposed_copper_trapdoor";
  MinecraftItemTypes2["WaxedExposedCutCopper"] = "minecraft:waxed_exposed_cut_copper";
  MinecraftItemTypes2["WaxedExposedCutCopperSlab"] = "minecraft:waxed_exposed_cut_copper_slab";
  MinecraftItemTypes2["WaxedExposedCutCopperStairs"] = "minecraft:waxed_exposed_cut_copper_stairs";
  MinecraftItemTypes2["WaxedOxidizedChiseledCopper"] = "minecraft:waxed_oxidized_chiseled_copper";
  MinecraftItemTypes2["WaxedOxidizedCopper"] = "minecraft:waxed_oxidized_copper";
  MinecraftItemTypes2["WaxedOxidizedCopperBulb"] = "minecraft:waxed_oxidized_copper_bulb";
  MinecraftItemTypes2["WaxedOxidizedCopperDoor"] = "minecraft:waxed_oxidized_copper_door";
  MinecraftItemTypes2["WaxedOxidizedCopperGrate"] = "minecraft:waxed_oxidized_copper_grate";
  MinecraftItemTypes2["WaxedOxidizedCopperTrapdoor"] = "minecraft:waxed_oxidized_copper_trapdoor";
  MinecraftItemTypes2["WaxedOxidizedCutCopper"] = "minecraft:waxed_oxidized_cut_copper";
  MinecraftItemTypes2["WaxedOxidizedCutCopperSlab"] = "minecraft:waxed_oxidized_cut_copper_slab";
  MinecraftItemTypes2["WaxedOxidizedCutCopperStairs"] = "minecraft:waxed_oxidized_cut_copper_stairs";
  MinecraftItemTypes2["WaxedWeatheredChiseledCopper"] = "minecraft:waxed_weathered_chiseled_copper";
  MinecraftItemTypes2["WaxedWeatheredCopper"] = "minecraft:waxed_weathered_copper";
  MinecraftItemTypes2["WaxedWeatheredCopperBulb"] = "minecraft:waxed_weathered_copper_bulb";
  MinecraftItemTypes2["WaxedWeatheredCopperDoor"] = "minecraft:waxed_weathered_copper_door";
  MinecraftItemTypes2["WaxedWeatheredCopperGrate"] = "minecraft:waxed_weathered_copper_grate";
  MinecraftItemTypes2["WaxedWeatheredCopperTrapdoor"] = "minecraft:waxed_weathered_copper_trapdoor";
  MinecraftItemTypes2["WaxedWeatheredCutCopper"] = "minecraft:waxed_weathered_cut_copper";
  MinecraftItemTypes2["WaxedWeatheredCutCopperSlab"] = "minecraft:waxed_weathered_cut_copper_slab";
  MinecraftItemTypes2["WaxedWeatheredCutCopperStairs"] = "minecraft:waxed_weathered_cut_copper_stairs";
  MinecraftItemTypes2["WayfinderArmorTrimSmithingTemplate"] = "minecraft:wayfinder_armor_trim_smithing_template";
  MinecraftItemTypes2["WeatheredChiseledCopper"] = "minecraft:weathered_chiseled_copper";
  MinecraftItemTypes2["WeatheredCopper"] = "minecraft:weathered_copper";
  MinecraftItemTypes2["WeatheredCopperBulb"] = "minecraft:weathered_copper_bulb";
  MinecraftItemTypes2["WeatheredCopperDoor"] = "minecraft:weathered_copper_door";
  MinecraftItemTypes2["WeatheredCopperGrate"] = "minecraft:weathered_copper_grate";
  MinecraftItemTypes2["WeatheredCopperTrapdoor"] = "minecraft:weathered_copper_trapdoor";
  MinecraftItemTypes2["WeatheredCutCopper"] = "minecraft:weathered_cut_copper";
  MinecraftItemTypes2["WeatheredCutCopperSlab"] = "minecraft:weathered_cut_copper_slab";
  MinecraftItemTypes2["WeatheredCutCopperStairs"] = "minecraft:weathered_cut_copper_stairs";
  MinecraftItemTypes2["Web"] = "minecraft:web";
  MinecraftItemTypes2["WeepingVines"] = "minecraft:weeping_vines";
  MinecraftItemTypes2["WetSponge"] = "minecraft:wet_sponge";
  MinecraftItemTypes2["Wheat"] = "minecraft:wheat";
  MinecraftItemTypes2["WheatSeeds"] = "minecraft:wheat_seeds";
  MinecraftItemTypes2["WhiteBundle"] = "minecraft:white_bundle";
  MinecraftItemTypes2["WhiteCandle"] = "minecraft:white_candle";
  MinecraftItemTypes2["WhiteCarpet"] = "minecraft:white_carpet";
  MinecraftItemTypes2["WhiteConcrete"] = "minecraft:white_concrete";
  MinecraftItemTypes2["WhiteConcretePowder"] = "minecraft:white_concrete_powder";
  MinecraftItemTypes2["WhiteDye"] = "minecraft:white_dye";
  MinecraftItemTypes2["WhiteGlazedTerracotta"] = "minecraft:white_glazed_terracotta";
  MinecraftItemTypes2["WhiteHarness"] = "minecraft:white_harness";
  MinecraftItemTypes2["WhiteShulkerBox"] = "minecraft:white_shulker_box";
  MinecraftItemTypes2["WhiteStainedGlass"] = "minecraft:white_stained_glass";
  MinecraftItemTypes2["WhiteStainedGlassPane"] = "minecraft:white_stained_glass_pane";
  MinecraftItemTypes2["WhiteTerracotta"] = "minecraft:white_terracotta";
  MinecraftItemTypes2["WhiteTulip"] = "minecraft:white_tulip";
  MinecraftItemTypes2["WhiteWool"] = "minecraft:white_wool";
  MinecraftItemTypes2["WildArmorTrimSmithingTemplate"] = "minecraft:wild_armor_trim_smithing_template";
  MinecraftItemTypes2["Wildflowers"] = "minecraft:wildflowers";
  MinecraftItemTypes2["WindCharge"] = "minecraft:wind_charge";
  MinecraftItemTypes2["WitchSpawnEgg"] = "minecraft:witch_spawn_egg";
  MinecraftItemTypes2["WitherRose"] = "minecraft:wither_rose";
  MinecraftItemTypes2["WitherSkeletonSkull"] = "minecraft:wither_skeleton_skull";
  MinecraftItemTypes2["WitherSkeletonSpawnEgg"] = "minecraft:wither_skeleton_spawn_egg";
  MinecraftItemTypes2["WitherSpawnEgg"] = "minecraft:wither_spawn_egg";
  MinecraftItemTypes2["WolfArmor"] = "minecraft:wolf_armor";
  MinecraftItemTypes2["WolfSpawnEgg"] = "minecraft:wolf_spawn_egg";
  MinecraftItemTypes2["WoodenAxe"] = "minecraft:wooden_axe";
  MinecraftItemTypes2["WoodenButton"] = "minecraft:wooden_button";
  MinecraftItemTypes2["WoodenDoor"] = "minecraft:wooden_door";
  MinecraftItemTypes2["WoodenHoe"] = "minecraft:wooden_hoe";
  MinecraftItemTypes2["WoodenPickaxe"] = "minecraft:wooden_pickaxe";
  MinecraftItemTypes2["WoodenPressurePlate"] = "minecraft:wooden_pressure_plate";
  MinecraftItemTypes2["WoodenShovel"] = "minecraft:wooden_shovel";
  MinecraftItemTypes2["WoodenSword"] = "minecraft:wooden_sword";
  MinecraftItemTypes2["WritableBook"] = "minecraft:writable_book";
  MinecraftItemTypes2["YellowBundle"] = "minecraft:yellow_bundle";
  MinecraftItemTypes2["YellowCandle"] = "minecraft:yellow_candle";
  MinecraftItemTypes2["YellowCarpet"] = "minecraft:yellow_carpet";
  MinecraftItemTypes2["YellowConcrete"] = "minecraft:yellow_concrete";
  MinecraftItemTypes2["YellowConcretePowder"] = "minecraft:yellow_concrete_powder";
  MinecraftItemTypes2["YellowDye"] = "minecraft:yellow_dye";
  MinecraftItemTypes2["YellowGlazedTerracotta"] = "minecraft:yellow_glazed_terracotta";
  MinecraftItemTypes2["YellowHarness"] = "minecraft:yellow_harness";
  MinecraftItemTypes2["YellowShulkerBox"] = "minecraft:yellow_shulker_box";
  MinecraftItemTypes2["YellowStainedGlass"] = "minecraft:yellow_stained_glass";
  MinecraftItemTypes2["YellowStainedGlassPane"] = "minecraft:yellow_stained_glass_pane";
  MinecraftItemTypes2["YellowTerracotta"] = "minecraft:yellow_terracotta";
  MinecraftItemTypes2["YellowWool"] = "minecraft:yellow_wool";
  MinecraftItemTypes2["ZoglinSpawnEgg"] = "minecraft:zoglin_spawn_egg";
  MinecraftItemTypes2["ZombieHead"] = "minecraft:zombie_head";
  MinecraftItemTypes2["ZombieHorseSpawnEgg"] = "minecraft:zombie_horse_spawn_egg";
  MinecraftItemTypes2["ZombiePigmanSpawnEgg"] = "minecraft:zombie_pigman_spawn_egg";
  MinecraftItemTypes2["ZombieSpawnEgg"] = "minecraft:zombie_spawn_egg";
  MinecraftItemTypes2["ZombieVillagerSpawnEgg"] = "minecraft:zombie_villager_spawn_egg";
  return MinecraftItemTypes2;
})(MinecraftItemTypes || {});
var MinecraftPotionEffectTypes = ((MinecraftPotionEffectTypes2) => {
  MinecraftPotionEffectTypes2["FireResistance"] = "FireResistance";
  MinecraftPotionEffectTypes2["Harming"] = "Harming";
  MinecraftPotionEffectTypes2["Healing"] = "Healing";
  MinecraftPotionEffectTypes2["Infested"] = "Infested";
  MinecraftPotionEffectTypes2["Invisibility"] = "Invisibility";
  MinecraftPotionEffectTypes2["Leaping"] = "Leaping";
  MinecraftPotionEffectTypes2["NightVision"] = "NightVision";
  MinecraftPotionEffectTypes2["None"] = "None";
  MinecraftPotionEffectTypes2["Oozing"] = "Oozing";
  MinecraftPotionEffectTypes2["Poison"] = "Poison";
  MinecraftPotionEffectTypes2["SlowFalling"] = "SlowFalling";
  MinecraftPotionEffectTypes2["Slowing"] = "Slowing";
  MinecraftPotionEffectTypes2["Strength"] = "Strength";
  MinecraftPotionEffectTypes2["Swiftness"] = "Swiftness";
  MinecraftPotionEffectTypes2["TurtleMaster"] = "TurtleMaster";
  MinecraftPotionEffectTypes2["WaterBreath"] = "WaterBreath";
  MinecraftPotionEffectTypes2["Weakness"] = "Weakness";
  MinecraftPotionEffectTypes2["Weaving"] = "Weaving";
  MinecraftPotionEffectTypes2["WindCharged"] = "WindCharged";
  MinecraftPotionEffectTypes2["Wither"] = "Wither";
  return MinecraftPotionEffectTypes2;
})(MinecraftPotionEffectTypes || {});
var MinecraftPotionLiquidTypes = ((MinecraftPotionLiquidTypes2) => {
  MinecraftPotionLiquidTypes2["Lingering"] = "Lingering";
  MinecraftPotionLiquidTypes2["Regular"] = "Regular";
  MinecraftPotionLiquidTypes2["Splash"] = "Splash";
  return MinecraftPotionLiquidTypes2;
})(MinecraftPotionLiquidTypes || {});
var MinecraftPotionModifierTypes = ((MinecraftPotionModifierTypes2) => {
  MinecraftPotionModifierTypes2["Long"] = "Long";
  MinecraftPotionModifierTypes2["Normal"] = "Normal";
  MinecraftPotionModifierTypes2["Strong"] = "Strong";
  return MinecraftPotionModifierTypes2;
})(MinecraftPotionModifierTypes || {});

// scripts/helpers.ts
import {
  BlockComponentTypes,
  EntityComponentTypes as EntityComponentTypes2,
  EquipmentSlot,
  GameMode,
  ItemComponentTypes,
  ItemStack
} from "@minecraft/server";
function getMainhandItem(entity) {
  const equipment = entity.getComponent(EntityComponentTypes2.Equippable);
  return equipment?.getEquipment(EquipmentSlot.Mainhand);
}
function setMainhandItem(entity, stack) {
  const equipment = entity.getComponent(EntityComponentTypes2.Equippable);
  return equipment?.setEquipment(EquipmentSlot.Mainhand, stack);
}
function shrinkMainhandItem(entity, stack, amount) {
  if (stack.amount <= amount) {
    setMainhandItem(entity, void 0);
  } else {
    stack.amount -= amount;
    setMainhandItem(entity, stack);
  }
}
function setItemInInventory(entity, slot, stack) {
  getEntityInventory(entity)?.setItem(slot, stack);
}
function addItemToInventory(entity, stack) {
  return getEntityInventory(entity)?.addItem(stack);
}
function getItemInInventory(entity, slot) {
  return getEntityInventory(entity)?.getItem(slot);
}
function getEntityInventory(entity) {
  const inventory = entity.getComponent(EntityComponentTypes2.Inventory);
  return inventory?.container;
}
function getBlockInventory(block2) {
  const inventory = block2.getComponent(BlockComponentTypes.Inventory);
  return inventory?.container;
}
function damageItem(stack, amount) {
  const durability = stack.getComponent(ItemComponentTypes.Durability);
  if (!durability) {
    return stack;
  }
  const unbreaking = getEnchantmentLevel(stack, MinecraftEnchantmentTypes.Unbreaking);
  const chance = durability.getDamageChance(unbreaking);
  const range = durability.getDamageChanceRange();
  if (chance >= range.min && chance <= range.max) {
    durability.damage = Math.min(durability.damage + amount, durability.maxDurability);
    if (durability.damage >= durability.maxDurability) {
      return void 0;
    }
  }
  return stack;
}
function damageMainhandItem(stack, player, amount) {
  const result = damageItem(stack, amount);
  setMainhandItem(player, result);
  return result;
}
function createItemStack(item, amount) {
  if (amount < 1 || amount > 255) {
    return void 0;
  }
  return new ItemStack(item, amount);
}
function cloneWithCount(stack, amount) {
  const clone = stack.clone();
  clone.amount = amount;
  return clone;
}
function grow(stack, amount) {
  if (stack.amount + amount > stack.maxAmount) {
    amount = stack.maxAmount - stack.amount;
  }
  return cloneWithCount(stack, stack.amount + amount);
}
function shrink(stack, amount) {
  if (stack.amount - amount <= 0) {
    return void 0;
  }
  return cloneWithCount(stack, stack.amount - amount);
}
function getEnchantable(stack) {
  return stack.getComponent(ItemComponentTypes.Enchantable);
}
function getEnchantmentLevel(stack, enchantment) {
  const enchantable = stack.getComponent(ItemComponentTypes.Enchantable);
  return enchantable?.getEnchantment(enchantment)?.level ?? 0;
}
function formatEnchantmentLevel(level) {
  switch (level) {
    case 1:
      return "I";
    case 2:
      return "II";
    case 3:
      return "III";
    case 4:
      return "IV";
    case 5:
      return "V";
    case 6:
      return "VI";
    case 7:
      return "VII";
    case 8:
      return "VIII";
    case 9:
      return "IX";
    case 10:
      return "X";
    default:
      return level.toString();
  }
}
function copyItemData(input, output) {
  for (const property of input.getDynamicPropertyIds()) {
    output.setDynamicProperty(property, input.getDynamicProperty(property));
  }
  output.nameTag = input.nameTag;
  const inputEnchantable = input.getComponent(ItemComponentTypes.Enchantable);
  const outputEnchantable = output.getComponent(ItemComponentTypes.Enchantable);
  if (inputEnchantable && outputEnchantable) {
    outputEnchantable.addEnchantments(inputEnchantable.getEnchantments());
  }
  output.setLore(input.getLore());
}
function isCreativeMode(player) {
  return player.getGameMode() === GameMode.Creative;
}
function isInHeightRange(y, dimension) {
  return y >= dimension.heightRange.min && y <= dimension.heightRange.max;
}
function randInt(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min)) + min;
}
function randIntInclusive(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1)) + min;
}
function breakBlock(location, player) {
  removeBlock(location, player, isCreativeMode(player));
}
function removeBlock(location, player, replace) {
  player.dimension.runCommand(
    `setblock ${location.x} ${location.y} ${location.z} ${MinecraftBlockTypes.Air} ${replace ? "replace" : "destroy"}`
  );
}

// scripts/type-ids.ts
var AddonBlockTypes = /* @__PURE__ */ ((AddonBlockTypes2) => {
  AddonBlockTypes2["AirCrop"] = "ftb_ma:air_crop";
  AddonBlockTypes2["AmethystCrop"] = "ftb_ma:amethyst_crop";
  AddonBlockTypes2["ArmadilloCrop"] = "ftb_ma:armadillo_crop";
  AddonBlockTypes2["AwakenedSupremiumEssenceBlock"] = "ftb_ma:awakened_supremium_essence_block";
  AddonBlockTypes2["AwakenedSupremiumFarmland"] = "ftb_ma:awakened_supremium_farmland";
  AddonBlockTypes2["AwakenedSupremiumGemstoneBlock"] = "ftb_ma:awakened_supremium_gemstone_block";
  AddonBlockTypes2["AwakenedSupremiumGrowthAccelerator"] = "ftb_ma:awakened_supremium_growth_accelerator";
  AddonBlockTypes2["AwakenedSupremiumIngotBlock"] = "ftb_ma:awakened_supremium_ingot_block";
  AddonBlockTypes2["AwakeningAltar"] = "ftb_ma:awakening_altar";
  AddonBlockTypes2["AwakeningPedestal"] = "ftb_ma:awakening_pedestal";
  AddonBlockTypes2["BlazeCrop"] = "ftb_ma:blaze_crop";
  AddonBlockTypes2["BreezeCrop"] = "ftb_ma:breeze_crop";
  AddonBlockTypes2["ChickenCrop"] = "ftb_ma:chicken_crop";
  AddonBlockTypes2["ChiseledSoulstoneBricks"] = "ftb_ma:chiseled_soulstone_bricks";
  AddonBlockTypes2["CoalCrop"] = "ftb_ma:coal_crop";
  AddonBlockTypes2["CobbledSoulstone"] = "ftb_ma:cobbled_soulstone";
  AddonBlockTypes2["CopperCrop"] = "ftb_ma:copper_crop";
  AddonBlockTypes2["CoralCrop"] = "ftb_ma:coral_crop";
  AddonBlockTypes2["CowCrop"] = "ftb_ma:cow_crop";
  AddonBlockTypes2["CrackedSoulstoneBricks"] = "ftb_ma:cracked_soulstone_bricks";
  AddonBlockTypes2["CreeperCrop"] = "ftb_ma:creeper_crop";
  AddonBlockTypes2["DeepslateCrop"] = "ftb_ma:deepslate_crop";
  AddonBlockTypes2["DeepslateInferiumOre"] = "ftb_ma:deepslate_inferium_ore";
  AddonBlockTypes2["DeepslateProsperityOre"] = "ftb_ma:deepslate_prosperity_ore";
  AddonBlockTypes2["DiamondCrop"] = "ftb_ma:diamond_crop";
  AddonBlockTypes2["DirtCrop"] = "ftb_ma:dirt_crop";
  AddonBlockTypes2["DyeCrop"] = "ftb_ma:dye_crop";
  AddonBlockTypes2["EarthCrop"] = "ftb_ma:earth_crop";
  AddonBlockTypes2["EmeraldCrop"] = "ftb_ma:emerald_crop";
  AddonBlockTypes2["Enchanter"] = "ftb_ma:enchanter";
  AddonBlockTypes2["EndCrop"] = "ftb_ma:end_crop";
  AddonBlockTypes2["EndermanCrop"] = "ftb_ma:enderman_crop";
  AddonBlockTypes2["EssenceVessel"] = "ftb_ma:essence_vessel";
  AddonBlockTypes2["ExperienceCrop"] = "ftb_ma:experience_crop";
  AddonBlockTypes2["FireCrop"] = "ftb_ma:fire_crop";
  AddonBlockTypes2["FishCrop"] = "ftb_ma:fish_crop";
  AddonBlockTypes2["Furnace"] = "ftb_ma:furnace";
  AddonBlockTypes2["GhastCrop"] = "ftb_ma:ghast_crop";
  AddonBlockTypes2["GlowstoneCrop"] = "ftb_ma:glowstone_crop";
  AddonBlockTypes2["GoldCrop"] = "ftb_ma:gold_crop";
  AddonBlockTypes2["Harvester"] = "ftb_ma:harvester";
  AddonBlockTypes2["HoneyCrop"] = "ftb_ma:honey_crop";
  AddonBlockTypes2["IceCrop"] = "ftb_ma:ice_crop";
  AddonBlockTypes2["ImperiumEssenceBlock"] = "ftb_ma:imperium_essence_block";
  AddonBlockTypes2["ImperiumFarmland"] = "ftb_ma:imperium_farmland";
  AddonBlockTypes2["ImperiumGemstoneBlock"] = "ftb_ma:imperium_gemstone_block";
  AddonBlockTypes2["ImperiumGrowthAccelerator"] = "ftb_ma:imperium_growth_accelerator";
  AddonBlockTypes2["ImperiumIngotBlock"] = "ftb_ma:imperium_ingot_block";
  AddonBlockTypes2["InferiumCrop"] = "ftb_ma:inferium_crop";
  AddonBlockTypes2["InferiumEssenceBlock"] = "ftb_ma:inferium_essence_block";
  AddonBlockTypes2["InferiumFarmland"] = "ftb_ma:inferium_farmland";
  AddonBlockTypes2["InferiumGemstoneBlock"] = "ftb_ma:inferium_gemstone_block";
  AddonBlockTypes2["InferiumGrowthAccelerator"] = "ftb_ma:inferium_growth_accelerator";
  AddonBlockTypes2["InferiumIngotBlock"] = "ftb_ma:inferium_ingot_block";
  AddonBlockTypes2["InferiumOre"] = "ftb_ma:inferium_ore";
  AddonBlockTypes2["InfusionAltar"] = "ftb_ma:infusion_altar";
  AddonBlockTypes2["InfusionPedestal"] = "ftb_ma:infusion_pedestal";
  AddonBlockTypes2["IronCrop"] = "ftb_ma:iron_crop";
  AddonBlockTypes2["LapisLazuliCrop"] = "ftb_ma:lapis_lazuli_crop";
  AddonBlockTypes2["MachineFrame"] = "ftb_ma:machine_frame";
  AddonBlockTypes2["NatureCrop"] = "ftb_ma:nature_crop";
  AddonBlockTypes2["NetherCrop"] = "ftb_ma:nether_crop";
  AddonBlockTypes2["NetherQuartzCrop"] = "ftb_ma:nether_quartz_crop";
  AddonBlockTypes2["NetheriteCrop"] = "ftb_ma:netherite_crop";
  AddonBlockTypes2["ObsidianCrop"] = "ftb_ma:obsidian_crop";
  AddonBlockTypes2["PigCrop"] = "ftb_ma:pig_crop";
  AddonBlockTypes2["PrismarineCrop"] = "ftb_ma:prismarine_crop";
  AddonBlockTypes2["ProsperityGemstoneBlock"] = "ftb_ma:prosperity_gemstone_block";
  AddonBlockTypes2["ProsperityIngotBlock"] = "ftb_ma:prosperity_ingot_block";
  AddonBlockTypes2["ProsperityOre"] = "ftb_ma:prosperity_ore";
  AddonBlockTypes2["ProsperityShardBlock"] = "ftb_ma:prosperity_shard_block";
  AddonBlockTypes2["PrudentiumEssenceBlock"] = "ftb_ma:prudentium_essence_block";
  AddonBlockTypes2["PrudentiumFarmland"] = "ftb_ma:prudentium_farmland";
  AddonBlockTypes2["PrudentiumGemstoneBlock"] = "ftb_ma:prudentium_gemstone_block";
  AddonBlockTypes2["PrudentiumGrowthAccelerator"] = "ftb_ma:prudentium_growth_accelerator";
  AddonBlockTypes2["PrudentiumIngotBlock"] = "ftb_ma:prudentium_ingot_block";
  AddonBlockTypes2["RabbitCrop"] = "ftb_ma:rabbit_crop";
  AddonBlockTypes2["RedstoneCrop"] = "ftb_ma:redstone_crop";
  AddonBlockTypes2["SeedReprocessor"] = "ftb_ma:seed_reprocessor";
  AddonBlockTypes2["SheepCrop"] = "ftb_ma:sheep_crop";
  AddonBlockTypes2["SkeletonCrop"] = "ftb_ma:skeleton_crop";
  AddonBlockTypes2["SlimeCrop"] = "ftb_ma:slime_crop";
  AddonBlockTypes2["SmoothSoulstone"] = "ftb_ma:smooth_soulstone";
  AddonBlockTypes2["SoulExtractor"] = "ftb_ma:soul_extractor";
  AddonBlockTypes2["SoulGlass"] = "ftb_ma:soul_glass";
  AddonBlockTypes2["SouliumCrop"] = "ftb_ma:soulium_crop";
  AddonBlockTypes2["SouliumDustBlock"] = "ftb_ma:soulium_dust_block";
  AddonBlockTypes2["SouliumGemstoneBlock"] = "ftb_ma:soulium_gemstone_block";
  AddonBlockTypes2["SouliumIngotBlock"] = "ftb_ma:soulium_ingot_block";
  AddonBlockTypes2["SouliumOre"] = "ftb_ma:soulium_ore";
  AddonBlockTypes2["SouliumSpawner"] = "ftb_ma:soulium_spawner";
  AddonBlockTypes2["Soulstone"] = "ftb_ma:soulstone";
  AddonBlockTypes2["SoulstoneBricks"] = "ftb_ma:soulstone_bricks";
  AddonBlockTypes2["SpiderCrop"] = "ftb_ma:spider_crop";
  AddonBlockTypes2["SquidCrop"] = "ftb_ma:squid_crop";
  AddonBlockTypes2["StoneCrop"] = "ftb_ma:stone_crop";
  AddonBlockTypes2["SupremiumEssenceBlock"] = "ftb_ma:supremium_essence_block";
  AddonBlockTypes2["SupremiumFarmland"] = "ftb_ma:supremium_farmland";
  AddonBlockTypes2["SupremiumGemstoneBlock"] = "ftb_ma:supremium_gemstone_block";
  AddonBlockTypes2["SupremiumGrowthAccelerator"] = "ftb_ma:supremium_growth_accelerator";
  AddonBlockTypes2["SupremiumIngotBlock"] = "ftb_ma:supremium_ingot_block";
  AddonBlockTypes2["TertiumEssenceBlock"] = "ftb_ma:tertium_essence_block";
  AddonBlockTypes2["TertiumFarmland"] = "ftb_ma:tertium_farmland";
  AddonBlockTypes2["TertiumGemstoneBlock"] = "ftb_ma:tertium_gemstone_block";
  AddonBlockTypes2["TertiumGrowthAccelerator"] = "ftb_ma:tertium_growth_accelerator";
  AddonBlockTypes2["TertiumIngotBlock"] = "ftb_ma:tertium_ingot_block";
  AddonBlockTypes2["TinkeringTable"] = "ftb_ma:tinkering_table";
  AddonBlockTypes2["TurtleCrop"] = "ftb_ma:turtle_crop";
  AddonBlockTypes2["WaterCrop"] = "ftb_ma:water_crop";
  AddonBlockTypes2["WitherSkeletonCrop"] = "ftb_ma:wither_skeleton_crop";
  AddonBlockTypes2["WoodCrop"] = "ftb_ma:wood_crop";
  AddonBlockTypes2["ZombieCrop"] = "ftb_ma:zombie_crop";
  return AddonBlockTypes2;
})(AddonBlockTypes || {});

// scripts/data/recipes/awakening.ts
import { ItemStack as ItemStack2 } from "@minecraft/server";
function registerAwakeningRecipes(registry) {
  registry.register(
    new AwakeningRecipe(
      "awakened_supremium_block",
      new Input("ftb_ma:supremium_essence_block" /* SupremiumEssenceBlock */, "item"),
      [
        new Input("ftb_ma:cognizant_dust" /* CognizantDust */, "item"),
        new Input("ftb_ma:cognizant_dust" /* CognizantDust */, "item"),
        new Input("ftb_ma:cognizant_dust" /* CognizantDust */, "item"),
        new Input("ftb_ma:cognizant_dust" /* CognizantDust */, "item")
      ],
      10,
      new ItemStack2("ftb_ma:awakened_supremium_essence_block" /* AwakenedSupremiumEssenceBlock */)
    ),
    new AwakeningRecipe(
      "awakened_supremium_machine_upgrade",
      new Input("ftb_ma:supremium_machine_upgrade" /* SupremiumMachineUpgrade */, "item"),
      [
        new Input("ftb_ma:awakened_supremium_ingot" /* AwakenedSupremiumIngot */, "item"),
        new Input("ftb_ma:awakened_supremium_ingot" /* AwakenedSupremiumIngot */, "item"),
        new Input("ftb_ma:awakened_supremium_ingot" /* AwakenedSupremiumIngot */, "item"),
        new Input("ftb_ma:awakened_supremium_ingot" /* AwakenedSupremiumIngot */, "item")
      ],
      20,
      new ItemStack2("ftb_ma:awakened_supremium_machine_upgrade" /* AwakenedSupremiumMachineUpgrade */)
    ),
    createAwakenedSupremiumGearUpgradeRecipe("ftb_ma:awakened_supremium_sword" /* AwakenedSupremiumSword */, "ftb_ma:supremium_sword" /* SupremiumSword */),
    createAwakenedSupremiumGearUpgradeRecipe("ftb_ma:awakened_supremium_pickaxe" /* AwakenedSupremiumPickaxe */, "ftb_ma:supremium_pickaxe" /* SupremiumPickaxe */),
    createAwakenedSupremiumGearUpgradeRecipe("ftb_ma:awakened_supremium_shovel" /* AwakenedSupremiumShovel */, "ftb_ma:supremium_shovel" /* SupremiumShovel */),
    createAwakenedSupremiumGearUpgradeRecipe("ftb_ma:awakened_supremium_axe" /* AwakenedSupremiumAxe */, "ftb_ma:supremium_axe" /* SupremiumAxe */),
    createAwakenedSupremiumGearUpgradeRecipe("ftb_ma:awakened_supremium_hoe" /* AwakenedSupremiumHoe */, "ftb_ma:supremium_hoe" /* SupremiumHoe */),
    createAwakenedSupremiumGearUpgradeRecipe("ftb_ma:awakened_supremium_shears" /* AwakenedSupremiumShears */, "ftb_ma:supremium_shears" /* SupremiumShears */),
    createAwakenedSupremiumGearUpgradeRecipe("ftb_ma:awakened_supremium_sickle" /* AwakenedSupremiumSickle */, "ftb_ma:supremium_sickle" /* SupremiumSickle */),
    createAwakenedSupremiumGearUpgradeRecipe("ftb_ma:awakened_supremium_scythe" /* AwakenedSupremiumScythe */, "ftb_ma:supremium_scythe" /* SupremiumScythe */),
    createAwakenedSupremiumGearUpgradeRecipe("ftb_ma:awakened_supremium_helmet" /* AwakenedSupremiumHelmet */, "ftb_ma:supremium_helmet" /* SupremiumHelmet */),
    createAwakenedSupremiumGearUpgradeRecipe("ftb_ma:awakened_supremium_chestplate" /* AwakenedSupremiumChestplate */, "ftb_ma:supremium_chestplate" /* SupremiumChestplate */),
    createAwakenedSupremiumGearUpgradeRecipe("ftb_ma:awakened_supremium_leggings" /* AwakenedSupremiumLeggings */, "ftb_ma:supremium_leggings" /* SupremiumLeggings */),
    createAwakenedSupremiumGearUpgradeRecipe("ftb_ma:awakened_supremium_boots" /* AwakenedSupremiumBoots */, "ftb_ma:supremium_boots" /* SupremiumBoots */)
  );
}
function createAwakenedSupremiumGearUpgradeRecipe(result, input) {
  return new AwakeningRecipe(
    result.split(":").at(1),
    new Input(input, "item"),
    [
      new Input("ftb_ma:awakened_supremium_ingot" /* AwakenedSupremiumIngot */, "item"),
      new Input("ftb_ma:awakened_supremium_gemstone" /* AwakenedSupremiumGemstone */, "item"),
      new Input("ftb_ma:awakened_supremium_ingot" /* AwakenedSupremiumIngot */, "item"),
      new Input("ftb_ma:awakened_supremium_gemstone" /* AwakenedSupremiumGemstone */, "item")
    ],
    40,
    new ItemStack2(result),
    true
  );
}

// scripts/data/recipes/enchanter.ts
function isEnchanterInput(item) {
  return SpecialRecipes2.Registry.getInputCache(RecipeTypes.Enchanter)?.hasItem(item.typeId) ?? false;
}
function registerEnchanterRecipes(registry) {
  registry.register(
    createEnchanterRecipe(MinecraftEnchantmentTypes.AquaAffinity, 64, MinecraftItemTypes.Waterlily, 6),
    createEnchanterRecipe(MinecraftEnchantmentTypes.BaneOfArthropods, 64, MinecraftItemTypes.SpiderEye, 12),
    createEnchanterRecipe(MinecraftEnchantmentTypes.BlastProtection, 64, MinecraftItemTypes.Gunpowder, 12),
    createEnchanterRecipe(MinecraftEnchantmentTypes.Breach, 64, MinecraftItemTypes.CopperIngot, 12),
    createEnchanterRecipe(MinecraftEnchantmentTypes.Channeling, 64, MinecraftItemTypes.LightningRod, 1),
    createEnchanterRecipe(MinecraftEnchantmentTypes.Density, 64, MinecraftItemTypes.IronBlock, 2),
    createEnchanterRecipe(MinecraftEnchantmentTypes.DepthStrider, 64, MinecraftItemTypes.PrismarineShard, 12),
    createEnchanterRecipe(MinecraftEnchantmentTypes.Efficiency, 64, MinecraftItemTypes.Redstone, 16),
    createEnchanterRecipe(MinecraftEnchantmentTypes.FeatherFalling, 64, MinecraftItemTypes.Feather, 16),
    createEnchanterRecipe(MinecraftEnchantmentTypes.FireAspect, 64, MinecraftItemTypes.BlazeRod, 8),
    createEnchanterRecipe(MinecraftEnchantmentTypes.FireProtection, 64, MinecraftItemTypes.MagmaCream, 12),
    createEnchanterRecipe(MinecraftEnchantmentTypes.Flame, 64, MinecraftItemTypes.BlazePowder, 16),
    createEnchanterRecipe(MinecraftEnchantmentTypes.Fortune, 64, MinecraftItemTypes.GoldIngot, 12),
    createEnchanterRecipe(MinecraftEnchantmentTypes.FrostWalker, 64, MinecraftItemTypes.Ice, 24),
    createEnchanterRecipe(MinecraftEnchantmentTypes.Impaling, 64, MinecraftItemTypes.IronIngot, 12),
    createEnchanterRecipe(MinecraftEnchantmentTypes.BowInfinity, 64, MinecraftItemTypes.Arrow, 12),
    createEnchanterRecipe(MinecraftEnchantmentTypes.Knockback, 64, MinecraftItemTypes.Piston, 4),
    createEnchanterRecipe(MinecraftEnchantmentTypes.Looting, 64, MinecraftItemTypes.Emerald, 8),
    createEnchanterRecipe(MinecraftEnchantmentTypes.Loyalty, 64, MinecraftItemTypes.Lead, 6),
    createEnchanterRecipe(MinecraftEnchantmentTypes.LuckOfTheSea, 64, MinecraftItemTypes.LapisLazuli, 16),
    createEnchanterRecipe(MinecraftEnchantmentTypes.Lure, 64, MinecraftItemTypes.Cod, 16),
    createEnchanterRecipe(MinecraftEnchantmentTypes.Mending, 256, MinecraftItemTypes.WitherSkeletonSkull, 3),
    createEnchanterRecipe(MinecraftEnchantmentTypes.Multishot, 128, MinecraftItemTypes.Bow, 3),
    createEnchanterRecipe(MinecraftEnchantmentTypes.Piercing, 64, MinecraftItemTypes.AmethystShard, 12),
    createEnchanterRecipe(MinecraftEnchantmentTypes.Power, 64, MinecraftItemTypes.Flint, 12),
    createEnchanterRecipe(MinecraftEnchantmentTypes.ProjectileProtection, 64, MinecraftItemTypes.Bone, 12),
    createEnchanterRecipe(MinecraftEnchantmentTypes.Protection, 64, MinecraftItemTypes.Leather, 16),
    createEnchanterRecipe(MinecraftEnchantmentTypes.Punch, 64, MinecraftItemTypes.String, 12),
    createEnchanterRecipe(MinecraftEnchantmentTypes.QuickCharge, 64, MinecraftItemTypes.Sugar, 16),
    createEnchanterRecipe(MinecraftEnchantmentTypes.Respiration, 64, MinecraftItemTypes.GlassBottle, 18),
    createEnchanterRecipe(MinecraftEnchantmentTypes.Riptide, 64, MinecraftItemTypes.EnderPearl, 4),
    createEnchanterRecipe(MinecraftEnchantmentTypes.Sharpness, 64, MinecraftItemTypes.Quartz, 16),
    createEnchanterRecipe(MinecraftEnchantmentTypes.SilkTouch, 128, MinecraftItemTypes.SlimeBall, 32),
    createEnchanterRecipe(MinecraftEnchantmentTypes.Smite, 64, MinecraftItemTypes.RottenFlesh, 16),
    createEnchanterRecipe(MinecraftEnchantmentTypes.SoulSpeed, 64, MinecraftItemTypes.SoulSoil, 16),
    createEnchanterRecipe(MinecraftEnchantmentTypes.SwiftSneak, 64, MinecraftItemTypes.CocoaBeans, 12),
    createEnchanterRecipe(MinecraftEnchantmentTypes.Thorns, 64, MinecraftItemTypes.RoseBush, 12),
    createEnchanterRecipe(MinecraftEnchantmentTypes.Unbreaking, 64, MinecraftItemTypes.Obsidian, 16),
    createEnchanterRecipe(MinecraftEnchantmentTypes.WindBurst, 64, MinecraftItemTypes.WindCharge, 20)
  );
}
function createEnchanterRecipe(result, experienceEssence, input, amount) {
  return new EnchanterRecipe(result, new InputWithCount(input, amount), experienceEssence, result);
}

// scripts/data/recipes/furnace.ts
import { ItemStack as ItemStack3 } from "@minecraft/server";

// scripts/constants.ts
function createIdentifier(path) {
  return `${"ftb_ma" /* Identifier */}:${path}`;
}
var ToolDestructibleTags = /* @__PURE__ */ ((ToolDestructibleTags2) => {
  ToolDestructibleTags2["Axe"] = "minecraft:is_axe_item_destructible";
  ToolDestructibleTags2["Hoe"] = "minecraft:is_hoe_item_destructible";
  ToolDestructibleTags2["Mace"] = "minecraft:is_mace_item_destructible";
  ToolDestructibleTags2["Pickaxe"] = "minecraft:is_pickaxe_item_destructible";
  ToolDestructibleTags2["Shears"] = "minecraft:is_shears_item_destructible";
  ToolDestructibleTags2["Shovel"] = "minecraft:is_shovel_item_destructible";
  ToolDestructibleTags2["Sword"] = "minecraft:is_sword_item_destructible";
  ToolDestructibleTags2["Scythe"] = "ftb_ma:is_scythe_item_destructible";
  ToolDestructibleTags2["Sickle"] = "ftb_ma:is_sickle_item_destructible";
  return ToolDestructibleTags2;
})(ToolDestructibleTags || {});
var SHEAR_DESTRUCTIBLE_BLOCKS = [
  MinecraftBlockTypes.GlowLichen,
  MinecraftBlockTypes.Vine,
  // leaves
  MinecraftBlockTypes.OakLeaves,
  MinecraftBlockTypes.SpruceLeaves,
  MinecraftBlockTypes.BirchLeaves,
  MinecraftBlockTypes.JungleLeaves,
  MinecraftBlockTypes.AcaciaLeaves,
  MinecraftBlockTypes.DarkOakLeaves,
  MinecraftBlockTypes.MangroveLeaves,
  MinecraftBlockTypes.CherryLeaves,
  MinecraftBlockTypes.PaleOakLeaves,
  MinecraftBlockTypes.AzaleaLeaves,
  MinecraftBlockTypes.AzaleaLeavesFlowered,
  // wools
  MinecraftBlockTypes.WhiteWool,
  MinecraftBlockTypes.LightGrayWool,
  MinecraftBlockTypes.GrayWool,
  MinecraftBlockTypes.BlackWool,
  MinecraftBlockTypes.BrownWool,
  MinecraftBlockTypes.RedWool,
  MinecraftBlockTypes.OrangeWool,
  MinecraftBlockTypes.YellowWool,
  MinecraftBlockTypes.LimeWool,
  MinecraftBlockTypes.GreenWool,
  MinecraftBlockTypes.CyanWool,
  MinecraftBlockTypes.LightBlueWool,
  MinecraftBlockTypes.BlueWool,
  MinecraftBlockTypes.PurpleWool,
  MinecraftBlockTypes.MagentaWool,
  MinecraftBlockTypes.PinkWool
];
var SICKLE_DESTRUCTIBLE_BLOCKS = [
  // trees and saplings
  MinecraftBlockTypes.OakLeaves,
  MinecraftBlockTypes.OakSapling,
  MinecraftBlockTypes.BirchLeaves,
  MinecraftBlockTypes.BirchSapling,
  MinecraftBlockTypes.AcaciaLeaves,
  MinecraftBlockTypes.AcaciaSapling,
  MinecraftBlockTypes.AzaleaLeaves,
  MinecraftBlockTypes.AzaleaLeavesFlowered,
  MinecraftBlockTypes.Azalea,
  MinecraftBlockTypes.FloweringAzalea,
  MinecraftBlockTypes.CherryLeaves,
  MinecraftBlockTypes.CherrySapling,
  MinecraftBlockTypes.JungleLeaves,
  MinecraftBlockTypes.JungleSapling,
  MinecraftBlockTypes.SpruceLeaves,
  MinecraftBlockTypes.SpruceSapling,
  MinecraftBlockTypes.DarkOakLeaves,
  MinecraftBlockTypes.DarkOakSapling,
  MinecraftBlockTypes.MangroveLeaves,
  MinecraftBlockTypes.MangrovePropagule,
  // corals
  MinecraftBlockTypes.FireCoral,
  MinecraftBlockTypes.FireCoralBlock,
  MinecraftBlockTypes.FireCoralFan,
  MinecraftBlockTypes.FireCoralWallFan,
  MinecraftBlockTypes.DeadFireCoral,
  MinecraftBlockTypes.DeadFireCoralBlock,
  MinecraftBlockTypes.DeadFireCoralFan,
  MinecraftBlockTypes.DeadFireCoralWallFan,
  MinecraftBlockTypes.HornCoral,
  MinecraftBlockTypes.HornCoralBlock,
  MinecraftBlockTypes.HornCoralFan,
  MinecraftBlockTypes.DeadHornCoral,
  MinecraftBlockTypes.DeadHornCoralBlock,
  MinecraftBlockTypes.DeadHornCoralFan,
  MinecraftBlockTypes.DeadHornCoralWallFan,
  MinecraftBlockTypes.BrainCoral,
  MinecraftBlockTypes.BrainCoralBlock,
  MinecraftBlockTypes.BrainCoralFan,
  MinecraftBlockTypes.BrainCoralWallFan,
  MinecraftBlockTypes.DeadBrainCoral,
  MinecraftBlockTypes.DeadBrainCoralBlock,
  MinecraftBlockTypes.DeadBrainCoralFan,
  MinecraftBlockTypes.DeadBrainCoralWallFan,
  MinecraftBlockTypes.TubeCoral,
  MinecraftBlockTypes.TubeCoralBlock,
  MinecraftBlockTypes.TubeCoralFan,
  MinecraftBlockTypes.TubeCoralWallFan,
  MinecraftBlockTypes.DeadTubeCoral,
  MinecraftBlockTypes.DeadTubeCoralBlock,
  MinecraftBlockTypes.DeadTubeCoralFan,
  MinecraftBlockTypes.DeadTubeCoralWallFan,
  MinecraftBlockTypes.BubbleCoral,
  MinecraftBlockTypes.BubbleCoralBlock,
  MinecraftBlockTypes.BubbleCoralFan,
  MinecraftBlockTypes.BubbleCoralWallFan,
  MinecraftBlockTypes.DeadBubbleCoral,
  MinecraftBlockTypes.DeadBubbleCoralBlock,
  MinecraftBlockTypes.DeadBubbleCoralFan,
  MinecraftBlockTypes.DeadBubbleCoralWallFan,
  // plants
  MinecraftBlockTypes.Reeds,
  MinecraftBlockTypes.Cocoa,
  MinecraftBlockTypes.NetherWart,
  // flowers
  MinecraftBlockTypes.Dandelion,
  MinecraftBlockTypes.Poppy,
  MinecraftBlockTypes.BlueOrchid,
  MinecraftBlockTypes.Allium,
  MinecraftBlockTypes.AzureBluet,
  MinecraftBlockTypes.RedTulip,
  MinecraftBlockTypes.OrangeTulip,
  MinecraftBlockTypes.WhiteTulip,
  MinecraftBlockTypes.PinkTulip,
  MinecraftBlockTypes.OxeyeDaisy,
  MinecraftBlockTypes.Cornflower,
  MinecraftBlockTypes.LilyOfTheValley,
  MinecraftBlockTypes.Sunflower,
  MinecraftBlockTypes.Lilac,
  MinecraftBlockTypes.RoseBush,
  MinecraftBlockTypes.Peony,
  MinecraftBlockTypes.PitcherPlant,
  MinecraftBlockTypes.PinkPetals,
  MinecraftBlockTypes.Wildflowers,
  MinecraftBlockTypes.WitherRose,
  MinecraftBlockTypes.Torchflower,
  MinecraftBlockTypes.CactusFlower,
  MinecraftBlockTypes.ClosedEyeblossom,
  MinecraftBlockTypes.OpenEyeblossom,
  // shrubbery
  MinecraftBlockTypes.TallGrass,
  MinecraftBlockTypes.TallDryGrass,
  MinecraftBlockTypes.ShortGrass,
  MinecraftBlockTypes.ShortDryGrass,
  MinecraftBlockTypes.Waterlily,
  MinecraftBlockTypes.Fern,
  MinecraftBlockTypes.LargeFern,
  MinecraftBlockTypes.Bush,
  MinecraftBlockTypes.FireflyBush,
  MinecraftBlockTypes.Deadbush,
  MinecraftBlockTypes.Seagrass,
  MinecraftBlockTypes.Vine,
  MinecraftBlockTypes.CaveVines,
  MinecraftBlockTypes.CaveVinesBodyWithBerries,
  MinecraftBlockTypes.CaveVinesHeadWithBerries,
  MinecraftBlockTypes.WeepingVines,
  MinecraftBlockTypes.TwistingVines,
  MinecraftBlockTypes.GlowLichen,
  MinecraftBlockTypes.WarpedRoots,
  MinecraftBlockTypes.NetherSprouts,
  MinecraftBlockTypes.CrimsonRoots,
  MinecraftBlockTypes.HangingRoots,
  MinecraftBlockTypes.CrimsonFungus,
  MinecraftBlockTypes.WarpedFungus,
  MinecraftBlockTypes.WeepingVines,
  MinecraftBlockTypes.TwistingVines
];
var SICKLE_DESTRUCTIBLE_TAGS = ["minecraft:is_hoe_item_destructible" /* Hoe */, "minecraft:crop", "ftb_ma:crop" /* Crop */];
var TINKERABLE_ITEM_MAP = /* @__PURE__ */ new Map([
  ["ftb_ma:inferium_sword", { tier: 1, slots: 1, type: "Sword" }],
  ["ftb_ma:inferium_pickaxe", { tier: 1, slots: 1, type: "Pickaxe" }],
  ["ftb_ma:inferium_shovel", { tier: 1, slots: 1, type: "Shovel" }],
  ["ftb_ma:inferium_axe", { tier: 1, slots: 1, type: "Axe" }],
  ["ftb_ma:inferium_hoe", { tier: 1, slots: 1, type: "Hoe" }],
  ["ftb_ma:inferium_shears", { tier: 1, slots: 1, type: "Shears" }],
  ["ftb_ma:inferium_sickle", { tier: 1, slots: 1, type: "Sickle" }],
  ["ftb_ma:inferium_scythe", { tier: 1, slots: 1, type: "Scythe" }],
  ["ftb_ma:inferium_helmet", { tier: 1, slots: 1, type: "Helmet" }],
  ["ftb_ma:inferium_chestplate", { tier: 1, slots: 1, type: "Chestplate" }],
  ["ftb_ma:inferium_leggings", { tier: 1, slots: 1, type: "Leggings" }],
  ["ftb_ma:inferium_boots", { tier: 1, slots: 1, type: "Boots" }],
  ["ftb_ma:prudentium_sword", { tier: 2, slots: 1, type: "Sword" }],
  ["ftb_ma:prudentium_pickaxe", { tier: 2, slots: 1, type: "Pickaxe" }],
  ["ftb_ma:prudentium_shovel", { tier: 2, slots: 1, type: "Shovel" }],
  ["ftb_ma:prudentium_axe", { tier: 2, slots: 1, type: "Axe" }],
  ["ftb_ma:prudentium_hoe", { tier: 2, slots: 1, type: "Hoe" }],
  ["ftb_ma:prudentium_shears", { tier: 2, slots: 1, type: "Shears" }],
  ["ftb_ma:prudentium_sickle", { tier: 2, slots: 1, type: "Sickle" }],
  ["ftb_ma:prudentium_scythe", { tier: 2, slots: 1, type: "Scythe" }],
  ["ftb_ma:prudentium_helmet", { tier: 2, slots: 1, type: "Helmet" }],
  ["ftb_ma:prudentium_chestplate", { tier: 2, slots: 1, type: "Chestplate" }],
  ["ftb_ma:prudentium_leggings", { tier: 2, slots: 1, type: "Leggings" }],
  ["ftb_ma:prudentium_boots", { tier: 2, slots: 1, type: "Boots" }],
  ["ftb_ma:tertium_sword", { tier: 3, slots: 1, type: "Sword" }],
  ["ftb_ma:tertium_pickaxe", { tier: 3, slots: 1, type: "Pickaxe" }],
  ["ftb_ma:tertium_shovel", { tier: 3, slots: 1, type: "Shovel" }],
  ["ftb_ma:tertium_axe", { tier: 3, slots: 1, type: "Axe" }],
  ["ftb_ma:tertium_hoe", { tier: 3, slots: 1, type: "Hoe" }],
  ["ftb_ma:tertium_shears", { tier: 3, slots: 1, type: "Shears" }],
  ["ftb_ma:tertium_sickle", { tier: 3, slots: 1, type: "Sickle" }],
  ["ftb_ma:tertium_scythe", { tier: 3, slots: 1, type: "Scythe" }],
  ["ftb_ma:tertium_helmet", { tier: 3, slots: 1, type: "Helmet" }],
  ["ftb_ma:tertium_chestplate", { tier: 3, slots: 1, type: "Chestplate" }],
  ["ftb_ma:tertium_leggings", { tier: 3, slots: 1, type: "Leggings" }],
  ["ftb_ma:tertium_boots", { tier: 3, slots: 1, type: "Boots" }],
  ["ftb_ma:imperium_sword", { tier: 4, slots: 1, type: "Sword" }],
  ["ftb_ma:imperium_pickaxe", { tier: 4, slots: 1, type: "Pickaxe" }],
  ["ftb_ma:imperium_shovel", { tier: 4, slots: 1, type: "Shovel" }],
  ["ftb_ma:imperium_axe", { tier: 4, slots: 1, type: "Axe" }],
  ["ftb_ma:imperium_hoe", { tier: 4, slots: 1, type: "Hoe" }],
  ["ftb_ma:imperium_shears", { tier: 4, slots: 1, type: "Shears" }],
  ["ftb_ma:imperium_sickle", { tier: 4, slots: 1, type: "Sickle" }],
  ["ftb_ma:imperium_scythe", { tier: 4, slots: 1, type: "Scythe" }],
  ["ftb_ma:imperium_helmet", { tier: 4, slots: 1, type: "Helmet" }],
  ["ftb_ma:imperium_chestplate", { tier: 4, slots: 1, type: "Chestplate" }],
  ["ftb_ma:imperium_leggings", { tier: 4, slots: 1, type: "Leggings" }],
  ["ftb_ma:imperium_boots", { tier: 4, slots: 1, type: "Boots" }],
  ["ftb_ma:supremium_sword", { tier: 5, slots: 1, type: "Sword" }],
  ["ftb_ma:supremium_pickaxe", { tier: 5, slots: 1, type: "Pickaxe" }],
  ["ftb_ma:supremium_shovel", { tier: 5, slots: 1, type: "Shovel" }],
  ["ftb_ma:supremium_axe", { tier: 5, slots: 1, type: "Axe" }],
  ["ftb_ma:supremium_hoe", { tier: 5, slots: 1, type: "Hoe" }],
  ["ftb_ma:supremium_shears", { tier: 5, slots: 1, type: "Shears" }],
  ["ftb_ma:supremium_sickle", { tier: 5, slots: 1, type: "Sickle" }],
  ["ftb_ma:supremium_scythe", { tier: 5, slots: 1, type: "Scythe" }],
  ["ftb_ma:supremium_helmet", { tier: 5, slots: 1, type: "Helmet" }],
  ["ftb_ma:supremium_chestplate", { tier: 5, slots: 1, type: "Chestplate" }],
  ["ftb_ma:supremium_leggings", { tier: 5, slots: 1, type: "Leggings" }],
  ["ftb_ma:supremium_boots", { tier: 5, slots: 1, type: "Boots" }],
  ["ftb_ma:awakened_supremium_sword", { tier: 5, slots: 2, type: "Sword" }],
  ["ftb_ma:awakened_supremium_pickaxe", { tier: 5, slots: 2, type: "Pickaxe" }],
  ["ftb_ma:awakened_supremium_shovel", { tier: 5, slots: 2, type: "Shovel" }],
  ["ftb_ma:awakened_supremium_axe", { tier: 5, slots: 2, type: "Axe" }],
  ["ftb_ma:awakened_supremium_hoe", { tier: 5, slots: 2, type: "Hoe" }],
  ["ftb_ma:awakened_supremium_shears", { tier: 5, slots: 2, type: "Shears" }],
  ["ftb_ma:awakened_supremium_sickle", { tier: 5, slots: 2, type: "Sickle" }],
  ["ftb_ma:awakened_supremium_scythe", { tier: 5, slots: 2, type: "Scythe" }],
  ["ftb_ma:awakened_supremium_helmet", { tier: 5, slots: 2, type: "Helmet" }],
  ["ftb_ma:awakened_supremium_chestplate", { tier: 5, slots: 2, type: "Chestplate" }],
  ["ftb_ma:awakened_supremium_leggings", { tier: 5, slots: 2, type: "Leggings" }],
  ["ftb_ma:awakened_supremium_boots", { tier: 5, slots: 2, type: "Boots" }]
]);
var AUGMENT_ITEM_MAP = /* @__PURE__ */ new Map([
  ["ftb_ma:absorption_i_augment", { tier: 1, tinkerableTypes: ["Helmet", "Chestplate", "Leggings", "Boots"] }],
  ["ftb_ma:health_boost_i_augment", { tier: 1, tinkerableTypes: ["Helmet", "Chestplate", "Leggings", "Boots"] }],
  ["ftb_ma:pathing_aoe_i_augment", { tier: 1, tinkerableTypes: ["Shovel"] }],
  ["ftb_ma:nausea_resistance_augment", { tier: 1, tinkerableTypes: ["Helmet"] }],
  ["ftb_ma:night_vision_augment", { tier: 2, tinkerableTypes: ["Helmet"] }],
  ["ftb_ma:water_breathing_augment", { tier: 2, tinkerableTypes: ["Helmet"] }],
  ["ftb_ma:jump_boost_i_augment", { tier: 2, tinkerableTypes: ["Boots"] }],
  ["ftb_ma:health_boost_ii_augment", { tier: 2, tinkerableTypes: ["Helmet", "Chestplate", "Leggings", "Boots"] }],
  ["ftb_ma:mining_aoe_i_augment", { tier: 2, tinkerableTypes: ["Pickaxe", "Axe", "Shovel"] }],
  ["ftb_ma:tilling_aoe_i_augment", { tier: 2, tinkerableTypes: ["Hoe"] }],
  ["ftb_ma:pathing_aoe_ii_augment", { tier: 2, tinkerableTypes: ["Shovel"] }],
  ["ftb_ma:blindness_resistance_augment", { tier: 2, tinkerableTypes: ["Helmet"] }],
  ["ftb_ma:absorption_ii_augment", { tier: 3, tinkerableTypes: ["Helmet", "Chestplate", "Leggings", "Boots"] }],
  ["ftb_ma:fire_resistance_augment", { tier: 3, tinkerableTypes: ["Helmet", "Chestplate", "Leggings", "Boots"] }],
  ["ftb_ma:jump_boost_ii_augment", { tier: 3, tinkerableTypes: ["Boots"] }],
  ["ftb_ma:health_boost_iii_augment", { tier: 3, tinkerableTypes: ["Helmet", "Chestplate", "Leggings", "Boots"] }],
  ["ftb_ma:speed_i_augment", { tier: 3, tinkerableTypes: ["Leggings"] }],
  ["ftb_ma:strength_i_augment", { tier: 3, tinkerableTypes: ["Sword"] }],
  ["ftb_ma:haste_i_augment", { tier: 3, tinkerableTypes: ["Chestplate"] }],
  ["ftb_ma:slow_falling_augment", { tier: 3, tinkerableTypes: ["Boots"] }],
  ["ftb_ma:mining_aoe_ii_augment", { tier: 3, tinkerableTypes: ["Pickaxe", "Axe", "Shovel"] }],
  ["ftb_ma:attack_aoe_i_augment", { tier: 3, tinkerableTypes: ["Sword"] }],
  ["ftb_ma:tilling_aoe_ii_augment", { tier: 3, tinkerableTypes: ["Hoe"] }],
  ["ftb_ma:pathing_aoe_iii_augment", { tier: 3, tinkerableTypes: ["Shovel"] }],
  ["ftb_ma:weakness_resistance_augment", { tier: 3, tinkerableTypes: ["Chestplate"] }],
  ["ftb_ma:slowness_resistance_augment", { tier: 3, tinkerableTypes: ["Leggings"] }],
  ["ftb_ma:poison_resistance_augment", { tier: 4, tinkerableTypes: ["Helmet", "Chestplate", "Leggings", "Boots"] }],
  ["ftb_ma:jump_boost_iii_augment", { tier: 4, tinkerableTypes: ["Boots"] }],
  ["ftb_ma:health_boost_iv_augment", { tier: 4, tinkerableTypes: ["Helmet", "Chestplate", "Leggings", "Boots"] }],
  ["ftb_ma:speed_ii_augment", { tier: 4, tinkerableTypes: ["Leggings"] }],
  ["ftb_ma:strength_ii_augment", { tier: 4, tinkerableTypes: ["Sword"] }],
  ["ftb_ma:haste_ii_augment", { tier: 4, tinkerableTypes: ["Chestplate"] }],
  ["ftb_ma:mining_aoe_iii_augment", { tier: 4, tinkerableTypes: ["Pickaxe", "Axe", "Shovel"] }],
  ["ftb_ma:attack_aoe_ii_augment", { tier: 4, tinkerableTypes: ["Sword"] }],
  ["ftb_ma:tilling_aoe_iii_augment", { tier: 4, tinkerableTypes: ["Hoe"] }],
  ["ftb_ma:pathing_aoe_iv_augment", { tier: 4, tinkerableTypes: ["Shovel"] }],
  ["ftb_ma:mining_fatigue_resistance_augment", { tier: 4, tinkerableTypes: ["Helmet", "Chestplate", "Leggings", "Boots"] }],
  ["ftb_ma:hunger_resistance_augment", { tier: 4, tinkerableTypes: ["Helmet"] }],
  ["ftb_ma:absorption_iii_augment", { tier: 5, tinkerableTypes: ["Helmet", "Chestplate", "Leggings", "Boots"] }],
  ["ftb_ma:health_boost_v_augment", { tier: 5, tinkerableTypes: ["Helmet", "Chestplate", "Leggings", "Boots"] }],
  ["ftb_ma:speed_iii_augment", { tier: 5, tinkerableTypes: ["Leggings"] }],
  ["ftb_ma:strength_iii_augment", { tier: 5, tinkerableTypes: ["Sword"] }],
  ["ftb_ma:haste_iii_augment", { tier: 5, tinkerableTypes: ["Chestplate"] }],
  ["ftb_ma:mining_aoe_iv_augment", { tier: 5, tinkerableTypes: ["Pickaxe", "Axe", "Shovel"] }],
  ["ftb_ma:attack_aoe_iii_augment", { tier: 5, tinkerableTypes: ["Sword"] }],
  ["ftb_ma:tilling_aoe_iv_augment", { tier: 5, tinkerableTypes: ["Hoe"] }],
  ["ftb_ma:wither_resistance_augment", { tier: 5, tinkerableTypes: ["Helmet", "Chestplate", "Leggings", "Boots"] }]
]);
var ADDON_FURNACE_RECIPES = /* @__PURE__ */ new Map([
  ["ftb_ma:prosperity_ore", "ftb_ma:prosperity_shard"],
  ["ftb_ma:deepslate_prosperity_ore", "ftb_ma:prosperity_shard"],
  ["ftb_ma:inferium_ore", "ftb_ma:inferium_essence"],
  ["ftb_ma:deepslate_inferium_ore", "ftb_ma:inferium_essence"],
  ["ftb_ma:soulium_ore", "ftb_ma:soulium_dust"],
  ["ftb_ma:cobbled_soulstone", "ftb_ma:soulstone"],
  ["ftb_ma:soulstone", "ftb_ma:smooth_soulstone"],
  ["ftb_ma:cracked_soulstone_bricks", "ftb_ma:soulstone_bricks"],
  ["ftb_ma:smooth_soulstone", "ftb_ma:soul_dust"]
]);

// scripts/data/recipes/furnace.ts
function isFuranceInput(item) {
  return SpecialRecipes2.Registry.getInputCache(RecipeTypes.Furnace)?.hasItem(item.typeId) ?? false;
}
function registerFurnaceRecipes(registry) {
  registry.register(
    // food
    createFurnaceRecipe(MinecraftItemTypes.BakedPotato, MinecraftItemTypes.Potato),
    createFurnaceRecipe(MinecraftItemTypes.DriedKelp, MinecraftItemTypes.Kelp),
    createFurnaceRecipe(MinecraftItemTypes.CookedBeef, MinecraftItemTypes.Beef),
    createFurnaceRecipe(MinecraftItemTypes.CookedPorkchop, MinecraftItemTypes.Porkchop),
    createFurnaceRecipe(MinecraftItemTypes.CookedMutton, MinecraftItemTypes.Mutton),
    createFurnaceRecipe(MinecraftItemTypes.CookedChicken, MinecraftItemTypes.Chicken),
    createFurnaceRecipe(MinecraftItemTypes.CookedRabbit, MinecraftItemTypes.Rabbit),
    createFurnaceRecipe(MinecraftItemTypes.CookedCod, MinecraftItemTypes.Cod),
    createFurnaceRecipe(MinecraftItemTypes.CookedSalmon, MinecraftItemTypes.Salmon),
    // ores
    createFurnaceRecipe(MinecraftItemTypes.IronIngot, MinecraftItemTypes.RawIron),
    createFurnaceRecipe(MinecraftItemTypes.CopperIngot, MinecraftItemTypes.RawCopper),
    createFurnaceRecipe(MinecraftItemTypes.GoldIngot, MinecraftItemTypes.RawGold),
    createFurnaceRecipe(MinecraftItemTypes.NetheriteScrap, MinecraftItemTypes.AncientDebris),
    createFurnaceRecipe(MinecraftItemTypes.Redstone, MinecraftItemTypes.RedstoneOre),
    createFurnaceRecipe(MinecraftItemTypes.Redstone, MinecraftItemTypes.DeepslateRedstoneOre),
    createFurnaceRecipe(MinecraftItemTypes.Coal, MinecraftItemTypes.CoalOre),
    createFurnaceRecipe(MinecraftItemTypes.Coal, MinecraftItemTypes.DeepslateCoalOre),
    createFurnaceRecipe(MinecraftItemTypes.Emerald, MinecraftItemTypes.EmeraldOre),
    createFurnaceRecipe(MinecraftItemTypes.Emerald, MinecraftItemTypes.DeepslateEmeraldOre),
    createFurnaceRecipe(MinecraftItemTypes.LapisLazuli, MinecraftItemTypes.LapisOre),
    createFurnaceRecipe(MinecraftItemTypes.LapisLazuli, MinecraftItemTypes.DeepslateLapisOre),
    createFurnaceRecipe(MinecraftItemTypes.Diamond, MinecraftItemTypes.DiamondOre),
    createFurnaceRecipe(MinecraftItemTypes.Diamond, MinecraftItemTypes.DeepslateDiamondOre),
    createFurnaceRecipe(MinecraftItemTypes.Quartz, MinecraftItemTypes.QuartzOre),
    createFurnaceRecipe(MinecraftItemTypes.GoldIngot, MinecraftItemTypes.GoldOre),
    createFurnaceRecipe(MinecraftItemTypes.GoldIngot, MinecraftItemTypes.DeepslateGoldOre),
    createFurnaceRecipe(MinecraftItemTypes.GoldIngot, MinecraftItemTypes.NetherGoldOre),
    createFurnaceRecipe(MinecraftItemTypes.IronIngot, MinecraftItemTypes.IronOre),
    createFurnaceRecipe(MinecraftItemTypes.IronIngot, MinecraftItemTypes.DeepslateIronOre),
    createFurnaceRecipe(MinecraftItemTypes.CopperIngot, MinecraftItemTypes.CopperOre),
    createFurnaceRecipe(MinecraftItemTypes.CopperIngot, MinecraftItemTypes.DeepslateCopperOre),
    // furnace only
    createFurnaceRecipe(MinecraftItemTypes.Stone, MinecraftItemTypes.Cobblestone),
    createFurnaceRecipe(MinecraftItemTypes.SmoothStone, MinecraftItemTypes.Stone),
    createFurnaceRecipe(MinecraftItemTypes.CrackedStoneBricks, MinecraftItemTypes.StoneBricks),
    createFurnaceRecipe(MinecraftItemTypes.Deepslate, MinecraftItemTypes.CobbledDeepslate),
    createFurnaceRecipe(MinecraftItemTypes.CrackedDeepslateBricks, MinecraftItemTypes.DeepslateBrickSlab),
    createFurnaceRecipe(MinecraftItemTypes.SmoothSandstone, MinecraftItemTypes.Sandstone),
    createFurnaceRecipe(MinecraftItemTypes.SmoothRedSandstone, MinecraftItemTypes.RedSandstone),
    createFurnaceRecipe(MinecraftItemTypes.CrackedNetherBricks, MinecraftItemTypes.NetherBrick),
    createFurnaceRecipe(MinecraftItemTypes.SmoothBasalt, MinecraftItemTypes.Basalt),
    createFurnaceRecipe(MinecraftItemTypes.CrackedPolishedBlackstoneBricks, MinecraftItemTypes.PolishedBlackstoneBricks),
    createFurnaceRecipe(MinecraftItemTypes.SmoothQuartz, MinecraftItemTypes.QuartzBlock),
    createFurnaceRecipe(MinecraftItemTypes.HardenedClay, MinecraftItemTypes.Clay),
    createFurnaceRecipe(MinecraftItemTypes.WhiteGlazedTerracotta, MinecraftItemTypes.WhiteTerracotta),
    createFurnaceRecipe(MinecraftItemTypes.SilverGlazedTerracotta, MinecraftItemTypes.LightGrayTerracotta),
    createFurnaceRecipe(MinecraftItemTypes.GrayGlazedTerracotta, MinecraftItemTypes.GrayTerracotta),
    createFurnaceRecipe(MinecraftItemTypes.BlackGlazedTerracotta, MinecraftItemTypes.BlackTerracotta),
    createFurnaceRecipe(MinecraftItemTypes.BrownGlazedTerracotta, MinecraftItemTypes.BrownTerracotta),
    createFurnaceRecipe(MinecraftItemTypes.RedGlazedTerracotta, MinecraftItemTypes.RedTerracotta),
    createFurnaceRecipe(MinecraftItemTypes.OrangeGlazedTerracotta, MinecraftItemTypes.OrangeTerracotta),
    createFurnaceRecipe(MinecraftItemTypes.YellowGlazedTerracotta, MinecraftItemTypes.YellowTerracotta),
    createFurnaceRecipe(MinecraftItemTypes.LimeGlazedTerracotta, MinecraftItemTypes.LimeTerracotta),
    createFurnaceRecipe(MinecraftItemTypes.GreenGlazedTerracotta, MinecraftItemTypes.GreenTerracotta),
    createFurnaceRecipe(MinecraftItemTypes.CyanGlazedTerracotta, MinecraftItemTypes.CyanTerracotta),
    createFurnaceRecipe(MinecraftItemTypes.LightBlueGlazedTerracotta, MinecraftItemTypes.LightBlueTerracotta),
    createFurnaceRecipe(MinecraftItemTypes.BlueGlazedTerracotta, MinecraftItemTypes.BlueTerracotta),
    createFurnaceRecipe(MinecraftItemTypes.PurpleGlazedTerracotta, MinecraftItemTypes.PurpleTerracotta),
    createFurnaceRecipe(MinecraftItemTypes.MagentaGlazedTerracotta, MinecraftItemTypes.MagentaTerracotta),
    createFurnaceRecipe(MinecraftItemTypes.PinkGlazedTerracotta, MinecraftItemTypes.PinkTerracotta),
    createFurnaceRecipe(MinecraftItemTypes.Glass, MinecraftItemTypes.Sand),
    createFurnaceRecipe(MinecraftItemTypes.Glass, MinecraftItemTypes.RedSand),
    createFurnaceRecipe(MinecraftItemTypes.Sponge, MinecraftItemTypes.WetSponge),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.OakLog),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.OakWood),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.StrippedOakLog),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.StrippedOakWood),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.SpruceLog),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.SpruceWood),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.StrippedSpruceLog),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.StrippedSpruceWood),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.BirchLog),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.BirchWood),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.StrippedBirchLog),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.StrippedBirchWood),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.JungleLog),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.JungleWood),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.StrippedJungleLog),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.StrippedJungleWood),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.AcaciaLog),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.AcaciaWood),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.StrippedAcaciaLog),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.StrippedAcaciaWood),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.DarkOakLog),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.DarkOakWood),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.StrippedDarkOakLog),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.StrippedDarkOakWood),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.MangroveLog),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.MangroveWood),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.StrippedMangroveLog),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.StrippedMangroveWood),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.CherryLog),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.CherryWood),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.StrippedCherryLog),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.StrippedCherryWood),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.PaleOakLog),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.PaleOakWood),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.StrippedPaleOakLog),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.StrippedPaleOakWood),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.CrimsonStem),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.CrimsonHyphae),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.StrippedCrimsonStem),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.StrippedCrimsonHyphae),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.WarpedStem),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.WarpedHyphae),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.StrippedWarpedStem),
    createFurnaceRecipe(MinecraftItemTypes.Charcoal, MinecraftItemTypes.StrippedWarpedHyphae),
    createFurnaceRecipe(MinecraftItemTypes.PoppedChorusFruit, MinecraftItemTypes.ChorusFruit),
    createFurnaceRecipe(MinecraftItemTypes.LimeDye, MinecraftItemTypes.SeaPickle),
    createFurnaceRecipe(MinecraftItemTypes.Brick, MinecraftItemTypes.ClayBall),
    createFurnaceRecipe(MinecraftItemTypes.Netherbrick, MinecraftItemTypes.Netherrack),
    createFurnaceRecipe(MinecraftItemTypes.ResinBrick, MinecraftItemTypes.ResinClump),
    ...Array.from(ADDON_FURNACE_RECIPES.entries()).map(([input, result]) => createFurnaceRecipe(result, input))
  );
}
function createFurnaceRecipe(result, input) {
  return new FurnaceRecipe(input, new Input(input), new ItemStack3(result));
}

// scripts/data/recipes/infusion.ts
import { ItemStack as ItemStack4 } from "@minecraft/server";

// scripts/data/registry.ts
var RegistryItem = class {
  constructor(path) {
    this.id = createIdentifier(path);
    this.path = path;
  }
};
var Registry = class {
  constructor() {
    this.items = /* @__PURE__ */ new Map();
  }
  getById(id) {
    return this.items.get(id.split(":").at(-1));
  }
  getByPath(path) {
    return this.items.get(path);
  }
  values() {
    return Array.from(this.items.values());
  }
  size() {
    return this.items.size;
  }
  register(...items) {
    for (const item of items) {
      if (this.items.has(item.path)) {
        throw new Error(`Duplicate path for registry entry: ${item.id}`);
      }
      this.items.set(item.path, item);
    }
  }
};

// scripts/data/crops.ts
var CropTier = class extends RegistryItem {
  constructor(path, value, essenceTypeId, farmlandTypeId) {
    super(path);
    this.value = value;
    this.essenceTypeId = essenceTypeId;
    this.farmlandTypeId = farmlandTypeId;
  }
  toJson() {
    throw new Error("Method not implemented.");
  }
};
var CropTiers = class _CropTiers extends Registry {
  static {
    this.Elemental = new CropTier("elemental", 1, "ftb_ma:inferium_essence" /* InferiumEssence */, "ftb_ma:inferium_farmland" /* InferiumFarmland */);
  }
  static {
    // prettier-ignore
    this.One = new CropTier("1", 1, "ftb_ma:inferium_essence" /* InferiumEssence */, "ftb_ma:inferium_farmland" /* InferiumFarmland */);
  }
  static {
    this.Two = new CropTier("2", 2, "ftb_ma:prudentium_essence" /* PrudentiumEssence */, "ftb_ma:prudentium_farmland" /* PrudentiumFarmland */);
  }
  static {
    this.Three = new CropTier("3", 3, "ftb_ma:tertium_essence" /* TertiumEssence */, "ftb_ma:tertium_farmland" /* TertiumFarmland */);
  }
  static {
    this.Four = new CropTier("4", 4, "ftb_ma:imperium_essence" /* ImperiumEssence */, "ftb_ma:imperium_farmland" /* ImperiumFarmland */);
  }
  static {
    this.Five = new CropTier("5", 5, "ftb_ma:supremium_essence" /* SupremiumEssence */, "ftb_ma:supremium_farmland" /* SupremiumFarmland */);
  }
  static {
    this.Registry = new _CropTiers();
  }
  constructor() {
    super();
    this.register(
      _CropTiers.Elemental,
      _CropTiers.One,
      _CropTiers.Two,
      _CropTiers.Three,
      _CropTiers.Four,
      _CropTiers.Five
    );
  }
};
var CropType = class extends RegistryItem {
  constructor(path, seedBaseTypeId) {
    super(path);
    this.seedBaseTypeId = seedBaseTypeId;
  }
  toJson() {
    throw new Error("Method not implemented.");
  }
  getStemTexturePathForAge(age) {
    return `mystical_${this.path}_crop_${age}.png`;
  }
  getStemTextureShorthandForAge(age) {
    return `${this.id}_crop_${age}`;
  }
};
var CropTypes = class _CropTypes extends Registry {
  static {
    this.Resource = new CropType("resource", "ftb_ma:prosperity_seed_base" /* ProsperitySeedBase */);
  }
  static {
    this.Mob = new CropType("mob", "ftb_ma:soulium_seed_base" /* SouliumSeedBase */);
  }
  static {
    this.Registry = new _CropTypes();
  }
  constructor() {
    super();
    this.register(
      _CropTypes.Resource,
      _CropTypes.Mob
    );
  }
  toJson() {
    throw new Error("Method not implemented.");
  }
};
var CropIngredient = class _CropIngredient {
  constructor(type, id) {
    this.type = type;
    this.id = id;
  }
  static item(id) {
    return new _CropIngredient("item", id);
  }
  static tag(id) {
    return new _CropIngredient("tag", id);
  }
  /**
   * Creates the crop ingredient based on assumtions of the crop type
   * @param path item path
   * @param type crop type
   * @returns default crop ingredient for the crop type or a barrier item for unaccounted for crop types
   */
  static default(path, type) {
    switch (type) {
      case CropTypes.Mob:
        return new _CropIngredient("item", `${createIdentifier(path)}_soul`);
      default:
        return new _CropIngredient("item", MinecraftItemTypes.Barrier);
    }
  }
};
var Crop = class extends RegistryItem {
  constructor(path, name, tier, type, ingredient = CropIngredient.default(path, type)) {
    super(path);
    this.name = name;
    this.tier = tier;
    this.type = type;
    this.ingredient = ingredient;
    this.cropTypeId = `${this.id}_crop`;
    this.essenceTypeId = `${this.id}_essence`;
    this.seedsTypeId = `${this.id}_seeds`;
  }
  toJson() {
    throw new Error("Method not implemented.");
  }
};
var Crops = class _Crops extends Registry {
  static {
    this.Air = new Crop(
      "air",
      "Air",
      CropTiers.Elemental,
      CropTypes.Resource,
      CropIngredient.item("ftb_ma:air_agglomeratio" /* AirAgglomeratio */)
    );
  }
  static {
    this.Earth = new Crop(
      "earth",
      "Earth",
      CropTiers.Elemental,
      CropTypes.Resource,
      CropIngredient.item("ftb_ma:earth_agglomeratio" /* EarthAgglomeratio */)
    );
  }
  static {
    this.Water = new Crop(
      "water",
      "Water",
      CropTiers.Elemental,
      CropTypes.Resource,
      CropIngredient.item("ftb_ma:water_agglomeratio" /* WaterAgglomeratio */)
    );
  }
  static {
    this.Fire = new Crop(
      "fire",
      "Fire",
      CropTiers.Elemental,
      CropTypes.Resource,
      CropIngredient.item("ftb_ma:fire_agglomeratio" /* FireAgglomeratio */)
    );
  }
  static {
    this.Inferium = new Crop(
      "inferium",
      "Inferium",
      CropTiers.One,
      CropTypes.Resource,
      CropIngredient.item("ftb_ma:inferium_essence" /* InferiumEssence */)
    );
  }
  static {
    this.Stone = new Crop(
      "stone",
      "Stone",
      CropTiers.One,
      CropTypes.Resource,
      CropIngredient.item(MinecraftItemTypes.Stone)
    );
  }
  static {
    this.Dirt = new Crop(
      "dirt",
      "Dirt",
      CropTiers.One,
      CropTypes.Resource,
      CropIngredient.item(MinecraftItemTypes.Dirt)
    );
  }
  static {
    this.Wood = new Crop(
      "wood",
      "Wood",
      CropTiers.One,
      CropTypes.Resource,
      CropIngredient.tag("minecraft:logs")
    );
  }
  static {
    this.Ice = new Crop(
      "ice",
      "Ice",
      CropTiers.One,
      CropTypes.Resource,
      CropIngredient.item(MinecraftItemTypes.Ice)
    );
  }
  static {
    this.Deepslate = new Crop(
      "deepslate",
      "Deepslate",
      CropTiers.One,
      CropTypes.Resource,
      CropIngredient.item(MinecraftItemTypes.Deepslate)
    );
  }
  static {
    this.Nature = new Crop(
      "nature",
      "Nature",
      CropTiers.Two,
      CropTypes.Resource,
      CropIngredient.item("ftb_ma:nature_agglomeratio" /* NatureAgglomeratio */)
    );
  }
  static {
    this.Dye = new Crop(
      "dye",
      "Dye",
      CropTiers.Two,
      CropTypes.Resource,
      CropIngredient.item("ftb_ma:dye_agglomeratio" /* DyeAgglomeratio */)
    );
  }
  static {
    this.Nether = new Crop(
      "nether",
      "Nether",
      CropTiers.Two,
      CropTypes.Resource,
      CropIngredient.item("ftb_ma:nether_agglomeratio" /* NetherAgglomeratio */)
    );
  }
  static {
    this.Coal = new Crop(
      "coal",
      "Coal",
      CropTiers.Two,
      CropTypes.Resource,
      CropIngredient.item(MinecraftItemTypes.Coal)
    );
  }
  static {
    this.Coral = new Crop(
      "coral",
      "Coral",
      CropTiers.Two,
      CropTypes.Resource,
      CropIngredient.item("ftb_ma:coral_agglomeratio" /* CoralAgglomeratio */)
    );
  }
  static {
    this.Honey = new Crop(
      "honey",
      "Honey",
      CropTiers.Two,
      CropTypes.Resource,
      CropIngredient.item("ftb_ma:honey_agglomeratio" /* HoneyAgglomeratio */)
    );
  }
  static {
    this.Amethyst = new Crop(
      "amethyst",
      "Amethyst",
      CropTiers.Two,
      CropTypes.Resource,
      CropIngredient.item(MinecraftItemTypes.AmethystShard)
    );
  }
  static {
    this.Pig = new Crop("pig", "Pig", CropTiers.Two, CropTypes.Mob);
  }
  static {
    this.Chicken = new Crop("chicken", "Chicken", CropTiers.Two, CropTypes.Mob);
  }
  static {
    this.Cow = new Crop("cow", "Cow", CropTiers.Two, CropTypes.Mob);
  }
  static {
    this.Sheep = new Crop("sheep", "Sheep", CropTiers.Two, CropTypes.Mob);
  }
  static {
    this.Squid = new Crop("squid", "Squid", CropTiers.Two, CropTypes.Mob);
  }
  static {
    this.Fish = new Crop("fish", "Fish", CropTiers.Two, CropTypes.Mob);
  }
  static {
    this.Slime = new Crop("slime", "Slime", CropTiers.Two, CropTypes.Mob);
  }
  static {
    this.Turtle = new Crop("turtle", "Turtle", CropTiers.Two, CropTypes.Mob);
  }
  static {
    this.Armadillo = new Crop("armadillo", "Armadillo", CropTiers.Two, CropTypes.Mob);
  }
  static {
    this.Iron = new Crop(
      "iron",
      "Iron",
      CropTiers.Three,
      CropTypes.Resource,
      CropIngredient.item(MinecraftItemTypes.IronIngot)
    );
  }
  static {
    this.Copper = new Crop(
      "copper",
      "Copper",
      CropTiers.Three,
      CropTypes.Resource,
      CropIngredient.item(MinecraftItemTypes.CopperIngot)
    );
  }
  static {
    this.NetherQuartz = new Crop(
      "nether_quartz",
      "Nether Quartz",
      CropTiers.Three,
      CropTypes.Resource,
      CropIngredient.item(MinecraftItemTypes.Quartz)
    );
  }
  static {
    this.Glowstone = new Crop(
      "glowstone",
      "Glowstone",
      CropTiers.Three,
      CropTypes.Resource,
      CropIngredient.item(MinecraftItemTypes.GlowstoneDust)
    );
  }
  static {
    this.Redstone = new Crop(
      "redstone",
      "Redstone",
      CropTiers.Three,
      CropTypes.Resource,
      CropIngredient.item(MinecraftItemTypes.Redstone)
    );
  }
  static {
    this.Obsidian = new Crop(
      "obsidian",
      "Obsidian",
      CropTiers.Three,
      CropTypes.Resource,
      CropIngredient.item(MinecraftItemTypes.Obsidian)
    );
  }
  static {
    this.Prismarine = new Crop(
      "prismarine",
      "Prismarine",
      CropTiers.Three,
      CropTypes.Resource,
      CropIngredient.item("ftb_ma:prismarine_agglomeratio" /* PrismarineAgglomeratio */)
    );
  }
  static {
    this.Zombie = new Crop("zombie", "Zombie", CropTiers.Three, CropTypes.Mob);
  }
  static {
    this.Skeleton = new Crop("skeleton", "Skeleton", CropTiers.Three, CropTypes.Mob);
  }
  static {
    this.Creeper = new Crop("creeper", "Creeper", CropTiers.Three, CropTypes.Mob);
  }
  static {
    this.Spider = new Crop("spider", "Spider", CropTiers.Three, CropTypes.Mob);
  }
  static {
    this.Rabbit = new Crop("rabbit", "Rabbit", CropTiers.Three, CropTypes.Mob);
  }
  static {
    this.Gold = new Crop(
      "gold",
      "Gold",
      CropTiers.Four,
      CropTypes.Resource,
      CropIngredient.item(MinecraftItemTypes.GoldIngot)
    );
  }
  static {
    this.LapisLazuli = new Crop(
      "lapis_lazuli",
      "Lapis Lazuli",
      CropTiers.Four,
      CropTypes.Resource,
      CropIngredient.item(MinecraftItemTypes.LapisLazuli)
    );
  }
  static {
    this.End = new Crop(
      "end",
      "End",
      CropTiers.Four,
      CropTypes.Resource,
      CropIngredient.item("ftb_ma:end_agglomeratio" /* EndAgglomeratio */)
    );
  }
  static {
    this.Experience = new Crop(
      "experience",
      "Experience",
      CropTiers.Four,
      CropTypes.Resource,
      CropIngredient.item("ftb_ma:experience_chunk" /* ExperienceChunk */)
    );
  }
  static {
    this.Soulium = new Crop(
      "soulium",
      "Soulium",
      CropTiers.Four,
      CropTypes.Resource,
      CropIngredient.item("ftb_ma:soulium_ingot" /* SouliumIngot */)
    );
  }
  static {
    this.Breeze = new Crop("breeze", "Breeze", CropTiers.Four, CropTypes.Mob);
  }
  static {
    this.Blaze = new Crop("blaze", "Blaze", CropTiers.Four, CropTypes.Mob);
  }
  static {
    this.Ghast = new Crop("ghast", "Ghast", CropTiers.Four, CropTypes.Mob);
  }
  static {
    this.Enderman = new Crop("enderman", "Enderman", CropTiers.Four, CropTypes.Mob);
  }
  static {
    this.Diamond = new Crop(
      "diamond",
      "Diamond",
      CropTiers.Five,
      CropTypes.Resource,
      CropIngredient.item(MinecraftItemTypes.Diamond)
    );
  }
  static {
    this.Emerald = new Crop(
      "emerald",
      "Emerald",
      CropTiers.Five,
      CropTypes.Resource,
      CropIngredient.item(MinecraftItemTypes.Emerald)
    );
  }
  static {
    this.Netherite = new Crop(
      "netherite",
      "Netherite",
      CropTiers.Five,
      CropTypes.Resource,
      CropIngredient.item(MinecraftItemTypes.NetheriteIngot)
    );
  }
  static {
    this.WitherSkeleton = new Crop("wither_skeleton", "Wither Skeleton", CropTiers.Five, CropTypes.Mob);
  }
  static {
    this.Registry = new _Crops();
  }
  constructor() {
    super();
    this.register(
      // elemental
      _Crops.Air,
      _Crops.Earth,
      _Crops.Water,
      _Crops.Fire,
      // one
      _Crops.Inferium,
      _Crops.Stone,
      _Crops.Dirt,
      _Crops.Wood,
      _Crops.Ice,
      _Crops.Deepslate,
      // two
      _Crops.Nature,
      _Crops.Dye,
      _Crops.Nether,
      _Crops.Coal,
      _Crops.Coral,
      _Crops.Honey,
      _Crops.Amethyst,
      _Crops.Pig,
      _Crops.Chicken,
      _Crops.Cow,
      _Crops.Sheep,
      _Crops.Squid,
      _Crops.Fish,
      _Crops.Slime,
      _Crops.Turtle,
      _Crops.Armadillo,
      // three
      _Crops.Iron,
      _Crops.Copper,
      _Crops.NetherQuartz,
      _Crops.Glowstone,
      _Crops.Redstone,
      _Crops.Obsidian,
      _Crops.Prismarine,
      _Crops.Zombie,
      _Crops.Skeleton,
      _Crops.Creeper,
      _Crops.Spider,
      _Crops.Rabbit,
      // four
      _Crops.Gold,
      _Crops.LapisLazuli,
      _Crops.End,
      _Crops.Experience,
      _Crops.Soulium,
      _Crops.Blaze,
      _Crops.Breeze,
      _Crops.Ghast,
      _Crops.Enderman,
      // five
      _Crops.Diamond,
      _Crops.Emerald,
      _Crops.Netherite,
      _Crops.WitherSkeleton
    );
  }
};

// scripts/data/recipes/infusion.ts
function registerInfusionRecipes(registry) {
  const seeds = Crops.Registry.values().map(createSeedRecipe);
  registry.register(
    ...seeds,
    createGearUpgradeRecipe("ftb_ma:inferium_sword" /* InferiumSword */, MinecraftItemTypes.DiamondSword, "ftb_ma:inferium_ingot" /* InferiumIngot */, "ftb_ma:inferium_gemstone" /* InferiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:inferium_pickaxe" /* InferiumPickaxe */, MinecraftItemTypes.DiamondPickaxe, "ftb_ma:inferium_ingot" /* InferiumIngot */, "ftb_ma:inferium_gemstone" /* InferiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:inferium_shovel" /* InferiumShovel */, MinecraftItemTypes.DiamondShovel, "ftb_ma:inferium_ingot" /* InferiumIngot */, "ftb_ma:inferium_gemstone" /* InferiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:inferium_axe" /* InferiumAxe */, MinecraftItemTypes.DiamondAxe, "ftb_ma:inferium_ingot" /* InferiumIngot */, "ftb_ma:inferium_gemstone" /* InferiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:inferium_hoe" /* InferiumHoe */, MinecraftItemTypes.DiamondHoe, "ftb_ma:inferium_ingot" /* InferiumIngot */, "ftb_ma:inferium_gemstone" /* InferiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:inferium_shears" /* InferiumShears */, MinecraftItemTypes.Shears, "ftb_ma:inferium_ingot" /* InferiumIngot */, "ftb_ma:inferium_gemstone" /* InferiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:inferium_sickle" /* InferiumSickle */, "ftb_ma:diamond_sickle" /* DiamondSickle */, "ftb_ma:inferium_ingot" /* InferiumIngot */, "ftb_ma:inferium_gemstone" /* InferiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:inferium_scythe" /* InferiumScythe */, "ftb_ma:diamond_scythe" /* DiamondScythe */, "ftb_ma:inferium_ingot" /* InferiumIngot */, "ftb_ma:inferium_gemstone" /* InferiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:inferium_helmet" /* InferiumHelmet */, MinecraftItemTypes.DiamondHelmet, "ftb_ma:inferium_ingot" /* InferiumIngot */, "ftb_ma:inferium_gemstone" /* InferiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:inferium_chestplate" /* InferiumChestplate */, MinecraftItemTypes.DiamondChestplate, "ftb_ma:inferium_ingot" /* InferiumIngot */, "ftb_ma:inferium_gemstone" /* InferiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:inferium_leggings" /* InferiumLeggings */, MinecraftItemTypes.DiamondLeggings, "ftb_ma:inferium_ingot" /* InferiumIngot */, "ftb_ma:inferium_gemstone" /* InferiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:inferium_boots" /* InferiumBoots */, MinecraftItemTypes.DiamondBoots, "ftb_ma:inferium_ingot" /* InferiumIngot */, "ftb_ma:inferium_gemstone" /* InferiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:prudentium_sword" /* PrudentiumSword */, "ftb_ma:inferium_sword" /* InferiumSword */, "ftb_ma:prudentium_ingot" /* PrudentiumIngot */, "ftb_ma:prudentium_gemstone" /* PrudentiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:prudentium_pickaxe" /* PrudentiumPickaxe */, "ftb_ma:inferium_pickaxe" /* InferiumPickaxe */, "ftb_ma:prudentium_ingot" /* PrudentiumIngot */, "ftb_ma:prudentium_gemstone" /* PrudentiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:prudentium_shovel" /* PrudentiumShovel */, "ftb_ma:inferium_shovel" /* InferiumShovel */, "ftb_ma:prudentium_ingot" /* PrudentiumIngot */, "ftb_ma:prudentium_gemstone" /* PrudentiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:prudentium_axe" /* PrudentiumAxe */, "ftb_ma:inferium_axe" /* InferiumAxe */, "ftb_ma:prudentium_ingot" /* PrudentiumIngot */, "ftb_ma:prudentium_gemstone" /* PrudentiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:prudentium_hoe" /* PrudentiumHoe */, "ftb_ma:inferium_hoe" /* InferiumHoe */, "ftb_ma:prudentium_ingot" /* PrudentiumIngot */, "ftb_ma:prudentium_gemstone" /* PrudentiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:prudentium_shears" /* PrudentiumShears */, "ftb_ma:inferium_shears" /* InferiumShears */, "ftb_ma:prudentium_ingot" /* PrudentiumIngot */, "ftb_ma:prudentium_gemstone" /* PrudentiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:prudentium_sickle" /* PrudentiumSickle */, "ftb_ma:inferium_sickle" /* InferiumSickle */, "ftb_ma:prudentium_ingot" /* PrudentiumIngot */, "ftb_ma:prudentium_gemstone" /* PrudentiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:prudentium_scythe" /* PrudentiumScythe */, "ftb_ma:inferium_scythe" /* InferiumScythe */, "ftb_ma:prudentium_ingot" /* PrudentiumIngot */, "ftb_ma:prudentium_gemstone" /* PrudentiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:prudentium_helmet" /* PrudentiumHelmet */, "ftb_ma:inferium_helmet" /* InferiumHelmet */, "ftb_ma:prudentium_ingot" /* PrudentiumIngot */, "ftb_ma:prudentium_gemstone" /* PrudentiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:prudentium_chestplate" /* PrudentiumChestplate */, "ftb_ma:inferium_chestplate" /* InferiumChestplate */, "ftb_ma:prudentium_ingot" /* PrudentiumIngot */, "ftb_ma:prudentium_gemstone" /* PrudentiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:prudentium_leggings" /* PrudentiumLeggings */, "ftb_ma:inferium_leggings" /* InferiumLeggings */, "ftb_ma:prudentium_ingot" /* PrudentiumIngot */, "ftb_ma:prudentium_gemstone" /* PrudentiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:prudentium_boots" /* PrudentiumBoots */, "ftb_ma:inferium_boots" /* InferiumBoots */, "ftb_ma:prudentium_ingot" /* PrudentiumIngot */, "ftb_ma:prudentium_gemstone" /* PrudentiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:tertium_sword" /* TertiumSword */, "ftb_ma:prudentium_sword" /* PrudentiumSword */, "ftb_ma:tertium_ingot" /* TertiumIngot */, "ftb_ma:tertium_gemstone" /* TertiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:tertium_pickaxe" /* TertiumPickaxe */, "ftb_ma:prudentium_pickaxe" /* PrudentiumPickaxe */, "ftb_ma:tertium_ingot" /* TertiumIngot */, "ftb_ma:tertium_gemstone" /* TertiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:tertium_shovel" /* TertiumShovel */, "ftb_ma:prudentium_shovel" /* PrudentiumShovel */, "ftb_ma:tertium_ingot" /* TertiumIngot */, "ftb_ma:tertium_gemstone" /* TertiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:tertium_axe" /* TertiumAxe */, "ftb_ma:prudentium_axe" /* PrudentiumAxe */, "ftb_ma:tertium_ingot" /* TertiumIngot */, "ftb_ma:tertium_gemstone" /* TertiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:tertium_hoe" /* TertiumHoe */, "ftb_ma:prudentium_hoe" /* PrudentiumHoe */, "ftb_ma:tertium_ingot" /* TertiumIngot */, "ftb_ma:tertium_gemstone" /* TertiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:tertium_shears" /* TertiumShears */, "ftb_ma:prudentium_shears" /* PrudentiumShears */, "ftb_ma:tertium_ingot" /* TertiumIngot */, "ftb_ma:tertium_gemstone" /* TertiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:tertium_sickle" /* TertiumSickle */, "ftb_ma:inferium_sickle" /* InferiumSickle */, "ftb_ma:tertium_ingot" /* TertiumIngot */, "ftb_ma:tertium_gemstone" /* TertiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:tertium_scythe" /* TertiumScythe */, "ftb_ma:inferium_scythe" /* InferiumScythe */, "ftb_ma:tertium_ingot" /* TertiumIngot */, "ftb_ma:tertium_gemstone" /* TertiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:tertium_helmet" /* TertiumHelmet */, "ftb_ma:prudentium_helmet" /* PrudentiumHelmet */, "ftb_ma:tertium_ingot" /* TertiumIngot */, "ftb_ma:tertium_gemstone" /* TertiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:tertium_chestplate" /* TertiumChestplate */, "ftb_ma:prudentium_chestplate" /* PrudentiumChestplate */, "ftb_ma:tertium_ingot" /* TertiumIngot */, "ftb_ma:tertium_gemstone" /* TertiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:tertium_leggings" /* TertiumLeggings */, "ftb_ma:prudentium_leggings" /* PrudentiumLeggings */, "ftb_ma:tertium_ingot" /* TertiumIngot */, "ftb_ma:tertium_gemstone" /* TertiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:tertium_boots" /* TertiumBoots */, "ftb_ma:prudentium_boots" /* PrudentiumBoots */, "ftb_ma:tertium_ingot" /* TertiumIngot */, "ftb_ma:tertium_gemstone" /* TertiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:imperium_sword" /* ImperiumSword */, "ftb_ma:tertium_sword" /* TertiumSword */, "ftb_ma:imperium_ingot" /* ImperiumIngot */, "ftb_ma:imperium_gemstone" /* ImperiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:imperium_pickaxe" /* ImperiumPickaxe */, "ftb_ma:tertium_pickaxe" /* TertiumPickaxe */, "ftb_ma:imperium_ingot" /* ImperiumIngot */, "ftb_ma:imperium_gemstone" /* ImperiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:imperium_shovel" /* ImperiumShovel */, "ftb_ma:tertium_shovel" /* TertiumShovel */, "ftb_ma:imperium_ingot" /* ImperiumIngot */, "ftb_ma:imperium_gemstone" /* ImperiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:imperium_axe" /* ImperiumAxe */, "ftb_ma:tertium_axe" /* TertiumAxe */, "ftb_ma:imperium_ingot" /* ImperiumIngot */, "ftb_ma:imperium_gemstone" /* ImperiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:imperium_hoe" /* ImperiumHoe */, "ftb_ma:tertium_hoe" /* TertiumHoe */, "ftb_ma:imperium_ingot" /* ImperiumIngot */, "ftb_ma:imperium_gemstone" /* ImperiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:imperium_shears" /* ImperiumShears */, "ftb_ma:tertium_shears" /* TertiumShears */, "ftb_ma:imperium_ingot" /* ImperiumIngot */, "ftb_ma:imperium_gemstone" /* ImperiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:imperium_sickle" /* ImperiumSickle */, "ftb_ma:tertium_sickle" /* TertiumSickle */, "ftb_ma:imperium_ingot" /* ImperiumIngot */, "ftb_ma:imperium_gemstone" /* ImperiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:imperium_scythe" /* ImperiumScythe */, "ftb_ma:tertium_scythe" /* TertiumScythe */, "ftb_ma:imperium_ingot" /* ImperiumIngot */, "ftb_ma:imperium_gemstone" /* ImperiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:imperium_helmet" /* ImperiumHelmet */, "ftb_ma:tertium_helmet" /* TertiumHelmet */, "ftb_ma:imperium_ingot" /* ImperiumIngot */, "ftb_ma:imperium_gemstone" /* ImperiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:imperium_chestplate" /* ImperiumChestplate */, "ftb_ma:tertium_chestplate" /* TertiumChestplate */, "ftb_ma:imperium_ingot" /* ImperiumIngot */, "ftb_ma:imperium_gemstone" /* ImperiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:imperium_leggings" /* ImperiumLeggings */, "ftb_ma:tertium_leggings" /* TertiumLeggings */, "ftb_ma:imperium_ingot" /* ImperiumIngot */, "ftb_ma:imperium_gemstone" /* ImperiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:imperium_boots" /* ImperiumBoots */, "ftb_ma:tertium_boots" /* TertiumBoots */, "ftb_ma:imperium_ingot" /* ImperiumIngot */, "ftb_ma:imperium_gemstone" /* ImperiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:supremium_sword" /* SupremiumSword */, "ftb_ma:imperium_sword" /* ImperiumSword */, "ftb_ma:supremium_ingot" /* SupremiumIngot */, "ftb_ma:supremium_gemstone" /* SupremiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:supremium_pickaxe" /* SupremiumPickaxe */, "ftb_ma:imperium_pickaxe" /* ImperiumPickaxe */, "ftb_ma:supremium_ingot" /* SupremiumIngot */, "ftb_ma:supremium_gemstone" /* SupremiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:supremium_shovel" /* SupremiumShovel */, "ftb_ma:imperium_shovel" /* ImperiumShovel */, "ftb_ma:supremium_ingot" /* SupremiumIngot */, "ftb_ma:supremium_gemstone" /* SupremiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:supremium_axe" /* SupremiumAxe */, "ftb_ma:imperium_axe" /* ImperiumAxe */, "ftb_ma:supremium_ingot" /* SupremiumIngot */, "ftb_ma:supremium_gemstone" /* SupremiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:supremium_hoe" /* SupremiumHoe */, "ftb_ma:imperium_hoe" /* ImperiumHoe */, "ftb_ma:supremium_ingot" /* SupremiumIngot */, "ftb_ma:supremium_gemstone" /* SupremiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:supremium_shears" /* SupremiumShears */, "ftb_ma:imperium_shears" /* ImperiumShears */, "ftb_ma:supremium_ingot" /* SupremiumIngot */, "ftb_ma:supremium_gemstone" /* SupremiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:supremium_sickle" /* SupremiumSickle */, "ftb_ma:imperium_sickle" /* ImperiumSickle */, "ftb_ma:supremium_ingot" /* SupremiumIngot */, "ftb_ma:supremium_gemstone" /* SupremiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:supremium_scythe" /* SupremiumScythe */, "ftb_ma:imperium_scythe" /* ImperiumScythe */, "ftb_ma:supremium_ingot" /* SupremiumIngot */, "ftb_ma:supremium_gemstone" /* SupremiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:supremium_helmet" /* SupremiumHelmet */, "ftb_ma:imperium_helmet" /* ImperiumHelmet */, "ftb_ma:supremium_ingot" /* SupremiumIngot */, "ftb_ma:supremium_gemstone" /* SupremiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:supremium_chestplate" /* SupremiumChestplate */, "ftb_ma:imperium_chestplate" /* ImperiumChestplate */, "ftb_ma:supremium_ingot" /* SupremiumIngot */, "ftb_ma:supremium_gemstone" /* SupremiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:supremium_leggings" /* SupremiumLeggings */, "ftb_ma:imperium_leggings" /* ImperiumLeggings */, "ftb_ma:supremium_ingot" /* SupremiumIngot */, "ftb_ma:supremium_gemstone" /* SupremiumGemstone */),
    createGearUpgradeRecipe("ftb_ma:supremium_boots" /* SupremiumBoots */, "ftb_ma:imperium_boots" /* ImperiumBoots */, "ftb_ma:supremium_ingot" /* SupremiumIngot */, "ftb_ma:supremium_gemstone" /* SupremiumGemstone */),
    createAugmentRecipe("ftb_ma:absorption_i_augment" /* AbsorptionIAugment */, "ftb_ma:blank_augment" /* BlankAugment */, "ftb_ma:inferium_essence" /* InferiumEssence */, MinecraftItemTypes.GoldenApple),
    createAugmentRecipe("ftb_ma:absorption_ii_augment" /* AbsorptionIiAugment */, "ftb_ma:absorption_i_augment" /* AbsorptionIAugment */, "ftb_ma:tertium_essence" /* TertiumEssence */, MinecraftItemTypes.GoldenApple),
    createAugmentRecipe("ftb_ma:absorption_iii_augment" /* AbsorptionIiiAugment */, "ftb_ma:absorption_ii_augment" /* AbsorptionIiAugment */, "ftb_ma:supremium_essence" /* SupremiumEssence */, MinecraftItemTypes.GoldenApple),
    createAugmentRecipe("ftb_ma:attack_aoe_i_augment" /* AttackAoeIAugment */, "ftb_ma:blank_augment" /* BlankAugment */, "ftb_ma:tertium_essence" /* TertiumEssence */, MinecraftItemTypes.IronSword),
    createAugmentRecipe("ftb_ma:attack_aoe_ii_augment" /* AttackAoeIiAugment */, "ftb_ma:attack_aoe_i_augment" /* AttackAoeIAugment */, "ftb_ma:imperium_essence" /* ImperiumEssence */, MinecraftItemTypes.IronSword),
    createAugmentRecipe("ftb_ma:attack_aoe_iii_augment" /* AttackAoeIiiAugment */, "ftb_ma:attack_aoe_ii_augment" /* AttackAoeIiAugment */, "ftb_ma:supremium_essence" /* SupremiumEssence */, MinecraftItemTypes.IronSword),
    createAugmentRecipe("ftb_ma:blindness_resistance_augment" /* BlindnessResistanceAugment */, "ftb_ma:blank_augment" /* BlankAugment */, "ftb_ma:prudentium_essence" /* PrudentiumEssence */, MinecraftItemTypes.Torch, MinecraftItemTypes.Glowstone),
    createAugmentRecipe("ftb_ma:fire_resistance_augment" /* FireResistanceAugment */, "ftb_ma:blank_augment" /* BlankAugment */, "ftb_ma:tertium_essence" /* TertiumEssence */, MinecraftItemTypes.MagmaCream),
    createAugmentRecipe("ftb_ma:haste_i_augment" /* HasteIAugment */, "ftb_ma:blank_augment" /* BlankAugment */, "ftb_ma:tertium_essence" /* TertiumEssence */, MinecraftItemTypes.Redstone),
    createAugmentRecipe("ftb_ma:haste_ii_augment" /* HasteIiAugment */, "ftb_ma:haste_i_augment" /* HasteIAugment */, "ftb_ma:imperium_essence" /* ImperiumEssence */, MinecraftItemTypes.Redstone),
    createAugmentRecipe("ftb_ma:haste_iii_augment" /* HasteIiiAugment */, "ftb_ma:haste_ii_augment" /* HasteIiAugment */, "ftb_ma:supremium_essence" /* SupremiumEssence */, MinecraftItemTypes.Redstone),
    createAugmentRecipe("ftb_ma:health_boost_i_augment" /* HealthBoostIAugment */, "ftb_ma:blank_augment" /* BlankAugment */, "ftb_ma:inferium_essence" /* InferiumEssence */, MinecraftItemTypes.GoldenApple, MinecraftItemTypes.WitherSkeletonSkull),
    createAugmentRecipe("ftb_ma:health_boost_ii_augment" /* HealthBoostIiAugment */, "ftb_ma:health_boost_i_augment" /* HealthBoostIAugment */, "ftb_ma:prudentium_essence" /* PrudentiumEssence */, MinecraftItemTypes.GoldenApple, MinecraftItemTypes.WitherSkeletonSkull),
    createAugmentRecipe("ftb_ma:health_boost_iii_augment" /* HealthBoostIiiAugment */, "ftb_ma:health_boost_ii_augment" /* HealthBoostIiAugment */, "ftb_ma:tertium_essence" /* TertiumEssence */, MinecraftItemTypes.GoldenApple, MinecraftItemTypes.WitherSkeletonSkull),
    createAugmentRecipe("ftb_ma:health_boost_iv_augment" /* HealthBoostIvAugment */, "ftb_ma:health_boost_iii_augment" /* HealthBoostIiiAugment */, "ftb_ma:imperium_essence" /* ImperiumEssence */, MinecraftItemTypes.GoldenApple, MinecraftItemTypes.WitherSkeletonSkull),
    createAugmentRecipe("ftb_ma:health_boost_v_augment" /* HealthBoostVAugment */, "ftb_ma:health_boost_iv_augment" /* HealthBoostIvAugment */, "ftb_ma:supremium_essence" /* SupremiumEssence */, MinecraftItemTypes.GoldenApple, MinecraftItemTypes.WitherSkeletonSkull),
    createAugmentRecipe("ftb_ma:hunger_resistance_augment" /* HungerResistanceAugment */, "ftb_ma:blank_augment" /* BlankAugment */, "ftb_ma:imperium_essence" /* ImperiumEssence */, MinecraftItemTypes.PumpkinPie, MinecraftItemTypes.MushroomStew),
    createAugmentRecipe("ftb_ma:jump_boost_i_augment" /* JumpBoostIAugment */, "ftb_ma:blank_augment" /* BlankAugment */, "ftb_ma:prudentium_essence" /* PrudentiumEssence */, MinecraftItemTypes.RabbitFoot),
    createAugmentRecipe("ftb_ma:jump_boost_ii_augment" /* JumpBoostIiAugment */, "ftb_ma:jump_boost_i_augment" /* JumpBoostIAugment */, "ftb_ma:tertium_essence" /* TertiumEssence */, MinecraftItemTypes.RabbitFoot),
    createAugmentRecipe("ftb_ma:jump_boost_iii_augment" /* JumpBoostIiiAugment */, "ftb_ma:jump_boost_ii_augment" /* JumpBoostIiAugment */, "ftb_ma:imperium_essence" /* ImperiumEssence */, MinecraftItemTypes.RabbitFoot),
    createAugmentRecipe("ftb_ma:mining_aoe_i_augment" /* MiningAoeIAugment */, "ftb_ma:blank_augment" /* BlankAugment */, "ftb_ma:prudentium_essence" /* PrudentiumEssence */, MinecraftItemTypes.IronPickaxe),
    createAugmentRecipe("ftb_ma:mining_aoe_ii_augment" /* MiningAoeIiAugment */, "ftb_ma:mining_aoe_i_augment" /* MiningAoeIAugment */, "ftb_ma:tertium_essence" /* TertiumEssence */, MinecraftItemTypes.IronPickaxe),
    createAugmentRecipe("ftb_ma:mining_aoe_iii_augment" /* MiningAoeIiiAugment */, "ftb_ma:mining_aoe_ii_augment" /* MiningAoeIiAugment */, "ftb_ma:imperium_essence" /* ImperiumEssence */, MinecraftItemTypes.IronPickaxe),
    createAugmentRecipe("ftb_ma:mining_aoe_iv_augment" /* MiningAoeIvAugment */, "ftb_ma:mining_aoe_iii_augment" /* MiningAoeIiiAugment */, "ftb_ma:supremium_essence" /* SupremiumEssence */, MinecraftItemTypes.IronPickaxe),
    createAugmentRecipe("ftb_ma:mining_fatigue_resistance_augment" /* MiningFatigueResistanceAugment */, "ftb_ma:blank_augment" /* BlankAugment */, "ftb_ma:imperium_essence" /* ImperiumEssence */, MinecraftItemTypes.GoldIngot, MinecraftItemTypes.GoldenPickaxe),
    createAugmentRecipe("ftb_ma:nausea_resistance_augment" /* NauseaResistanceAugment */, "ftb_ma:blank_augment" /* BlankAugment */, "ftb_ma:inferium_essence" /* InferiumEssence */, MinecraftItemTypes.Leather, MinecraftItemTypes.MilkBucket),
    createAugmentRecipe("ftb_ma:night_vision_augment" /* NightVisionAugment */, "ftb_ma:blank_augment" /* BlankAugment */, "ftb_ma:prudentium_essence" /* PrudentiumEssence */, MinecraftItemTypes.GoldenCarrot),
    createAugmentRecipe("ftb_ma:pathing_aoe_i_augment" /* PathingAoeIAugment */, "ftb_ma:blank_augment" /* BlankAugment */, "ftb_ma:inferium_essence" /* InferiumEssence */, MinecraftItemTypes.IronShovel),
    createAugmentRecipe("ftb_ma:pathing_aoe_ii_augment" /* PathingAoeIiAugment */, "ftb_ma:pathing_aoe_i_augment" /* PathingAoeIAugment */, "ftb_ma:prudentium_essence" /* PrudentiumEssence */, MinecraftItemTypes.IronShovel),
    createAugmentRecipe("ftb_ma:pathing_aoe_iii_augment" /* PathingAoeIiiAugment */, "ftb_ma:pathing_aoe_ii_augment" /* PathingAoeIiAugment */, "ftb_ma:tertium_essence" /* TertiumEssence */, MinecraftItemTypes.IronShovel),
    createAugmentRecipe("ftb_ma:pathing_aoe_iv_augment" /* PathingAoeIvAugment */, "ftb_ma:pathing_aoe_iii_augment" /* PathingAoeIiiAugment */, "ftb_ma:imperium_essence" /* ImperiumEssence */, MinecraftItemTypes.IronShovel),
    createAugmentRecipe("ftb_ma:poison_resistance_augment" /* PoisonResistanceAugment */, "ftb_ma:blank_augment" /* BlankAugment */, "ftb_ma:imperium_essence" /* ImperiumEssence */, MinecraftItemTypes.MilkBucket),
    createAugmentRecipe("ftb_ma:slow_falling_augment" /* SlowFallingAugment */, "ftb_ma:blank_augment" /* BlankAugment */, "ftb_ma:tertium_essence" /* TertiumEssence */, MinecraftItemTypes.PhantomMembrane),
    createAugmentRecipe("ftb_ma:slowness_resistance_augment" /* SlownessResistanceAugment */, "ftb_ma:blank_augment" /* BlankAugment */, "ftb_ma:tertium_essence" /* TertiumEssence */, MinecraftItemTypes.RabbitFoot, MinecraftItemTypes.Sugar),
    createAugmentRecipe("ftb_ma:speed_i_augment" /* SpeedIAugment */, "ftb_ma:blank_augment" /* BlankAugment */, "ftb_ma:prudentium_essence" /* PrudentiumEssence */, MinecraftItemTypes.Sugar),
    createAugmentRecipe("ftb_ma:speed_ii_augment" /* SpeedIiAugment */, "ftb_ma:speed_i_augment" /* SpeedIAugment */, "ftb_ma:tertium_essence" /* TertiumEssence */, MinecraftItemTypes.Sugar),
    createAugmentRecipe("ftb_ma:speed_iii_augment" /* SpeedIiiAugment */, "ftb_ma:speed_ii_augment" /* SpeedIiAugment */, "ftb_ma:imperium_essence" /* ImperiumEssence */, MinecraftItemTypes.Sugar),
    createAugmentRecipe("ftb_ma:strength_i_augment" /* StrengthIAugment */, "ftb_ma:blank_augment" /* BlankAugment */, "ftb_ma:tertium_essence" /* TertiumEssence */, MinecraftItemTypes.QuartzBlock, MinecraftItemTypes.IronSword),
    createAugmentRecipe("ftb_ma:strength_ii_augment" /* StrengthIiAugment */, "ftb_ma:strength_i_augment" /* StrengthIAugment */, "ftb_ma:imperium_essence" /* ImperiumEssence */, MinecraftItemTypes.QuartzBlock, MinecraftItemTypes.IronSword),
    createAugmentRecipe("ftb_ma:strength_iii_augment" /* StrengthIiiAugment */, "ftb_ma:strength_ii_augment" /* StrengthIiAugment */, "ftb_ma:supremium_essence" /* SupremiumEssence */, MinecraftItemTypes.QuartzBlock, MinecraftItemTypes.IronSword),
    createAugmentRecipe("ftb_ma:tilling_aoe_i_augment" /* TillingAoeIAugment */, "ftb_ma:blank_augment" /* BlankAugment */, "ftb_ma:prudentium_essence" /* PrudentiumEssence */, MinecraftItemTypes.IronHoe),
    createAugmentRecipe("ftb_ma:tilling_aoe_ii_augment" /* TillingAoeIiAugment */, "ftb_ma:tilling_aoe_i_augment" /* TillingAoeIAugment */, "ftb_ma:tertium_essence" /* TertiumEssence */, MinecraftItemTypes.IronHoe),
    createAugmentRecipe("ftb_ma:tilling_aoe_iii_augment" /* TillingAoeIiiAugment */, "ftb_ma:tilling_aoe_ii_augment" /* TillingAoeIiAugment */, "ftb_ma:imperium_essence" /* ImperiumEssence */, MinecraftItemTypes.IronHoe),
    createAugmentRecipe("ftb_ma:tilling_aoe_iv_augment" /* TillingAoeIvAugment */, "ftb_ma:tilling_aoe_iii_augment" /* TillingAoeIiiAugment */, "ftb_ma:supremium_essence" /* SupremiumEssence */, MinecraftItemTypes.IronHoe),
    createAugmentRecipe("ftb_ma:water_breathing_augment" /* WaterBreathingAugment */, "ftb_ma:blank_augment" /* BlankAugment */, "ftb_ma:prudentium_essence" /* PrudentiumEssence */, MinecraftItemTypes.Pufferfish),
    createAugmentRecipe("ftb_ma:weakness_resistance_augment" /* WeaknessResistanceAugment */, "ftb_ma:blank_augment" /* BlankAugment */, "ftb_ma:tertium_essence" /* TertiumEssence */, MinecraftItemTypes.QuartzBlock, MinecraftItemTypes.IronAxe),
    createAugmentRecipe("ftb_ma:wither_resistance_augment" /* WitherResistanceAugment */, "ftb_ma:blank_augment" /* BlankAugment */, "ftb_ma:supremium_essence" /* SupremiumEssence */, MinecraftItemTypes.WitherSkeletonSkull, MinecraftItemTypes.NetherStar)
  );
}
function createSeedRecipe(crop) {
  const ingredient = crop.ingredient;
  const essence = crop.tier.essenceTypeId;
  const base = crop.type.seedBaseTypeId;
  return new InfusionRecipe(
    `seeds/${crop.path}`,
    new Input(base),
    [
      new Input(essence),
      new Input(ingredient.id, ingredient.type),
      new Input(essence),
      new Input(ingredient.id, ingredient.type),
      new Input(essence),
      new Input(ingredient.id, ingredient.type),
      new Input(essence),
      new Input(ingredient.id, ingredient.type)
    ],
    new ItemStack4(crop.seedsTypeId)
  );
}
function createGearUpgradeRecipe(result, gear, ingot, gemstone) {
  return new InfusionRecipe(
    `gear/${result.split(":").at(1)}`,
    new Input(gear),
    [new Input(gemstone), new Input(ingot), new Input(gemstone), new Input(ingot)],
    new ItemStack4(result),
    true
  );
}
function createAugmentRecipe(result, input, essence, ingredient1, ingredient2 = ingredient1) {
  return new InfusionRecipe(
    `augments/${result.split(":").at(1)}`,
    new Input(input),
    [
      new Input(ingredient1),
      new Input(essence),
      new Input(ingredient2),
      new Input(essence),
      new Input(ingredient1),
      new Input(essence),
      new Input(ingredient2),
      new Input(essence)
    ],
    new ItemStack4(result)
  );
}

// scripts/data/recipes/seed-reprocessor.ts
import { ItemStack as ItemStack5 } from "@minecraft/server";
function isSeedReprocessorInput(item) {
  return SpecialRecipes2.Registry.getInputCache(RecipeTypes.SeedReprocessor)?.hasItem(item.typeId) ?? false;
}
function registerSeedReprocessorRecipes(registry) {
  const essences = Crops.Registry.values().map((c) => createSeedReprocessorRecipe(c.essenceTypeId, 2, c.seedsTypeId));
  registry.register(
    ...essences
  );
}
function createSeedReprocessorRecipe(result, count, input) {
  return new SeedReprocessorRecipe(result, new Input(input), new ItemStack5(result, count));
}

// scripts/data/recipes/soul-extractor.ts
import { ItemStack as ItemStack6 } from "@minecraft/server";
function isSoulExtractorInput(item) {
  return SpecialRecipes2.Registry.getInputCache(RecipeTypes.SoulExtractor)?.hasItem(item.typeId) ?? false;
}
function registerSoulExtractorRecipes(registry) {
  registry.register(
    createSoulExtractorRecipe("ftb_ma:armadillo_soul" /* ArmadilloSoul */, MinecraftItemTypes.ArmadilloScute, 6),
    createSoulExtractorRecipe("ftb_ma:skeleton_soul" /* SkeletonSoul */, MinecraftItemTypes.Arrow, 50),
    createSoulExtractorRecipe("ftb_ma:cow_soul" /* CowSoul */, MinecraftItemTypes.Beef, 8),
    createSoulExtractorRecipe("ftb_ma:blaze_soul" /* BlazeSoul */, MinecraftItemTypes.BlazeRod, 10),
    createSoulExtractorRecipe("ftb_ma:skeleton_soul" /* SkeletonSoul */, MinecraftItemTypes.Bone, 10),
    createSoulExtractorRecipe("ftb_ma:breeze_soul" /* BreezeSoul */, MinecraftItemTypes.BreezeRod, 5),
    createSoulExtractorRecipe("ftb_ma:chicken_soul" /* ChickenSoul */, MinecraftItemTypes.Chicken, 8),
    createSoulExtractorRecipe("ftb_ma:wither_skeleton_soul" /* WitherSkeletonSoul */, MinecraftItemTypes.Coal, 64),
    createSoulExtractorRecipe("ftb_ma:fish_soul" /* FishSoul */, MinecraftItemTypes.Cod, 8),
    createSoulExtractorRecipe("ftb_ma:creeper_soul" /* CreeperSoul */, MinecraftItemTypes.CreeperHead, 1),
    createSoulExtractorRecipe("ftb_ma:chicken_soul" /* ChickenSoul */, MinecraftItemTypes.Egg, 16),
    createSoulExtractorRecipe("ftb_ma:enderman_soul" /* EndermanSoul */, MinecraftItemTypes.EnderPearl, 8),
    createSoulExtractorRecipe("ftb_ma:chicken_soul" /* ChickenSoul */, MinecraftItemTypes.Feather, 16),
    createSoulExtractorRecipe("ftb_ma:ghast_soul" /* GhastSoul */, MinecraftItemTypes.GhastTear, 3),
    createSoulExtractorRecipe("ftb_ma:creeper_soul" /* CreeperSoul */, MinecraftItemTypes.Gunpowder, 10),
    createSoulExtractorRecipe("ftb_ma:squid_soul" /* SquidSoul */, MinecraftItemTypes.InkSac, 12),
    createSoulExtractorRecipe("ftb_ma:cow_soul" /* CowSoul */, MinecraftItemTypes.Leather, 16),
    createSoulExtractorRecipe("ftb_ma:sheep_soul" /* SheepSoul */, MinecraftItemTypes.Mutton, 8),
    createSoulExtractorRecipe("ftb_ma:pig_soul" /* PigSoul */, MinecraftItemTypes.Porkchop, 8),
    createSoulExtractorRecipe("ftb_ma:fish_soul" /* FishSoul */, MinecraftItemTypes.Pufferfish, 2),
    createSoulExtractorRecipe("ftb_ma:rabbit_soul" /* RabbitSoul */, MinecraftItemTypes.Rabbit, 6),
    createSoulExtractorRecipe("ftb_ma:rabbit_soul" /* RabbitSoul */, MinecraftItemTypes.RabbitFoot, 12),
    createSoulExtractorRecipe("ftb_ma:rabbit_soul" /* RabbitSoul */, MinecraftItemTypes.RabbitHide, 12),
    createSoulExtractorRecipe("ftb_ma:zombie_soul" /* ZombieSoul */, MinecraftItemTypes.RottenFlesh, 12),
    createSoulExtractorRecipe("ftb_ma:fish_soul" /* FishSoul */, MinecraftItemTypes.Salmon, 7),
    createSoulExtractorRecipe("ftb_ma:skeleton_soul" /* SkeletonSoul */, MinecraftItemTypes.SkeletonSkull, 1),
    createSoulExtractorRecipe("ftb_ma:slime_soul" /* SlimeSoul */, MinecraftItemTypes.SlimeBall, 12),
    createSoulExtractorRecipe("ftb_ma:spider_soul" /* SpiderSoul */, MinecraftItemTypes.SpiderEye, 5),
    createSoulExtractorRecipe("ftb_ma:spider_soul" /* SpiderSoul */, MinecraftItemTypes.String, 20),
    createSoulExtractorRecipe("ftb_ma:fish_soul" /* FishSoul */, MinecraftItemTypes.TropicalFish, 8),
    createSoulExtractorRecipe("ftb_ma:turtle_soul" /* TurtleSoul */, MinecraftItemTypes.TurtleScute, 6),
    createSoulExtractorRecipe("ftb_ma:wither_skeleton_soul" /* WitherSkeletonSoul */, MinecraftItemTypes.WitherSkeletonSkull, 1),
    createSoulExtractorRecipe("ftb_ma:sheep_soul" /* SheepSoul */, "minecraft:wool", 20, "tag"),
    createSoulExtractorRecipe("ftb_ma:zombie_soul" /* ZombieSoul */, MinecraftItemTypes.ZombieHead, 1)
  );
}
function createSoulExtractorRecipe(result, input, count, type = "item") {
  return new SoulExtractorRecipe(input, new InputWithCount(input, count, type), new ItemStack6(result));
}

// scripts/data/recipes/soulium-spawner.ts
function isSouliumSpawnerInput(item) {
  return SpecialRecipes2.Registry.getInputCache(RecipeTypes.SouliumSpawner)?.hasItem(item.typeId) ?? false;
}
function registerSouliumSpawnerRecipes(registry) {
  registry.register(
    createSouliumSpawnerRecipe("armadillo", [
      { id: MinecraftEntityTypes.Armadillo, weight: 1 }
    ], "ftb_ma:armadillo_essence" /* ArmadilloEssence */, 12),
    createSouliumSpawnerRecipe("bee", [
      { id: MinecraftEntityTypes.Bee, weight: 1 }
    ], "ftb_ma:honey_essence" /* HoneyEssence */, 12),
    createSouliumSpawnerRecipe("blaze", [
      { id: MinecraftEntityTypes.Blaze, weight: 1 }
    ], "ftb_ma:blaze_essence" /* BlazeEssence */, 24),
    createSouliumSpawnerRecipe("breeze", [
      { id: MinecraftEntityTypes.Breeze, weight: 1 }
    ], "ftb_ma:breeze_essence" /* BreezeEssence */, 24),
    createSouliumSpawnerRecipe("chicken", [
      { id: MinecraftEntityTypes.Chicken, weight: 1 }
    ], "ftb_ma:chicken_essence" /* ChickenEssence */, 12),
    createSouliumSpawnerRecipe("cow", [
      { id: MinecraftEntityTypes.Cow, weight: 1 }
    ], "ftb_ma:cow_essence" /* CowEssence */, 12),
    createSouliumSpawnerRecipe("creeper", [
      { id: MinecraftEntityTypes.Creeper, weight: 1 }
    ], "ftb_ma:creeper_essence" /* CreeperEssence */, 16),
    createSouliumSpawnerRecipe("enderman", [
      { id: MinecraftEntityTypes.Enderman, weight: 1 }
    ], "ftb_ma:enderman_essence" /* EndermanEssence */, 24),
    createSouliumSpawnerRecipe("fish", [
      { id: MinecraftEntityTypes.Cod, weight: 8 },
      { id: MinecraftEntityTypes.Salmon, weight: 8 },
      { id: MinecraftEntityTypes.Tropicalfish, weight: 3 },
      { id: MinecraftEntityTypes.Pufferfish, weight: 1 }
    ], "ftb_ma:fish_essence" /* FishEssence */, 12),
    createSouliumSpawnerRecipe("ghast", [
      { id: MinecraftEntityTypes.Ghast, weight: 1 }
    ], "ftb_ma:ghast_essence" /* GhastEssence */, 24),
    createSouliumSpawnerRecipe("guardian", [
      { id: MinecraftEntityTypes.Guardian, weight: 1 }
    ], "ftb_ma:prismarine_essence" /* PrismarineEssence */, 16),
    createSouliumSpawnerRecipe("pig", [
      { id: MinecraftEntityTypes.Pig, weight: 1 }
    ], "ftb_ma:pig_essence" /* PigEssence */, 12),
    createSouliumSpawnerRecipe("rabbit", [
      { id: MinecraftEntityTypes.Rabbit, weight: 1 }
    ], "ftb_ma:rabbit_essence" /* RabbitEssence */, 16),
    createSouliumSpawnerRecipe("sheep", [
      { id: MinecraftEntityTypes.Sheep, weight: 1 }
    ], "ftb_ma:sheep_essence" /* SheepEssence */, 12),
    createSouliumSpawnerRecipe("skeleton", [
      { id: MinecraftEntityTypes.Skeleton, weight: 19 },
      { id: MinecraftEntityTypes.Bogged, weight: 1 }
    ], "ftb_ma:skeleton_essence" /* SkeletonEssence */, 16),
    createSouliumSpawnerRecipe("slime", [
      { id: MinecraftEntityTypes.Slime, weight: 1 }
    ], "ftb_ma:slime_essence" /* SlimeEssence */, 12),
    createSouliumSpawnerRecipe("spider", [
      { id: MinecraftEntityTypes.Spider, weight: 1 }
    ], "ftb_ma:spider_essence" /* SpiderEssence */, 16),
    createSouliumSpawnerRecipe("squid", [
      { id: MinecraftEntityTypes.Squid, weight: 1 }
    ], "ftb_ma:squid_essence" /* SquidEssence */, 12),
    createSouliumSpawnerRecipe("turtle", [
      { id: MinecraftEntityTypes.Turtle, weight: 1 }
    ], "ftb_ma:turtle_essence" /* TurtleEssence */, 12),
    createSouliumSpawnerRecipe("wither_skeleton", [
      { id: MinecraftEntityTypes.WitherSkeleton, weight: 1 }
    ], "ftb_ma:wither_skeleton_essence" /* WitherSkeletonEssence */, 32),
    createSouliumSpawnerRecipe("zombie", [
      { id: MinecraftEntityTypes.Zombie, weight: 19 },
      { id: MinecraftEntityTypes.ZombieVillager, weight: 1 }
    ], "ftb_ma:zombie_essence" /* ZombieEssence */, 12)
  );
}
function createSouliumSpawnerRecipe(id, results, input, count) {
  return new SouliumSpawnerRecipe(id, new InputWithCount(input, count), results);
}

// scripts/data/recipes.ts
var Input = class {
  constructor(id, type = "item") {
    this.id = id;
    this.type = type;
  }
  test(input) {
    switch (this.type) {
      case "item":
        return input.typeId === this.id;
      case "tag":
        return input.hasTag(this.id);
      default:
        return false;
    }
  }
};
var InputWithCount = class extends Input {
  constructor(id, count, type = "item") {
    super(id, type);
    this.count = count;
  }
};
var RecipeType = class {
};
var RecipeTypes = class {
  static {
    this.Awakening = new RecipeType();
  }
  static {
    this.Enchanter = new RecipeType();
  }
  static {
    this.Furnace = new RecipeType();
  }
  static {
    this.Infusion = new RecipeType();
  }
  static {
    this.SeedReprocessor = new RecipeType();
  }
  static {
    this.SoulExtractor = new RecipeType();
  }
  static {
    this.SouliumSpawner = new RecipeType();
  }
};
var RecipeInputCache = class {
  constructor() {
    this.items = /* @__PURE__ */ new Map();
    this.tags = /* @__PURE__ */ new Map();
  }
  addInput(input, recipe) {
    switch (input.type) {
      case "item":
        this.addItem(input.id, recipe);
        break;
      case "tag":
        this.addTag(input.id, recipe);
        break;
      default:
        throw new Error(`Invalid ingredient type provided ${input.type}`);
    }
  }
  addItem(item, recipe) {
    const recipes = this.items.get(item) ?? [];
    recipes.push(recipe);
    this.items.set(item, recipes);
  }
  addTag(tag, recipe) {
    const recipes = this.tags.get(tag) ?? [];
    recipes.push(recipe);
    this.tags.set(tag, recipes);
  }
  hasItem(item) {
    return this.items.has(item);
  }
  hasTag(tag) {
    return this.tags.has(tag);
  }
};
var SpecialRecipe = class extends RegistryItem {
  constructor(path) {
    super(path);
  }
  cache(cache) {
  }
  toJson() {
    throw new Error("Method not implemented.");
  }
};
var SpecialRecipes2 = class _SpecialRecipes extends Registry {
  constructor() {
    super();
    this.byType = /* @__PURE__ */ new Map();
    this.caches = /* @__PURE__ */ new Map();
  }
  static {
    this.Registry = new _SpecialRecipes();
  }
  find(type, inputs) {
    return this.byType.get(type)?.find((r) => r.matches(inputs));
  }
  getInputCache(type) {
    return this.caches.get(type);
  }
  register(...items) {
    super.register(...items);
    for (const item of items) {
      if (!this.byType.has(item.type)) {
        this.byType.set(item.type, []);
      }
      this.byType.get(item.type).push(item);
      if (!this.caches.has(item.type)) {
        this.caches.set(item.type, new RecipeInputCache());
      }
      item.cache(this.caches.get(item.type));
    }
  }
};
var InfusionRecipe = class extends SpecialRecipe {
  constructor(path, altar, pedestals, result, transferData = false) {
    super(`infusion/${path}`);
    this.altar = altar;
    this.pedestals = pedestals;
    this.result = result;
    this.transferData = transferData;
    this.type = RecipeTypes.Infusion;
  }
  matches(items) {
    if (items.length - 1 !== this.pedestals.length) {
      return false;
    }
    if (!this.altar.test(items[0])) {
      return false;
    }
    const found = Array(this.pedestals.length).fill(false);
    for (let i = 1; i < items.length; i++) {
      for (let j = 0; j < this.pedestals.length; j++) {
        if (!found[j] && this.pedestals[j].test(items[i])) {
          found[j] = true;
          break;
        }
      }
    }
    return found.every((f) => f);
  }
  assemble(items) {
    const result = this.result.clone();
    if (this.transferData) {
      copyItemData(items[0], result);
    }
    return result;
  }
};
var AwakeningRecipe = class extends SpecialRecipe {
  constructor(path, altar, pedestals, essences, result, transferData = false) {
    super(`awakening/${path}`);
    this.altar = altar;
    this.pedestals = pedestals;
    this.essences = essences;
    this.result = result;
    this.transferData = transferData;
    this.type = RecipeTypes.Awakening;
  }
  matches(items) {
    if (items.length - 5 !== this.pedestals.length) {
      return false;
    }
    if (!this.altar.test(items[0])) {
      return false;
    }
    return this.hasAllPedestalItems(items) && this.hasAllEssences(items);
  }
  assemble(items) {
    const result = this.result.clone();
    if (this.transferData) {
      copyItemData(items[0], result);
    }
    return result;
  }
  hasAllPedestalItems(items) {
    const found = Array(this.pedestals.length).fill(false);
    for (let i = 1; i < items.length; i++) {
      for (let j = 0; j < this.pedestals.length; j++) {
        if (!found[j] && this.pedestals[j].test(items[i])) {
          found[j] = true;
          break;
        }
      }
    }
    return found.every((f) => f);
  }
  hasAllEssences(items) {
    const essences = /* @__PURE__ */ new Map([
      ["ftb_ma:air_essence" /* AirEssence */, -1],
      ["ftb_ma:earth_essence" /* EarthEssence */, -1],
      ["ftb_ma:water_essence" /* WaterEssence */, -1],
      ["ftb_ma:fire_essence" /* FireEssence */, -1]
    ]);
    for (let i = 1 + this.pedestals.length; i < items.length; i++) {
      const item = items[i];
      if (item.typeId === "ftb_ma:air_essence" /* AirEssence */) essences.set("ftb_ma:air_essence" /* AirEssence */, item.amount);
      else if (item.typeId === "ftb_ma:earth_essence" /* EarthEssence */) essences.set("ftb_ma:earth_essence" /* EarthEssence */, item.amount);
      else if (item.typeId === "ftb_ma:water_essence" /* WaterEssence */) essences.set("ftb_ma:water_essence" /* WaterEssence */, item.amount);
      else if (item.typeId === "ftb_ma:fire_essence" /* FireEssence */) essences.set("ftb_ma:fire_essence" /* FireEssence */, item.amount);
    }
    for (const [_, amount] of essences) {
      if (amount < this.essences) {
        return false;
      }
    }
    return true;
  }
};
var FurnaceRecipe = class extends SpecialRecipe {
  constructor(path, input, result) {
    super(`furnace/${path}`);
    this.input = input;
    this.result = result;
    this.type = RecipeTypes.Furnace;
  }
  matches(items) {
    return items.length === 1 && this.input.test(items[0]);
  }
  assemble(items) {
    return this.result.clone();
  }
  cache(cache) {
    cache.addInput(this.input, this);
  }
};
var SeedReprocessorRecipe = class extends SpecialRecipe {
  constructor(path, input, result) {
    super(`seed_reprocessor/${path}`);
    this.input = input;
    this.result = result;
    this.type = RecipeTypes.SeedReprocessor;
  }
  matches(items) {
    return items.length === 1 && this.input.test(items[0]);
  }
  assemble(items) {
    return this.result.clone();
  }
  cache(cache) {
    cache.addInput(this.input, this);
  }
};
var SoulExtractorRecipe = class extends SpecialRecipe {
  constructor(path, input, result) {
    super(`soul_extractor/${path}`);
    this.input = input;
    this.result = result;
    this.type = RecipeTypes.SoulExtractor;
  }
  matches(items) {
    return items.length === 1 && this.input.test(items[0]);
  }
  assemble(items) {
    return this.result.clone();
  }
  cache(cache) {
    cache.addInput(this.input, this);
  }
};
var SouliumSpawnerRecipe = class extends SpecialRecipe {
  constructor(path, input, entities) {
    super(`soulium_spawner/${path}`);
    this.input = input;
    this.entities = entities;
    this.type = RecipeTypes.SouliumSpawner;
    const entries = /* @__PURE__ */ new Map();
    const totalWeight = 0;
    for (const entity of entities) {
      entries.set(totalWeight + entity.weight, entity.id);
    }
    this.entries = entries;
    this.totalWeight = totalWeight;
  }
  matches(items) {
    return items.length === 1 && this.input.test(items[0]);
  }
  assemble(items) {
    return new ItemStack7(MinecraftBlockTypes.Air);
  }
  cache(cache) {
    cache.addInput(this.input, this);
  }
  getRandomEntity() {
    const index = randIntInclusive(1, this.totalWeight);
    for (const [weight, entity] of this.entries) {
      if (index >= weight) {
        return entity;
      }
    }
    throw new Error(`Failed to select a random entity for ${this.id}`);
  }
};
var EnchanterRecipe = class extends SpecialRecipe {
  constructor(path, input, experienceEssence, enchantment) {
    super(`enchanter/${path}`);
    this.input = input;
    this.experienceEssence = experienceEssence;
    this.enchantment = enchantment;
    this.type = RecipeTypes.Enchanter;
    this.enchantmentType = EnchantmentTypes.get(enchantment);
    this.displayName = enchantment.split(":").at(1)?.split("_").map((s) => s[0].toUpperCase() + s.slice(1)).join(" ") ?? "Invalid Enchantment";
    if (!this.enchantmentType) {
      throw new Error(`Invalid enchantment type ${enchantment} for enchanter recipe ${path}`);
    }
  }
  matches(items) {
    return items.length === 2 && items[0].typeId === "ftb_ma:experience_essence" /* ExperienceEssence */ && this.input.test(items[1]);
  }
  assemble(items) {
    return new ItemStack7(MinecraftBlockTypes.Air);
  }
  cache(cache) {
    cache.addInput(this.input, this);
  }
  create(essences, materials) {
    return {
      level: this.getLevelForInputs(essences, materials),
      type: this.enchantmentType
    };
  }
  // checks if the enchantment can be applied to the item
  // requires the essence and material item amounts to calculate result level
  canApplyTo(item, essences, materials) {
    const enchantable = getEnchantable(item);
    if (!enchantable) {
      return false;
    }
    const level = this.getLevelForInputs(essences, materials);
    const current = enchantable.getEnchantment(this.enchantment);
    if (current && current.level > level) {
      return false;
    }
    return enchantable.canAddEnchantment({
      level,
      type: this.enchantmentType
    });
  }
  getLevelForInputs(essences, materials) {
    const essenceTier = Math.floor(essences / this.experienceEssence);
    const materialTier = Math.floor(materials / this.input.count);
    const level = Math.min(essenceTier, materialTier);
    return Math.min(level, this.enchantmentType.maxLevel);
  }
};
world2.afterEvents.worldLoad.subscribe((event) => {
  registerInfusionRecipes(SpecialRecipes2.Registry);
  registerAwakeningRecipes(SpecialRecipes2.Registry);
  registerFurnaceRecipes(SpecialRecipes2.Registry);
  registerSeedReprocessorRecipes(SpecialRecipes2.Registry);
  registerSoulExtractorRecipes(SpecialRecipes2.Registry);
  registerSouliumSpawnerRecipes(SpecialRecipes2.Registry);
  registerEnchanterRecipes(SpecialRecipes2.Registry);
});

// scripts/functions/entities.ts
import {
  system as system9
} from "@minecraft/server";

// scripts/functions/essence-vessel.ts
var MAX_STACK_SIZE = 40;
var VALID_ITEMS = /* @__PURE__ */ new Set([
  "ftb_ma:air_essence" /* AirEssence */,
  "ftb_ma:water_essence" /* WaterEssence */,
  "ftb_ma:earth_essence" /* EarthEssence */,
  "ftb_ma:fire_essence" /* FireEssence */
]);
var EssenceVesselContext = class {
  constructor(block2, player, entity) {
    this.block = block2;
    this.player = player;
    this.entity = entity;
  }
};
function isValidEssenceVesselItem(stack) {
  return VALID_ITEMS.has(stack.typeId);
}
function canAddItemToEssenceVessel(current, adding) {
  return current.amount < MAX_STACK_SIZE && current.isStackableWith(adding);
}
function addItemToEssenceVessel(context, stack) {
  const current = getMainhandItemDisplayItem(context.entity)?.amount ?? 0;
  const amount = Math.min(stack.amount, MAX_STACK_SIZE - current);
  setMainhandItemDisplayItem(context.entity, 0, cloneWithCount(stack, current + amount));
  context.entity.setProperty("ftb_ma:essence_vessel_amount" /* EssenceVesselAmount */, current + amount);
  context.entity.setProperty("ftb_ma:essence_vessel_type" /* EssenceVesselType */, getEssenceVesselType(stack));
  context.block.dimension.playSound("armor.equip_generic", context.block.location);
  shrinkMainhandItem(context.player, stack, amount);
}
function removeItemFromEssenceVessel(context) {
  const item = getMainhandItemDisplayItem(context.entity);
  if (item) {
    const dimension = context.block.dimension;
    const remaining = addItemToInventory(context.player, item);
    if (remaining) {
      dimension.spawnItem(remaining, context.entity.location);
    }
    setMainhandItemDisplayItem(context.entity, 0, void 0);
    context.entity.setProperty("ftb_ma:essence_vessel_amount" /* EssenceVesselAmount */, 0);
    context.entity.setProperty("ftb_ma:essence_vessel_type" /* EssenceVesselType */, "none" /* None */);
    dimension.playSound("random.pop", context.entity.location);
  }
}
function shrinkItemInEssenceVessel(entity, amount) {
  const item = getMainhandItemDisplayItem(entity);
  if (item) {
    if (item.amount <= amount) {
      setMainhandItemDisplayItem(entity, 0, void 0);
      entity.setProperty("ftb_ma:essence_vessel_amount" /* EssenceVesselAmount */, 0);
      entity.setProperty("ftb_ma:essence_vessel_type" /* EssenceVesselType */, "none" /* None */);
    } else {
      item.amount -= amount;
      setMainhandItemDisplayItem(entity, 0, item);
      entity.setProperty("ftb_ma:essence_vessel_amount" /* EssenceVesselAmount */, item.amount);
    }
  }
}
function getEssenceVesselType(item) {
  switch (item.typeId) {
    case "ftb_ma:air_essence" /* AirEssence */:
      return "air" /* Air */;
    case "ftb_ma:earth_essence" /* EarthEssence */:
      return "earth" /* Earth */;
    case "ftb_ma:water_essence" /* WaterEssence */:
      return "water" /* Water */;
    case "ftb_ma:fire_essence" /* FireEssence */:
      return "fire" /* Fire */;
    default:
      return "none" /* None */;
  }
}
function handleEssenceVesselDestroyed(block2) {
  const dimension = block2.dimension;
  const entity = getEntityAtLocation(dimension, block2.center(), "ftb_ma:essence_vessel" /* EssenceVessel */);
  if (entity) {
    const item = getMainhandItemDisplayItem(entity);
    if (item) {
      dimension.spawnItem(item, entity.location);
    }
    entity.remove();
  } else {
    console.error("Failed to remove entity for Essence Vessel at location", JSON.stringify(block2.center()));
  }
}

// scripts/functions/machines.ts
import { Direction, ItemStack as ItemStack8, system as system3 } from "@minecraft/server";

// scripts/data/fuels.ts
var FUEL_BURN_TIMES = /* @__PURE__ */ new Map([
  [MinecraftItemTypes.CoalBlock, 16e3],
  [MinecraftItemTypes.DriedKelpBlock, 4e3],
  [MinecraftItemTypes.BlazeRod, 2400],
  [MinecraftItemTypes.Coal, 1600],
  [MinecraftItemTypes.Charcoal, 1600],
  [MinecraftItemTypes.LavaBucket, 2e4],
  // boat
  [MinecraftItemTypes.OakBoat, 1200],
  [MinecraftItemTypes.SpruceBoat, 1200],
  [MinecraftItemTypes.BirchBoat, 1200],
  [MinecraftItemTypes.JungleBoat, 1200],
  [MinecraftItemTypes.AcaciaBoat, 1200],
  [MinecraftItemTypes.DarkOakBoat, 1200],
  [MinecraftItemTypes.MangroveBoat, 1200],
  [MinecraftItemTypes.CherryBoat, 1200],
  [MinecraftItemTypes.PaleOakBoat, 1200],
  [MinecraftItemTypes.BambooRaft, 1200],
  // chest boats
  [MinecraftItemTypes.OakChestBoat, 1200],
  [MinecraftItemTypes.SpruceChestBoat, 1200],
  [MinecraftItemTypes.BirchChestBoat, 1200],
  [MinecraftItemTypes.JungleChestBoat, 1200],
  [MinecraftItemTypes.AcaciaChestBoat, 1200],
  [MinecraftItemTypes.DarkOakChestBoat, 1200],
  [MinecraftItemTypes.MangroveChestBoat, 1200],
  [MinecraftItemTypes.CherryChestBoat, 1200],
  [MinecraftItemTypes.PaleOakChestBoat, 1200],
  [MinecraftItemTypes.BambooChestRaft, 1200],
  // bamboo
  [MinecraftItemTypes.Bamboo, 50],
  [MinecraftItemTypes.BambooMosaic, 300],
  [MinecraftItemTypes.BambooMosaicSlab, 300],
  [MinecraftItemTypes.BambooMosaicStairs, 300],
  [MinecraftItemTypes.BambooBlock, 300],
  [MinecraftItemTypes.StrippedBambooBlock, 300],
  [MinecraftItemTypes.BeeNest, 300],
  [MinecraftItemTypes.Beehive, 300],
  [MinecraftItemTypes.ChiseledBookshelf, 300],
  // logs
  [MinecraftItemTypes.OakLog, 300],
  [MinecraftItemTypes.SpruceLog, 300],
  [MinecraftItemTypes.BirchLog, 300],
  [MinecraftItemTypes.JungleLog, 300],
  [MinecraftItemTypes.AcaciaLog, 300],
  [MinecraftItemTypes.DarkOakLog, 300],
  [MinecraftItemTypes.MangroveLog, 300],
  [MinecraftItemTypes.CherryLog, 300],
  [MinecraftItemTypes.PaleOakLog, 300],
  [MinecraftItemTypes.CrimsonStem, 300],
  [MinecraftItemTypes.WarpedStem, 300],
  // stripped logs
  [MinecraftItemTypes.StrippedOakLog, 300],
  [MinecraftItemTypes.StrippedSpruceLog, 300],
  [MinecraftItemTypes.StrippedBirchLog, 300],
  [MinecraftItemTypes.StrippedJungleLog, 300],
  [MinecraftItemTypes.StrippedAcaciaLog, 300],
  [MinecraftItemTypes.StrippedDarkOakLog, 300],
  [MinecraftItemTypes.StrippedMangroveLog, 300],
  [MinecraftItemTypes.StrippedCherryLog, 300],
  [MinecraftItemTypes.StrippedPaleOakLog, 300],
  [MinecraftItemTypes.StrippedCrimsonStem, 300],
  [MinecraftItemTypes.StrippedWarpedStem, 300],
  // wood
  [MinecraftItemTypes.OakWood, 300],
  [MinecraftItemTypes.SpruceWood, 300],
  [MinecraftItemTypes.BirchWood, 300],
  [MinecraftItemTypes.JungleWood, 300],
  [MinecraftItemTypes.AcaciaWood, 300],
  [MinecraftItemTypes.DarkOakWood, 300],
  [MinecraftItemTypes.MangroveWood, 300],
  [MinecraftItemTypes.CherryWood, 300],
  [MinecraftItemTypes.PaleOakWood, 300],
  [MinecraftItemTypes.CrimsonHyphae, 300],
  [MinecraftItemTypes.WarpedHyphae, 300],
  // stripped wood
  [MinecraftItemTypes.StrippedOakWood, 300],
  [MinecraftItemTypes.StrippedSpruceWood, 300],
  [MinecraftItemTypes.StrippedBirchWood, 300],
  [MinecraftItemTypes.StrippedJungleWood, 300],
  [MinecraftItemTypes.StrippedAcaciaWood, 300],
  [MinecraftItemTypes.StrippedDarkOakWood, 300],
  [MinecraftItemTypes.StrippedMangroveWood, 300],
  [MinecraftItemTypes.StrippedCherryWood, 300],
  [MinecraftItemTypes.StrippedPaleOakWood, 300],
  [MinecraftItemTypes.StrippedCrimsonHyphae, 300],
  [MinecraftItemTypes.StrippedWarpedHyphae, 300],
  // planks
  [MinecraftItemTypes.OakPlanks, 300],
  [MinecraftItemTypes.SprucePlanks, 300],
  [MinecraftItemTypes.BirchPlanks, 300],
  [MinecraftItemTypes.JunglePlanks, 300],
  [MinecraftItemTypes.AcaciaPlanks, 300],
  [MinecraftItemTypes.DarkOakPlanks, 300],
  [MinecraftItemTypes.MangrovePlanks, 300],
  [MinecraftItemTypes.CherryPlanks, 300],
  [MinecraftItemTypes.PaleOakPlanks, 300],
  [MinecraftItemTypes.CrimsonPlanks, 300],
  [MinecraftItemTypes.WarpedPlanks, 300],
  // slabs
  [MinecraftItemTypes.OakSlab, 300],
  [MinecraftItemTypes.SpruceSlab, 300],
  [MinecraftItemTypes.BirchSlab, 300],
  [MinecraftItemTypes.JungleSlab, 300],
  [MinecraftItemTypes.AcaciaSlab, 300],
  [MinecraftItemTypes.DarkOakSlab, 300],
  [MinecraftItemTypes.MangroveSlab, 300],
  [MinecraftItemTypes.CherrySlab, 300],
  [MinecraftItemTypes.PaleOakSlab, 300],
  [MinecraftItemTypes.CrimsonSlab, 300],
  [MinecraftItemTypes.WarpedSlab, 300],
  // stairs
  [MinecraftItemTypes.OakStairs, 300],
  [MinecraftItemTypes.SpruceStairs, 300],
  [MinecraftItemTypes.BirchStairs, 300],
  [MinecraftItemTypes.JungleStairs, 300],
  [MinecraftItemTypes.AcaciaStairs, 300],
  [MinecraftItemTypes.DarkOakStairs, 300],
  [MinecraftItemTypes.MangroveStairs, 300],
  [MinecraftItemTypes.CherryStairs, 300],
  [MinecraftItemTypes.PaleOakStairs, 300],
  [MinecraftItemTypes.CrimsonStairs, 300],
  [MinecraftItemTypes.WarpedStairs, 300],
  // pressure plates
  [MinecraftItemTypes.WoodenPressurePlate, 300],
  [MinecraftItemTypes.SprucePressurePlate, 300],
  [MinecraftItemTypes.BirchPressurePlate, 300],
  [MinecraftItemTypes.JunglePressurePlate, 300],
  [MinecraftItemTypes.AcaciaPressurePlate, 300],
  [MinecraftItemTypes.DarkOakPressurePlate, 300],
  [MinecraftItemTypes.MangrovePressurePlate, 300],
  [MinecraftItemTypes.CherryPressurePlate, 300],
  [MinecraftItemTypes.PaleOakPressurePlate, 300],
  [MinecraftItemTypes.CrimsonPressurePlate, 300],
  [MinecraftItemTypes.WarpedPressurePlate, 300],
  // buttons
  [MinecraftItemTypes.WoodenButton, 300],
  [MinecraftItemTypes.SpruceButton, 300],
  [MinecraftItemTypes.BirchButton, 300],
  [MinecraftItemTypes.JungleButton, 300],
  [MinecraftItemTypes.AcaciaButton, 300],
  [MinecraftItemTypes.DarkOakButton, 300],
  [MinecraftItemTypes.MangroveButton, 300],
  [MinecraftItemTypes.CherryButton, 300],
  [MinecraftItemTypes.PaleOakButton, 300],
  [MinecraftItemTypes.CrimsonButton, 300],
  [MinecraftItemTypes.WarpedButton, 300],
  // trapdoors
  [MinecraftItemTypes.Trapdoor, 300],
  [MinecraftItemTypes.SpruceTrapdoor, 300],
  [MinecraftItemTypes.BirchTrapdoor, 300],
  [MinecraftItemTypes.JungleTrapdoor, 300],
  [MinecraftItemTypes.AcaciaTrapdoor, 300],
  [MinecraftItemTypes.DarkOakTrapdoor, 300],
  [MinecraftItemTypes.MangroveTrapdoor, 300],
  [MinecraftItemTypes.CherryTrapdoor, 300],
  [MinecraftItemTypes.PaleOakTrapdoor, 300],
  [MinecraftItemTypes.CrimsonTrapdoor, 300],
  [MinecraftItemTypes.WarpedTrapdoor, 300],
  // fence gates
  [MinecraftItemTypes.FenceGate, 300],
  [MinecraftItemTypes.SpruceFenceGate, 300],
  [MinecraftItemTypes.BirchFenceGate, 300],
  [MinecraftItemTypes.JungleFenceGate, 300],
  [MinecraftItemTypes.AcaciaFenceGate, 300],
  [MinecraftItemTypes.DarkOakFenceGate, 300],
  [MinecraftItemTypes.MangroveFenceGate, 300],
  [MinecraftItemTypes.CherryFenceGate, 300],
  [MinecraftItemTypes.PaleOakFenceGate, 300],
  [MinecraftItemTypes.CrimsonFenceGate, 300],
  [MinecraftItemTypes.WarpedFenceGate, 300],
  // fences
  [MinecraftItemTypes.OakFence, 300],
  [MinecraftItemTypes.SpruceFence, 300],
  [MinecraftItemTypes.BirchFence, 300],
  [MinecraftItemTypes.JungleFence, 300],
  [MinecraftItemTypes.AcaciaFence, 300],
  [MinecraftItemTypes.DarkOakFence, 300],
  [MinecraftItemTypes.MangroveFence, 300],
  [MinecraftItemTypes.CherryFence, 300],
  [MinecraftItemTypes.PaleOakFence, 300],
  [MinecraftItemTypes.CrimsonFence, 300],
  [MinecraftItemTypes.WarpedFence, 300],
  [MinecraftItemTypes.MangroveRoots, 300],
  [MinecraftItemTypes.Ladder, 300],
  [MinecraftItemTypes.CraftingTable, 300],
  [MinecraftItemTypes.CartographyTable, 300],
  [MinecraftItemTypes.FletchingTable, 300],
  [MinecraftItemTypes.SmithingTable, 300],
  [MinecraftItemTypes.Loom, 300],
  [MinecraftItemTypes.Bookshelf, 300],
  [MinecraftItemTypes.Lectern, 300],
  [MinecraftItemTypes.Composter, 300],
  [MinecraftItemTypes.Chest, 300],
  [MinecraftItemTypes.TrappedChest, 300],
  [MinecraftItemTypes.Barrel, 300],
  [MinecraftItemTypes.DaylightDetector, 300],
  [MinecraftItemTypes.Jukebox, 300],
  [MinecraftItemTypes.Noteblock, 300],
  [MinecraftItemTypes.Banner, 300],
  [MinecraftItemTypes.Crossbow, 200],
  [MinecraftItemTypes.Bow, 200],
  [MinecraftItemTypes.FishingRod, 300],
  // doors
  [MinecraftItemTypes.WoodenDoor, 200],
  [MinecraftItemTypes.SpruceDoor, 200],
  [MinecraftItemTypes.BirchDoor, 200],
  [MinecraftItemTypes.JungleDoor, 200],
  [MinecraftItemTypes.AcaciaDoor, 200],
  [MinecraftItemTypes.DarkOakDoor, 200],
  [MinecraftItemTypes.MangroveDoor, 200],
  [MinecraftItemTypes.CherryDoor, 200],
  [MinecraftItemTypes.PaleOakDoor, 200],
  [MinecraftItemTypes.CrimsonDoor, 200],
  [MinecraftItemTypes.WarpedDoor, 200],
  // signs
  [MinecraftItemTypes.OakSign, 200],
  [MinecraftItemTypes.SpruceSign, 200],
  [MinecraftItemTypes.BirchSign, 200],
  [MinecraftItemTypes.JungleSign, 200],
  [MinecraftItemTypes.AcaciaSign, 200],
  [MinecraftItemTypes.DarkOakSign, 200],
  [MinecraftItemTypes.MangroveSign, 200],
  [MinecraftItemTypes.CherrySign, 200],
  [MinecraftItemTypes.PaleOakSign, 200],
  [MinecraftItemTypes.CrimsonSign, 200],
  [MinecraftItemTypes.WarpedSign, 200],
  // hanging signs
  [MinecraftItemTypes.OakHangingSign, 200],
  [MinecraftItemTypes.SpruceHangingSign, 200],
  [MinecraftItemTypes.BirchHangingSign, 200],
  [MinecraftItemTypes.JungleHangingSign, 200],
  [MinecraftItemTypes.AcaciaHangingSign, 200],
  [MinecraftItemTypes.DarkOakHangingSign, 200],
  [MinecraftItemTypes.MangroveHangingSign, 200],
  [MinecraftItemTypes.CherryHangingSign, 200],
  [MinecraftItemTypes.PaleOakHangingSign, 200],
  [MinecraftItemTypes.CrimsonHangingSign, 200],
  [MinecraftItemTypes.WarpedHangingSign, 200],
  [MinecraftItemTypes.WoodenPickaxe, 200],
  [MinecraftItemTypes.WoodenShovel, 200],
  [MinecraftItemTypes.WoodenHoe, 200],
  [MinecraftItemTypes.WoodenAxe, 200],
  [MinecraftItemTypes.WoodenSword, 200],
  [MinecraftItemTypes.Bowl, 200],
  // saplings
  [MinecraftItemTypes.OakSapling, 200],
  [MinecraftItemTypes.SpruceSapling, 200],
  [MinecraftItemTypes.BirchSapling, 200],
  [MinecraftItemTypes.JungleSapling, 200],
  [MinecraftItemTypes.AcaciaSapling, 200],
  [MinecraftItemTypes.DarkOakSapling, 200],
  [MinecraftItemTypes.MangrovePropagule, 200],
  [MinecraftItemTypes.CherrySapling, 200],
  [MinecraftItemTypes.PaleOakSapling, 200],
  [MinecraftItemTypes.Stick, 100],
  [MinecraftItemTypes.Azalea, 100],
  [MinecraftItemTypes.Scaffolding, 50]
]);
function getItemBurnTime(stack) {
  return FUEL_BURN_TIMES.get(stack.typeId) ?? 0;
}
function isFuelItem(stack) {
  return FUEL_BURN_TIMES.has(stack.typeId);
}

// scripts/functions/machines.ts
var FUEL_SLOT_INDEX = 0;
var UPGRADE_SLOT_INDEX = 1;
var MACHINE_PROGRESS_KEY = "Machine-Progress";
var MACHINE_FUEL_LEFT_KEY = "Machine-Fuel-Left";
var MACHINE_FUEL_VALUE_KEY = "Machine-Fuel-Value";
var MACHINE_RECIPE_KEY = "Machine-Recipe";
var BASE_MACHINE_UPGRADE_TIER = {
  value: 0,
  operationTimeMultiplier: 1,
  addedRange: 0
};
var MACHINE_UPGRADE_TIERS = /* @__PURE__ */ new Map([
  ["ftb_ma:inferium_machine_upgrade" /* InferiumMachineUpgrade */, { value: 1, operationTimeMultiplier: 0.833, addedRange: 1 }],
  ["ftb_ma:prudentium_machine_upgrade" /* PrudentiumMachineUpgrade */, { value: 2, operationTimeMultiplier: 0.625, addedRange: 2 }],
  ["ftb_ma:tertium_machine_upgrade" /* TertiumMachineUpgrade */, { value: 3, operationTimeMultiplier: 0.4, addedRange: 3 }],
  ["ftb_ma:imperium_machine_upgrade" /* ImperiumMachineUpgrade */, { value: 4, operationTimeMultiplier: 0.125, addedRange: 4 }],
  ["ftb_ma:supremium_machine_upgrade" /* SupremiumMachineUpgrade */, { value: 5, operationTimeMultiplier: 0.025, addedRange: 5 }],
  ["ftb_ma:awakened_supremium_machine_upgrade" /* AwakenedSupremiumMachineUpgrade */, { value: 6, operationTimeMultiplier: 5e-3, addedRange: 6 }]
]);
var MachineInteractionHandler = class {
  constructor(player, block2, entity, face) {
    this.player = player;
    this.block = block2;
    this.entity = entity;
    this.face = face;
  }
  handleClick() {
    const directions = getMachineFacingDirections(this.block);
    switch (this.face) {
      case directions.front:
        this.handleClickFront();
        break;
      case directions.back:
        this.handleClickBack();
        break;
      case directions.left:
        this.handleClickLeft();
        break;
      case directions.right:
        this.handleClickRight();
        break;
      case Direction.Up:
        this.handleClickTop();
        break;
      case Direction.Down:
        this.handleClickBottom();
        break;
      default:
        break;
    }
  }
  handleClickFront() {
  }
  handleClickBack() {
  }
  handleClickLeft() {
  }
  handleClickRight() {
  }
  handleClickTop() {
  }
  handleClickBottom() {
  }
};
var MachineTickHandler = class {
  constructor(block2, entity, inventory, baseOperationTime) {
    this.block = block2;
    this.entity = entity;
    this.inventory = inventory;
    this.tier = getMachineUpgradeTier(inventory.getItem(UPGRADE_SLOT_INDEX));
    this.operationTime = Math.max(1, baseOperationTime * this.tier.operationTimeMultiplier);
    this.wasRunning = this.nowRunning = !!block2.permutation.getState("ftb_ma:machine_running" /* MachineRunning */);
    this.tickOffset = (block2.x + block2.z) % 20;
  }
  get running() {
    return this.nowRunning;
  }
  set running(value) {
    this.nowRunning = value;
  }
  get progress() {
    return this.entity.getDynamicProperty(MACHINE_PROGRESS_KEY) ?? 0;
  }
  set progress(value) {
    this.entity.setProperty(
      "ftb_ma:machine_progress" /* MachineProgress */,
      clampNumber(Math.floor(value / this.operationTime * 100), 0, 100)
    );
    this.entity.setDynamicProperty(MACHINE_PROGRESS_KEY, value);
  }
  get fuelLeft() {
    return this.entity.getDynamicProperty(MACHINE_FUEL_LEFT_KEY) ?? 0;
  }
  set fuelLeft(value) {
    const fuelValue = this.fuelValue;
    this.entity.setProperty(
      "ftb_ma:machine_fuel" /* MachineFuel */,
      fuelValue > 0 ? Math.floor(value / fuelValue * 100) : 0
    );
    this.entity.setDynamicProperty(MACHINE_FUEL_LEFT_KEY, value);
  }
  get fuelValue() {
    return this.entity.getDynamicProperty(MACHINE_FUEL_VALUE_KEY) ?? 0;
  }
  set fuelValue(value) {
    this.entity.setDynamicProperty(MACHINE_FUEL_VALUE_KEY, value);
  }
  get recipe() {
    return this.entity.getDynamicProperty(MACHINE_RECIPE_KEY);
  }
  set recipe(value) {
    this.entity.setDynamicProperty(MACHINE_RECIPE_KEY, value);
  }
  reset(full = true) {
    this.progress = 0;
    this.running = false;
    this.recipe = void 0;
    if (full) {
      this.setRequirement(0, 0);
    }
  }
  setRequirement(amount, required) {
    this.entity.setProperty(
      "ftb_ma:machine_requirement" /* MachineRequirement */,
      required > 0 ? clampNumber(Math.floor(amount / required * 100), 0, 100) : 0
    );
  }
  canTick(cooldown) {
    return (this.tickOffset + system3.currentTick) % cooldown === 0;
  }
  hasRedstoneSignal() {
    return (this.block.getRedstonePower() ?? 0) > 0;
  }
  handleFuelUsage() {
    const fuel = this.inventory.getItem(FUEL_SLOT_INDEX);
    if (this.fuelLeft <= 0) {
      if (fuel) {
        const fuelValue = getItemBurnTime(fuel);
        if (fuelValue > 0) {
          this.fuelValue = fuelValue;
          this.fuelLeft = fuelValue;
          this.inventory.setItem(FUEL_SLOT_INDEX, shrink(fuel, 1));
          if (fuel.typeId === MinecraftItemTypes.LavaBucket) {
            handleMachineOutput(this.block, new ItemStack8(MinecraftItemTypes.Bucket));
          }
        }
      } else {
        this.fuelValue = 0;
      }
    }
    if (this.canTick(20)) {
      const directions = getMachineFacingDirections(this.block);
      handleMachineInput(
        this.entity,
        FUEL_SLOT_INDEX,
        getBlockAtMachineFacingOffset(this.block, directions.left),
        isFuelItem,
        fuel
      );
    }
  }
  handleRunningStatus() {
    if (this.wasRunning !== this.nowRunning) {
      if (!this.block.isValid || this.block.isAir) {
        return;
      }
      this.block.setPermutation(
        this.block.permutation.withState("ftb_ma:machine_running" /* MachineRunning */, this.nowRunning)
      );
    }
  }
};
function addItemToMachineSlot(entity, player, slot, stack) {
  const current = getItemInInventory(entity, slot);
  if (!current || stack.isStackableWith(current)) {
    const amount = Math.min(stack.amount, stack.maxAmount - (current?.amount ?? 0));
    setItemInInventory(entity, slot, current ? grow(current, amount) : stack);
    shrinkMainhandItem(player, stack, amount);
    entity.dimension.playSound("armor.equip_generic", entity.location);
    return true;
  }
  return false;
}
function removeItemFromMachineSlot(entity, player, slot) {
  const current = getItemInInventory(entity, slot);
  if (current) {
    const remaining = addItemToInventory(player, current);
    if (remaining) {
      entity.dimension.spawnItem(remaining, Vector3Utils.add(entity.location, { x: 0, y: 1, z: 0 }));
    }
    setItemInInventory(entity, slot, void 0);
    entity.dimension.playSound("random.pop", entity.location);
  }
}
function getMachineUpgradeTier(item) {
  if (!item) {
    return BASE_MACHINE_UPGRADE_TIER;
  }
  const tier = MACHINE_UPGRADE_TIERS.get(item.typeId);
  if (tier) {
    return tier;
  }
  return BASE_MACHINE_UPGRADE_TIER;
}
function getMachineUpgradeItem(entity) {
  return getItemInInventory(entity, UPGRADE_SLOT_INDEX);
}
function isMachineUpgradeItem(stack) {
  return MACHINE_UPGRADE_TIERS.has(stack.typeId);
}
function setMachineUpgradeItem(entity, stack) {
  setMainhandItemDisplayItem(entity, UPGRADE_SLOT_INDEX, stack);
}
function addMachineUpgradeItemToMachine(entity, player, stack) {
  const current = getMachineUpgradeItem(entity);
  if (current) {
    const currentTier = getMachineUpgradeTier(current);
    const newTier = getMachineUpgradeTier(stack);
    if (currentTier.value < newTier.value) {
      setMachineUpgradeItem(entity, cloneWithCount(stack, 1));
      shrinkMainhandItem(player, stack, 1);
      addItemToInventory(player, current);
      entity.dimension.playSound("armor.equip_generic", entity.location);
    }
  } else {
    setMachineUpgradeItem(entity, cloneWithCount(stack, 1));
    shrinkMainhandItem(player, stack, 1);
    entity.dimension.playSound("armor.equip_generic", entity.location);
    return true;
  }
  return false;
}
function removeMachineUpgradeItemFromMachine(entity, player) {
  const current = getMachineUpgradeItem(entity);
  if (current) {
    const remaining = addItemToInventory(player, current);
    if (remaining) {
      entity.dimension.spawnItem(remaining, Vector3Utils.add(entity.location, { x: 0, y: 1, z: 0 }));
    }
    setMachineUpgradeItem(entity, void 0);
    entity.dimension.playSound("random.pop", entity.location);
  }
}
function addFuelItemToMachine(entity, player, stack) {
  if (!isFuelItem(stack)) {
    return false;
  }
  return addItemToMachineSlot(entity, player, FUEL_SLOT_INDEX, stack);
}
function removeFuelItemFromMachine(entity, player) {
  removeItemFromMachineSlot(entity, player, FUEL_SLOT_INDEX);
}
var NORTH_FACING_DIRECTIONS = {
  front: Direction.South,
  back: Direction.North,
  left: Direction.West,
  right: Direction.East
};
var SOUTH_FACING_DIRECTIONS = {
  front: Direction.North,
  back: Direction.South,
  left: Direction.East,
  right: Direction.West
};
var EAST_FACING_DIRECTIONS = {
  front: Direction.West,
  back: Direction.East,
  left: Direction.North,
  right: Direction.South
};
var WEST_FACING_DIRECTIONS = {
  front: Direction.East,
  back: Direction.West,
  left: Direction.South,
  right: Direction.North
};
function getMachineFacingDirections(block2) {
  const facing = block2.permutation.getState("minecraft:cardinal_direction");
  switch (facing) {
    case "north":
      return NORTH_FACING_DIRECTIONS;
    case "south":
      return SOUTH_FACING_DIRECTIONS;
    case "east":
      return EAST_FACING_DIRECTIONS;
    case "west":
      return WEST_FACING_DIRECTIONS;
    default:
      throw new Error("Failed to get cardinal direction from block");
  }
}
function getLocationAtMachineFacingOffset(location, direction, steps = 1) {
  switch (direction) {
    case Direction.North:
      return {
        x: location.x,
        y: location.y,
        z: location.z - steps
      };
    case Direction.South:
      return {
        x: location.x,
        y: location.y,
        z: location.z + steps
      };
    case Direction.East:
      return {
        x: location.x + steps,
        y: location.y,
        z: location.z
      };
    case Direction.West:
      return {
        x: location.x - steps,
        y: location.y,
        z: location.z
      };
    case Direction.Up:
      return {
        x: location.x,
        y: location.y - steps,
        z: location.z
      };
    case Direction.Down:
      return {
        x: location.x,
        y: location.y + steps,
        z: location.z
      };
    default:
      return location;
  }
}
function getBlockAtMachineFacingOffset(block2, direction) {
  switch (direction) {
    case Direction.North:
      return block2.north();
    case Direction.South:
      return block2.south();
    case Direction.East:
      return block2.east();
    case Direction.West:
      return block2.west();
    case Direction.Up:
      return block2.above();
    case Direction.Down:
      return block2.below();
    default:
      return void 0;
  }
}
function isMachineInventoryBlock(block2) {
  if (block2.typeId === MinecraftBlockTypes.Chest || block2.typeId === MinecraftBlockTypes.TrappedChest || block2.typeId === MinecraftBlockTypes.Hopper) {
    return true;
  }
  return false;
}
function setMachineDisplayRotation(entity, direction) {
  switch (direction) {
    case "north":
      entity.setProperty("ftb_ma:y_rotation" /* YRotation */, 0);
      break;
    case "south":
      entity.setProperty("ftb_ma:y_rotation" /* YRotation */, 180);
      break;
    case "east":
      entity.setProperty("ftb_ma:y_rotation" /* YRotation */, 90);
      break;
    case "west":
      entity.setProperty("ftb_ma:y_rotation" /* YRotation */, -90);
      break;
    default:
      break;
  }
}
function handleMachineDestroyed(block2, entityType, name) {
  const entity = getEntityAtLocation(block2.dimension, block2.center(), entityType);
  if (entity) {
    const inventory = getEntityInventory(entity);
    if (!inventory) {
      return;
    }
    for (let i = 0; i < inventory.size; i++) {
      const item = inventory.getItem(i);
      if (item) {
        block2.dimension.spawnItem(item, block2.center());
      }
    }
    entity.remove();
  } else {
    console.error(`Failed to remove entity for ${name} at location`, JSON.stringify(block2.center()));
  }
}
function handleMachineInput(entity, slot, inventoryBlock, isValid, current) {
  if (current && current.amount >= current.maxAmount) {
    return;
  }
  if (inventoryBlock && isMachineInventoryBlock(inventoryBlock)) {
    const inventory = getBlockInventory(inventoryBlock);
    if (inventory) {
      for (let i = 0; i < inventory.size; i++) {
        const item = inventory.getItem(i);
        if (item && isValid(item) && (!current || item.isStackableWith(current))) {
          const amount = Math.min(item.amount, item.maxAmount - (current?.amount ?? 0));
          setItemInInventory(entity, slot, current ? grow(current, amount) : item.clone());
          inventory.setItem(i, shrink(item, amount));
          return;
        }
      }
    }
  }
}
function handleMachineOutput(block2, item) {
  const dimension = block2.dimension;
  const directions = getMachineFacingDirections(block2);
  let remaining = item;
  const belowBlock = block2.below();
  if (belowBlock && belowBlock.typeId === MinecraftBlockTypes.Hopper) {
    const inventory = getBlockInventory(belowBlock);
    if (inventory) {
      remaining = inventory.addItem(remaining);
    }
    if (!remaining) {
      return;
    }
  }
  const rightBlock = getBlockAtMachineFacingOffset(block2, directions.right);
  if (rightBlock && isMachineInventoryBlock(rightBlock)) {
    const inventory = getBlockInventory(rightBlock);
    if (inventory) {
      remaining = inventory.addItem(remaining);
    }
    if (!remaining) {
      return;
    }
  }
  const backBlock = getBlockAtMachineFacingOffset(block2, directions.back);
  if (backBlock && isMachineInventoryBlock(backBlock)) {
    const inventory = getBlockInventory(backBlock);
    if (inventory) {
      remaining = inventory.addItem(remaining);
    }
    if (!remaining) {
      return;
    }
  }
  if (remaining) {
    const location = getLocationAtMachineFacingOffset(block2.center(), directions.front);
    dimension.spawnItem(remaining, location);
    dimension.playSound("random.pop", block2.location);
  }
}

// scripts/functions/pedestals.ts
import { system as system4 } from "@minecraft/server";

// scripts/data/item-display-types.ts
var defaulty = (type) => [type, "default" /* Default */];
var tool = (type) => [type, "tool" /* Tool */];
var block = (type) => [type, "block" /* Block */];
var button = (type) => [type, "button" /* Button */];
var bow = (type) => [type, "bow" /* Bow */];
var crossbow = (type) => [type, "crossbow" /* Crossbow */];
var trident = (type) => [type, "trident" /* Trident */];
var head = (type) => [type, "head" /* Head */];
var wall = (type) => [type, "wall" /* Wall */];
var rod = (type) => [type, "rod" /* Rod */];
var pointedDripstone = (type) => [type, "pointed_dripstone" /* PointedDripstone */];
var conduit = (type) => [type, "conduit" /* Conduit */];
var shield = (type) => [type, "shield" /* Shield */];
var banner = (type) => [type, "banner" /* Banner */];
var decoratedPot = (type) => [type, "decorated_pot" /* DecoratedPot */];
var spyglass = (type) => [type, "spyglass" /* Spyglass */];
var LOOKUP = new Map([
  // all block items should be considered blocks
  ...Object.values(MinecraftBlockTypes).map(block),
  ...Object.values(AddonBlockTypes).map(block),
  // special case types
  button(MinecraftItemTypes.HeavyCore),
  bow(MinecraftItemTypes.Bow),
  crossbow(MinecraftItemTypes.Crossbow),
  trident(MinecraftItemTypes.Trident),
  rod(MinecraftBlockTypes.LightningRod),
  rod(MinecraftBlockTypes.EndRod),
  pointedDripstone(MinecraftBlockTypes.PointedDripstone),
  conduit(MinecraftBlockTypes.Conduit),
  shield(MinecraftItemTypes.Shield),
  banner(MinecraftItemTypes.Banner),
  decoratedPot(MinecraftBlockTypes.DecoratedPot),
  spyglass(MinecraftItemTypes.Spyglass),
  // lots of blocks use flat item textures
  defaulty(MinecraftBlockTypes.AcaciaDoor),
  defaulty(MinecraftBlockTypes.AcaciaHangingSign),
  defaulty(MinecraftBlockTypes.AcaciaSapling),
  defaulty(MinecraftBlockTypes.ActivatorRail),
  defaulty(MinecraftBlockTypes.Allium),
  defaulty(MinecraftBlockTypes.AmethystCluster),
  defaulty(MinecraftBlockTypes.AzureBluet),
  defaulty(MinecraftBlockTypes.BambooDoor),
  defaulty(MinecraftBlockTypes.BambooHangingSign),
  defaulty(MinecraftBlockTypes.BambooSapling),
  defaulty(MinecraftBlockTypes.Barrier),
  defaulty(MinecraftBlockTypes.Bed),
  defaulty(MinecraftBlockTypes.Beetroot),
  defaulty(MinecraftBlockTypes.Bell),
  defaulty(MinecraftBlockTypes.BirchDoor),
  defaulty(MinecraftBlockTypes.BirchHangingSign),
  defaulty(MinecraftBlockTypes.BirchSapling),
  defaulty(MinecraftBlockTypes.BlackCandle),
  defaulty(MinecraftBlockTypes.BlueCandle),
  defaulty(MinecraftBlockTypes.BlueOrchid),
  defaulty(MinecraftBlockTypes.BrainCoral),
  defaulty(MinecraftBlockTypes.BrainCoralFan),
  defaulty(MinecraftBlockTypes.BrewingStand),
  defaulty(MinecraftBlockTypes.BrownCandle),
  defaulty(MinecraftBlockTypes.BrownMushroom),
  defaulty(MinecraftBlockTypes.BubbleCoral),
  defaulty(MinecraftBlockTypes.BubbleCoralFan),
  defaulty(MinecraftBlockTypes.Cake),
  defaulty(MinecraftBlockTypes.Campfire),
  defaulty(MinecraftBlockTypes.Candle),
  defaulty(MinecraftBlockTypes.Cauldron),
  defaulty(MinecraftBlockTypes.Chain),
  defaulty(MinecraftBlockTypes.CherryDoor),
  defaulty(MinecraftBlockTypes.CherryHangingSign),
  defaulty(MinecraftBlockTypes.CherrySapling),
  defaulty(MinecraftBlockTypes.ClosedEyeblossom),
  defaulty(MinecraftBlockTypes.Cocoa),
  defaulty(MinecraftBlockTypes.CopperDoor),
  defaulty(MinecraftBlockTypes.Cornflower),
  defaulty(MinecraftBlockTypes.CrimsonDoor),
  defaulty(MinecraftBlockTypes.CrimsonFungus),
  defaulty(MinecraftBlockTypes.CrimsonHangingSign),
  defaulty(MinecraftBlockTypes.CrimsonRoots),
  defaulty(MinecraftBlockTypes.CyanCandle),
  defaulty(MinecraftBlockTypes.Dandelion),
  defaulty(MinecraftBlockTypes.DarkOakDoor),
  defaulty(MinecraftBlockTypes.DarkOakHangingSign),
  defaulty(MinecraftBlockTypes.DarkOakSapling),
  defaulty(MinecraftBlockTypes.DeadBrainCoral),
  defaulty(MinecraftBlockTypes.DeadBrainCoralFan),
  defaulty(MinecraftBlockTypes.DeadBubbleCoral),
  defaulty(MinecraftBlockTypes.DeadBubbleCoralFan),
  defaulty(MinecraftBlockTypes.Deadbush),
  defaulty(MinecraftBlockTypes.DeadFireCoral),
  defaulty(MinecraftBlockTypes.DeadFireCoralFan),
  defaulty(MinecraftBlockTypes.DeadHornCoral),
  defaulty(MinecraftBlockTypes.DeadHornCoralFan),
  defaulty(MinecraftBlockTypes.DeadTubeCoral),
  defaulty(MinecraftBlockTypes.DeadTubeCoralFan),
  defaulty(MinecraftBlockTypes.DetectorRail),
  defaulty(MinecraftBlockTypes.ExposedCopperDoor),
  defaulty(MinecraftBlockTypes.Fern),
  defaulty(MinecraftBlockTypes.FireCoral),
  defaulty(MinecraftBlockTypes.FireCoralFan),
  defaulty(MinecraftBlockTypes.FlowerPot),
  defaulty(MinecraftBlockTypes.Frame),
  defaulty(MinecraftBlockTypes.FrogSpawn),
  defaulty(MinecraftBlockTypes.GlowFrame),
  defaulty(MinecraftBlockTypes.GlowLichen),
  defaulty(MinecraftBlockTypes.GoldenRail),
  defaulty(MinecraftBlockTypes.GrayCandle),
  defaulty(MinecraftBlockTypes.GreenCandle),
  defaulty(MinecraftBlockTypes.HangingRoots),
  defaulty(MinecraftBlockTypes.Hopper),
  defaulty(MinecraftBlockTypes.HornCoral),
  defaulty(MinecraftBlockTypes.HornCoralFan),
  defaulty(MinecraftBlockTypes.IronBars),
  defaulty(MinecraftBlockTypes.IronDoor),
  defaulty(MinecraftBlockTypes.JungleDoor),
  defaulty(MinecraftBlockTypes.JungleHangingSign),
  defaulty(MinecraftBlockTypes.JungleSapling),
  defaulty(MinecraftBlockTypes.Kelp),
  defaulty(MinecraftBlockTypes.Ladder),
  defaulty(MinecraftBlockTypes.Lantern),
  defaulty(MinecraftBlockTypes.LargeAmethystBud),
  defaulty(MinecraftBlockTypes.LargeFern),
  defaulty(MinecraftBlockTypes.Lever),
  defaulty(MinecraftBlockTypes.LightBlueCandle),
  defaulty(MinecraftBlockTypes.LightGrayCandle),
  defaulty(MinecraftBlockTypes.Lilac),
  defaulty(MinecraftBlockTypes.LilyOfTheValley),
  defaulty(MinecraftBlockTypes.LimeCandle),
  defaulty(MinecraftBlockTypes.MagentaCandle),
  defaulty(MinecraftBlockTypes.MangroveDoor),
  defaulty(MinecraftBlockTypes.MangroveHangingSign),
  defaulty(MinecraftBlockTypes.MangrovePropagule),
  defaulty(MinecraftBlockTypes.MediumAmethystBud),
  defaulty(MinecraftBlockTypes.NetherSprouts),
  defaulty(MinecraftBlockTypes.NetherWart),
  defaulty(MinecraftBlockTypes.OakHangingSign),
  defaulty(MinecraftBlockTypes.OakSapling),
  defaulty(MinecraftBlockTypes.OpenEyeblossom),
  defaulty(MinecraftBlockTypes.OrangeCandle),
  defaulty(MinecraftBlockTypes.OrangeTulip),
  defaulty(MinecraftBlockTypes.OxeyeDaisy),
  defaulty(MinecraftBlockTypes.OxidizedCopperDoor),
  defaulty(MinecraftBlockTypes.PaleHangingMoss),
  defaulty(MinecraftBlockTypes.PaleOakDoor),
  defaulty(MinecraftBlockTypes.PaleOakHangingSign),
  defaulty(MinecraftBlockTypes.PaleOakSapling),
  defaulty(MinecraftBlockTypes.Peony),
  defaulty(MinecraftBlockTypes.PinkCandle),
  defaulty(MinecraftBlockTypes.PinkPetals),
  defaulty(MinecraftBlockTypes.PinkTulip),
  defaulty(MinecraftBlockTypes.PitcherPlant),
  defaulty(MinecraftBlockTypes.Poppy),
  defaulty(MinecraftBlockTypes.PurpleCandle),
  defaulty(MinecraftBlockTypes.Rail),
  defaulty(MinecraftBlockTypes.RedCandle),
  defaulty(MinecraftBlockTypes.RedMushroom),
  defaulty(MinecraftBlockTypes.RedstoneTorch),
  defaulty(MinecraftBlockTypes.RedTulip),
  defaulty(MinecraftBlockTypes.ResinClump),
  defaulty(MinecraftBlockTypes.RoseBush),
  defaulty(MinecraftBlockTypes.SculkVein),
  defaulty(MinecraftBlockTypes.Seagrass),
  defaulty(MinecraftBlockTypes.SeaPickle),
  defaulty(MinecraftBlockTypes.ShortGrass),
  defaulty(MinecraftBlockTypes.SmallAmethystBud),
  defaulty(MinecraftBlockTypes.SnifferEgg),
  defaulty(MinecraftBlockTypes.SoulCampfire),
  defaulty(MinecraftBlockTypes.SoulLantern),
  defaulty(MinecraftBlockTypes.SoulTorch),
  defaulty(MinecraftBlockTypes.SpruceDoor),
  defaulty(MinecraftBlockTypes.SpruceHangingSign),
  defaulty(MinecraftBlockTypes.SpruceSapling),
  defaulty(MinecraftBlockTypes.Sunflower),
  defaulty(MinecraftBlockTypes.TallGrass),
  defaulty(MinecraftBlockTypes.Torch),
  defaulty(MinecraftBlockTypes.Torchflower),
  defaulty(MinecraftBlockTypes.TripwireHook),
  defaulty(MinecraftBlockTypes.TubeCoral),
  defaulty(MinecraftBlockTypes.TubeCoralFan),
  defaulty(MinecraftBlockTypes.TurtleEgg),
  defaulty(MinecraftBlockTypes.TwistingVines),
  defaulty(MinecraftBlockTypes.Vine),
  defaulty(MinecraftBlockTypes.WarpedDoor),
  defaulty(MinecraftBlockTypes.WarpedFungus),
  defaulty(MinecraftBlockTypes.WarpedHangingSign),
  defaulty(MinecraftBlockTypes.WarpedRoots),
  defaulty(MinecraftBlockTypes.Waterlily),
  defaulty(MinecraftBlockTypes.WaxedCopperDoor),
  defaulty(MinecraftBlockTypes.WaxedExposedCopperDoor),
  defaulty(MinecraftBlockTypes.WaxedOxidizedCopperDoor),
  defaulty(MinecraftBlockTypes.WaxedWeatheredCopperDoor),
  defaulty(MinecraftBlockTypes.WeatheredCopperDoor),
  defaulty(MinecraftBlockTypes.Web),
  defaulty(MinecraftBlockTypes.WeepingVines),
  defaulty(MinecraftBlockTypes.Wheat),
  defaulty(MinecraftBlockTypes.WhiteCandle),
  defaulty(MinecraftBlockTypes.WhiteTulip),
  defaulty(MinecraftBlockTypes.WitherRose),
  defaulty(MinecraftBlockTypes.WoodenDoor),
  defaulty(MinecraftBlockTypes.YellowCandle),
  button(MinecraftBlockTypes.AcaciaButton),
  button(MinecraftBlockTypes.BirchButton),
  button(MinecraftBlockTypes.StoneButton),
  button(MinecraftBlockTypes.BambooButton),
  button(MinecraftBlockTypes.CherryButton),
  button(MinecraftBlockTypes.JungleButton),
  button(MinecraftBlockTypes.SpruceButton),
  button(MinecraftBlockTypes.WarpedButton),
  button(MinecraftBlockTypes.WoodenButton),
  button(MinecraftBlockTypes.CrimsonButton),
  button(MinecraftBlockTypes.DarkOakButton),
  button(MinecraftBlockTypes.PaleOakButton),
  button(MinecraftBlockTypes.MangroveButton),
  button(MinecraftBlockTypes.PolishedBlackstoneButton),
  head(MinecraftBlockTypes.CreeperHead),
  head(MinecraftBlockTypes.DragonHead),
  head(MinecraftBlockTypes.PiglinHead),
  head(MinecraftBlockTypes.PlayerHead),
  head(MinecraftBlockTypes.SkeletonSkull),
  head(MinecraftBlockTypes.WitherSkeletonSkull),
  head(MinecraftBlockTypes.ZombieHead),
  wall(MinecraftBlockTypes.AndesiteWall),
  wall(MinecraftBlockTypes.BlackstoneWall),
  wall(MinecraftBlockTypes.BorderBlock),
  wall(MinecraftBlockTypes.BrickWall),
  wall(MinecraftBlockTypes.CobbledDeepslateWall),
  wall(MinecraftBlockTypes.CobblestoneWall),
  wall(MinecraftBlockTypes.DeepslateBrickWall),
  wall(MinecraftBlockTypes.DeepslateTileWall),
  wall(MinecraftBlockTypes.DioriteWall),
  wall(MinecraftBlockTypes.EndStoneBrickWall),
  wall(MinecraftBlockTypes.GraniteWall),
  wall(MinecraftBlockTypes.MossyCobblestoneWall),
  wall(MinecraftBlockTypes.MossyStoneBrickWall),
  wall(MinecraftBlockTypes.MudBrickWall),
  wall(MinecraftBlockTypes.NetherBrickWall),
  wall(MinecraftBlockTypes.PolishedBlackstoneBrickWall),
  wall(MinecraftBlockTypes.PolishedBlackstoneWall),
  wall(MinecraftBlockTypes.PolishedDeepslateWall),
  wall(MinecraftBlockTypes.PolishedTuffWall),
  wall(MinecraftBlockTypes.PrismarineWall),
  wall(MinecraftBlockTypes.RedNetherBrickWall),
  wall(MinecraftBlockTypes.RedSandstoneWall),
  wall(MinecraftBlockTypes.ResinBrickWall),
  wall(MinecraftBlockTypes.SandstoneWall),
  wall(MinecraftBlockTypes.StoneBrickWall),
  wall(MinecraftBlockTypes.TuffBrickWall),
  wall(MinecraftBlockTypes.TuffWall),
  // tools will need to be handled separately
  tool(MinecraftItemTypes.Bamboo),
  tool(MinecraftItemTypes.BlazeRod),
  tool(MinecraftItemTypes.BreezeRod),
  tool(MinecraftItemTypes.Bone),
  tool(MinecraftItemTypes.Stick),
  tool(MinecraftItemTypes.Mace),
  tool(MinecraftItemTypes.FishingRod),
  tool(MinecraftItemTypes.CarrotOnAStick),
  tool(MinecraftItemTypes.WarpedFungusOnAStick),
  tool(MinecraftItemTypes.WoodenSword),
  tool(MinecraftItemTypes.WoodenPickaxe),
  tool(MinecraftItemTypes.WoodenAxe),
  tool(MinecraftItemTypes.WoodenShovel),
  tool(MinecraftItemTypes.WoodenHoe),
  tool(MinecraftItemTypes.StoneSword),
  tool(MinecraftItemTypes.StonePickaxe),
  tool(MinecraftItemTypes.StoneAxe),
  tool(MinecraftItemTypes.StoneShovel),
  tool(MinecraftItemTypes.StoneHoe),
  tool(MinecraftItemTypes.IronSword),
  tool(MinecraftItemTypes.IronPickaxe),
  tool(MinecraftItemTypes.IronAxe),
  tool(MinecraftItemTypes.IronShovel),
  tool(MinecraftItemTypes.IronHoe),
  tool(MinecraftItemTypes.DiamondSword),
  tool(MinecraftItemTypes.DiamondPickaxe),
  tool(MinecraftItemTypes.DiamondAxe),
  tool(MinecraftItemTypes.DiamondShovel),
  tool(MinecraftItemTypes.DiamondHoe),
  tool(MinecraftItemTypes.GoldenSword),
  tool(MinecraftItemTypes.GoldenPickaxe),
  tool(MinecraftItemTypes.GoldenAxe),
  tool(MinecraftItemTypes.GoldenShovel),
  tool(MinecraftItemTypes.GoldenHoe),
  tool(MinecraftItemTypes.NetheriteSword),
  tool(MinecraftItemTypes.NetheritePickaxe),
  tool(MinecraftItemTypes.NetheriteAxe),
  tool(MinecraftItemTypes.NetheriteShovel),
  tool(MinecraftItemTypes.NetheriteHoe),
  tool("ftb_ma:soulium_dagger" /* SouliumDagger */),
  tool("ftb_ma:wand" /* Wand */),
  tool("ftb_ma:wooden_sickle" /* WoodenSickle */),
  tool("ftb_ma:wooden_scythe" /* WoodenScythe */),
  tool("ftb_ma:stone_sickle" /* StoneSickle */),
  tool("ftb_ma:stone_scythe" /* StoneScythe */),
  tool("ftb_ma:iron_sickle" /* IronSickle */),
  tool("ftb_ma:iron_scythe" /* IronScythe */),
  tool("ftb_ma:diamond_sickle" /* DiamondSickle */),
  tool("ftb_ma:diamond_scythe" /* DiamondScythe */),
  tool("ftb_ma:golden_sickle" /* GoldenSickle */),
  tool("ftb_ma:golden_scythe" /* GoldenScythe */),
  tool("ftb_ma:netherite_sickle" /* NetheriteSickle */),
  tool("ftb_ma:netherite_scythe" /* NetheriteScythe */),
  tool("ftb_ma:inferium_sword" /* InferiumSword */),
  tool("ftb_ma:inferium_pickaxe" /* InferiumPickaxe */),
  tool("ftb_ma:inferium_shovel" /* InferiumShovel */),
  tool("ftb_ma:inferium_axe" /* InferiumAxe */),
  tool("ftb_ma:inferium_hoe" /* InferiumHoe */),
  tool("ftb_ma:inferium_sickle" /* InferiumSickle */),
  tool("ftb_ma:inferium_scythe" /* InferiumScythe */),
  tool("ftb_ma:prudentium_sword" /* PrudentiumSword */),
  tool("ftb_ma:prudentium_pickaxe" /* PrudentiumPickaxe */),
  tool("ftb_ma:prudentium_shovel" /* PrudentiumShovel */),
  tool("ftb_ma:prudentium_axe" /* PrudentiumAxe */),
  tool("ftb_ma:prudentium_hoe" /* PrudentiumHoe */),
  tool("ftb_ma:prudentium_sickle" /* PrudentiumSickle */),
  tool("ftb_ma:prudentium_scythe" /* PrudentiumScythe */),
  tool("ftb_ma:tertium_sword" /* TertiumSword */),
  tool("ftb_ma:tertium_pickaxe" /* TertiumPickaxe */),
  tool("ftb_ma:tertium_shovel" /* TertiumShovel */),
  tool("ftb_ma:tertium_axe" /* TertiumAxe */),
  tool("ftb_ma:tertium_hoe" /* TertiumHoe */),
  tool("ftb_ma:tertium_sickle" /* TertiumSickle */),
  tool("ftb_ma:tertium_scythe" /* TertiumScythe */),
  tool("ftb_ma:imperium_sword" /* ImperiumSword */),
  tool("ftb_ma:imperium_pickaxe" /* ImperiumPickaxe */),
  tool("ftb_ma:imperium_shovel" /* ImperiumShovel */),
  tool("ftb_ma:imperium_axe" /* ImperiumAxe */),
  tool("ftb_ma:imperium_hoe" /* ImperiumHoe */),
  tool("ftb_ma:imperium_sickle" /* ImperiumSickle */),
  tool("ftb_ma:imperium_scythe" /* ImperiumScythe */),
  tool("ftb_ma:supremium_sword" /* SupremiumSword */),
  tool("ftb_ma:supremium_pickaxe" /* SupremiumPickaxe */),
  tool("ftb_ma:supremium_shovel" /* SupremiumShovel */),
  tool("ftb_ma:supremium_axe" /* SupremiumAxe */),
  tool("ftb_ma:supremium_hoe" /* SupremiumHoe */),
  tool("ftb_ma:supremium_sickle" /* SupremiumSickle */),
  tool("ftb_ma:supremium_scythe" /* SupremiumScythe */),
  tool("ftb_ma:awakened_supremium_sword" /* AwakenedSupremiumSword */),
  tool("ftb_ma:awakened_supremium_pickaxe" /* AwakenedSupremiumPickaxe */),
  tool("ftb_ma:awakened_supremium_shovel" /* AwakenedSupremiumShovel */),
  tool("ftb_ma:awakened_supremium_axe" /* AwakenedSupremiumAxe */),
  tool("ftb_ma:awakened_supremium_hoe" /* AwakenedSupremiumHoe */),
  tool("ftb_ma:awakened_supremium_sickle" /* AwakenedSupremiumSickle */),
  tool("ftb_ma:awakened_supremium_scythe" /* AwakenedSupremiumScythe */)
]);
function getItemDisplayType(stack) {
  return LOOKUP.get(stack.typeId) ?? "default" /* Default */;
}

// scripts/functions/pedestals.ts
var PedestalContext = class {
  constructor(block2, player, displayEntity) {
    this.block = block2;
    this.player = player;
    this.displayEntity = displayEntity;
  }
};
function addItemToPedestal(context, stack) {
  context.displayEntity.setProperty("ftb_ma:item_display_type" /* ItemDisplayType */, getItemDisplayType(stack));
  system4.runTimeout(() => {
    setMainhandItemDisplayItem(context.displayEntity, 0, cloneWithCount(stack, 1));
    context.block.dimension.playSound("armor.equip_generic", context.block.location);
    shrinkMainhandItem(context.player, stack, 1);
  }, 1);
}
function removeItemFromPedestal(context) {
  const item = getMainhandItemDisplayItem(context.displayEntity);
  if (item) {
    const dimension = context.block.dimension;
    const remaining = addItemToInventory(context.player, item);
    if (remaining) {
      dimension.spawnItem(remaining, context.displayEntity.location);
    }
    setMainhandItemDisplayItem(context.displayEntity, 0, void 0);
    dimension.playSound("random.pop", context.displayEntity.location);
  }
}
function handlePedestalDestroyed(block2, name) {
  const dimension = block2.dimension;
  const entity = getEntityAtLocation(dimension, block2.center(), "ftb_ma:pedestal" /* Pedestal */);
  if (entity) {
    const item = getMainhandItemDisplayItem(entity);
    if (item) {
      dimension.spawnItem(item, entity.location);
    }
    entity.remove();
  } else {
    console.error(`Failed to remove entity for ${name} at location`, JSON.stringify(block2.center()));
  }
}

// scripts/functions/tinkering-table.ts
import { ItemStack as ItemStack14, system as system8 } from "@minecraft/server";

// scripts/functions/augments.ts
import {
  EntityComponentTypes as EntityComponentTypes3,
  EquipmentSlot as EquipmentSlot2,
  world as world4
} from "@minecraft/server";

// scripts/functions/tinkerable.ts
function isTinkerable(stack) {
  return TINKERABLE_ITEM_MAP.has(stack.typeId);
}
function getTinkerable(stack) {
  return TINKERABLE_ITEM_MAP.get(stack.typeId);
}

// scripts/functions/tooltips.ts
import { system as system5, world as world3 } from "@minecraft/server";
var TINKERABLE_TOOLTIP_UPDATED_KEY = "Tinkerable-Tooltip-Updated";
var TINKERABLE_TOOLTIP_UPDATED_VERSION = 2;
var AUGMENT_SLOT_PREFIX = "\xA7r\xA77-";
var AUGMENT_SLOT_TEXT_EMPTY = getAugmentSlotText("Empty");
function getAugmentSlotText(name) {
  return `${AUGMENT_SLOT_PREFIX} ${name}`;
}
function handleTooltipTick() {
  const players = world3.getAllPlayers();
  for (const player of players) {
    const inventory = getEntityInventory(player);
    if (!inventory) {
      continue;
    }
    for (let i = 0; i < inventory.size; i++) {
      const stack = inventory.getItem(i);
      if (!stack) {
        continue;
      }
      if (isTinkerable(stack) && !hasCorrectTinkerableTooltip(stack)) {
        const tinkerable = getTinkerable(stack);
        if (!tinkerable) {
          continue;
        }
        system5.run(() => {
          const lore = ["\xA7r\xA77-------------"];
          for (let i2 = 0; i2 < tinkerable.slots; i2++) {
            const augment = getAugment(stack, i2);
            if (augment) {
              lore.push(getAugmentSlotText(augment.displayName));
            } else {
              lore.push(AUGMENT_SLOT_TEXT_EMPTY);
            }
          }
          stack.setLore(lore);
          stack.setDynamicProperty(TINKERABLE_TOOLTIP_UPDATED_KEY, TINKERABLE_TOOLTIP_UPDATED_VERSION);
          inventory.setItem(i, stack);
        });
      }
    }
  }
}
function hasCorrectTinkerableTooltip(stack) {
  return stack.getDynamicProperty(TINKERABLE_TOOLTIP_UPDATED_KEY) === TINKERABLE_TOOLTIP_UPDATED_VERSION;
}

// scripts/data/augments.ts
import { BlockVolume, Direction as Direction2, system as system7 } from "@minecraft/server";

// scripts/functions/tools.ts
import { system as system6 } from "@minecraft/server";
var SHOVELS = [
  "ftb_ma:inferium_shovel" /* InferiumShovel */,
  "ftb_ma:prudentium_shovel" /* PrudentiumShovel */,
  "ftb_ma:tertium_shovel" /* TertiumShovel */,
  "ftb_ma:imperium_shovel" /* ImperiumShovel */,
  "ftb_ma:supremium_shovel" /* SupremiumShovel */,
  "ftb_ma:awakened_supremium_shovel" /* AwakenedSupremiumShovel */
];
var SHOVELS_SET = new Set(SHOVELS);
var AXES = [
  "ftb_ma:inferium_axe" /* InferiumAxe */,
  "ftb_ma:prudentium_axe" /* PrudentiumAxe */,
  "ftb_ma:tertium_axe" /* TertiumAxe */,
  "ftb_ma:imperium_axe" /* ImperiumAxe */,
  "ftb_ma:supremium_axe" /* SupremiumAxe */,
  "ftb_ma:awakened_supremium_axe" /* AwakenedSupremiumAxe */
];
var AXES_SET = new Set(AXES);
var AXE_STRIPPING_OVERRIDES = /* @__PURE__ */ new Map([
  [MinecraftBlockTypes.OakLog, { result: MinecraftBlockTypes.StrippedOakLog, sound: "use.wood" }],
  [MinecraftBlockTypes.SpruceLog, { result: MinecraftBlockTypes.StrippedSpruceLog, sound: "use.wood" }],
  [MinecraftBlockTypes.BirchLog, { result: MinecraftBlockTypes.StrippedBirchLog, sound: "use.wood" }],
  [MinecraftBlockTypes.JungleLog, { result: MinecraftBlockTypes.StrippedJungleLog, sound: "use.wood" }],
  [MinecraftBlockTypes.AcaciaLog, { result: MinecraftBlockTypes.StrippedAcaciaLog, sound: "use.wood" }],
  [MinecraftBlockTypes.DarkOakLog, { result: MinecraftBlockTypes.StrippedDarkOakLog, sound: "use.wood" }],
  [MinecraftBlockTypes.MangroveLog, { result: MinecraftBlockTypes.StrippedMangroveLog, sound: "use.wood" }],
  [MinecraftBlockTypes.CherryLog, { result: MinecraftBlockTypes.StrippedCherryLog, sound: "step.cherry_wood" }],
  [MinecraftBlockTypes.PaleOakLog, { result: MinecraftBlockTypes.StrippedPaleOakLog, sound: "use.wood" }],
  [MinecraftBlockTypes.CrimsonStem, { result: MinecraftBlockTypes.StrippedCrimsonStem, sound: "use.stem" }],
  [MinecraftBlockTypes.WarpedStem, { result: MinecraftBlockTypes.StrippedWarpedStem, sound: "use.stem" }],
  [MinecraftBlockTypes.OakWood, { result: MinecraftBlockTypes.StrippedOakWood, sound: "use.wood" }],
  [MinecraftBlockTypes.SpruceWood, { result: MinecraftBlockTypes.StrippedSpruceWood, sound: "use.wood" }],
  [MinecraftBlockTypes.BirchWood, { result: MinecraftBlockTypes.StrippedBirchWood, sound: "use.wood" }],
  [MinecraftBlockTypes.JungleWood, { result: MinecraftBlockTypes.StrippedJungleWood, sound: "use.wood" }],
  [MinecraftBlockTypes.AcaciaWood, { result: MinecraftBlockTypes.StrippedAcaciaWood, sound: "use.wood" }],
  [MinecraftBlockTypes.DarkOakWood, { result: MinecraftBlockTypes.StrippedDarkOakWood, sound: "use.wood" }],
  [MinecraftBlockTypes.MangroveWood, { result: MinecraftBlockTypes.StrippedMangroveWood, sound: "use.wood" }],
  [MinecraftBlockTypes.CherryWood, { result: MinecraftBlockTypes.StrippedCherryWood, sound: "step.cherry_wood" }],
  [MinecraftBlockTypes.PaleOakWood, { result: MinecraftBlockTypes.StrippedPaleOakWood, sound: "use.wood" }],
  [MinecraftBlockTypes.CrimsonHyphae, { result: MinecraftBlockTypes.StrippedCrimsonHyphae, sound: "use.stem" }],
  [MinecraftBlockTypes.WarpedHyphae, { result: MinecraftBlockTypes.StrippedWarpedHyphae, sound: "use.stem" }],
  [MinecraftBlockTypes.BambooBlock, { result: MinecraftBlockTypes.StrippedBambooBlock, sound: "use.stem" }]
]);
var HOES = [
  "ftb_ma:inferium_hoe" /* InferiumHoe */,
  "ftb_ma:prudentium_hoe" /* PrudentiumHoe */,
  "ftb_ma:tertium_hoe" /* TertiumHoe */,
  "ftb_ma:imperium_hoe" /* ImperiumHoe */,
  "ftb_ma:supremium_hoe" /* SupremiumHoe */,
  "ftb_ma:awakened_supremium_hoe" /* AwakenedSupremiumHoe */
];
var HOES_SET = new Set(HOES);
function getToolDestructibleTag(stack) {
  if (stack.hasTag("minecraft:is_pickaxe")) {
    return "minecraft:is_pickaxe_item_destructible" /* Pickaxe */;
  }
  if (stack.hasTag("minecraft:is_axe")) {
    return "minecraft:is_axe_item_destructible" /* Axe */;
  }
  if (stack.hasTag("minecraft:is_shovel")) {
    return "minecraft:is_shovel_item_destructible" /* Shovel */;
  }
  if (stack.hasTag("minecraft:is_sword")) {
    return "minecraft:is_sword_item_destructible" /* Sword */;
  }
  if (stack.hasTag("minecraft:is_hoe")) {
    return "minecraft:is_hoe_item_destructible" /* Hoe */;
  }
  if (stack.hasTag("minecraft:is_shears")) {
    return "minecraft:is_shears_item_destructible" /* Shears */;
  }
  return void 0;
}
var TOOL_DESTRUCTIBLE_TAGS = new Set(Object.values(ToolDestructibleTags));
function hasToolDestructibleTag(block2) {
  return block2.getTags().some((t) => TOOL_DESTRUCTIBLE_TAGS.has(t));
}
function isDestructibleBlockWithoutTag(block2) {
  return SHEAR_DESTRUCTIBLE_BLOCKS.includes(block2.type.id);
}
function till(block2) {
  const above = block2.above();
  if (!above || above.isAir) {
    if (block2.typeId === MinecraftBlockTypes.GrassBlock || block2.typeId === MinecraftBlockTypes.GrassPath || block2.typeId === MinecraftBlockTypes.Dirt) {
      block2.setType(MinecraftBlockTypes.Farmland);
      block2.dimension.playSound("use.gravel", block2.location);
      return true;
    }
    if (block2.typeId === MinecraftBlockTypes.CoarseDirt) {
      block2.setType(MinecraftBlockTypes.Dirt);
      block2.dimension.playSound("use.gravel", block2.location);
      return true;
    }
  }
  return false;
}
function pathify(block2) {
  const above = block2.above();
  if (!above || above.isAir) {
    if (block2.typeId === MinecraftBlockTypes.GrassBlock || block2.typeId === MinecraftBlockTypes.Dirt || block2.typeId === MinecraftBlockTypes.Podzol || block2.typeId === MinecraftBlockTypes.CoarseDirt || block2.typeId === MinecraftBlockTypes.Mycelium || block2.typeId === MinecraftBlockTypes.DirtWithRoots) {
      block2.setType(MinecraftBlockTypes.GrassPath);
      block2.dimension.playSound("use.grass", block2.location);
      return true;
    }
  }
  return false;
}
function strip(block2) {
  const override = AXE_STRIPPING_OVERRIDES.get(block2.typeId);
  if (override) {
    const permutation = block2.permutation;
    block2.setType(override.result);
    for (const [key2, value] of Object.entries(permutation.getAllStates())) {
      if (block2.permutation.getState(key2)) {
        block2.setPermutation(block2.permutation.withState(key2, value));
      }
    }
    block2.dimension.playSound(override.sound, block2.location);
    return true;
  }
  return false;
}
function handleToolInteraction(block2, player, stack) {
  if (!stack) {
    return false;
  }
  if (SHOVELS_SET.has(stack.typeId)) {
    handleShovelInteraction(block2, player, stack);
    return true;
  }
  if (AXES_SET.has(stack.typeId)) {
    return handleAxeInteraction(block2, player, stack);
  }
  if (HOES_SET.has(stack.typeId)) {
    handleHoeInteraction(block2, player, stack);
    return true;
  }
  return false;
}
function handleShovelInteraction(block2, player, stack) {
  system6.run(() => {
    if (pathify(block2)) {
      if (!isCreativeMode(player)) {
        const result = damageMainhandItem(stack, player, 1);
        if (!result) {
          block2.dimension.playSound("random.break", player.location);
          return;
        }
      }
    }
  });
}
function handleAxeInteraction(block2, player, stack) {
  if (AXE_STRIPPING_OVERRIDES.has(block2.typeId)) {
    system6.run(() => {
      if (strip(block2)) {
        if (!isCreativeMode(player)) {
          const result = damageMainhandItem(stack, player, 1);
          if (!result) {
            block2.dimension.playSound("random.break", player.location);
            return;
          }
        }
      }
    });
    return true;
  }
  return false;
}
function handleHoeInteraction(block2, player, stack) {
  system6.run(() => {
    if (till(block2)) {
      if (!isCreativeMode(player)) {
        const result = damageMainhandItem(stack, player, 1);
        if (!result) {
          block2.dimension.playSound("random.break", player.location);
          return;
        }
      }
    }
  });
}

// scripts/data/augments.ts
var Augment = class {
  /**
   * Defines the behavior and associations of an augment
   * @param displayName the name of this augment for display in tooltips
   * @param item the item associated with this augment
   */
  constructor(displayName, item) {
    this.displayName = displayName;
    this.item = item;
    this.tier = 0;
    this.tinkerableTypes = [];
    const internal = AUGMENT_ITEM_MAP.get(this.item);
    if (!internal) {
      console.error(`Augment with invalid item ${this.item}`);
      return;
    }
    this.tier = internal.tier;
    this.tinkerableTypes = internal.tinkerableTypes;
  }
  canApplyTo(stack) {
    const tinkerable = getTinkerable(stack);
    if (!tinkerable) {
      return false;
    }
    if (tinkerable.tier < this.tier || !this.tinkerableTypes.includes(tinkerable.type)) {
      return false;
    }
    return !getAugments(stack).some((a) => a === this);
  }
  /**
   * Called on tick for worn armor
   * @param player the player
   */
  onArmorTick(player) {
  }
  /**
   * Called before a tinkerable breaks a block
   * @param block the block to break
   * @param player the player
   * @param stack the tinkerable
   */
  beforeOnPlayerBreakBlock(block2, player, stack) {
  }
  /**
   * Called after the player interacts with a block
   *
   * We can't use onUseOn due to it not firing if the item already does something when right clicking a block for whatever reason...
   *
   * @param block the block
   * @param blockFace the face that was interacted with
   * @param faceLocation the location of the interaction
   * @param player the player
   * @param stack the tinkerable
   */
  onPlayerInteractWithBlock(block2, blockFace, faceLocation, player, stack) {
  }
  /**
   * Called when hitting an entity with the tinkerable
   * @param hitEntity the entity that got hit
   * @param attackingEntity the entity using the tinkerable
   * @param stack the tinkerable
   */
  onHitEntity(hitEntity, attackingEntity, stack) {
  }
  /**
   * Called when right clicking with the tinkerable
   * @param entity the entity using the tinkerable
   * @param stack the tinkerable
   */
  onUse(entity, stack) {
  }
};
var AddEffectAugment = class extends Augment {
  constructor(displayName, item, effect, amplifier, duration = 20) {
    super(displayName, item);
    this.effect = effect;
    this.amplifier = amplifier;
    this.duration = duration;
  }
  onArmorTick(player) {
    player.addEffect(this.effect, this.duration, { amplifier: this.amplifier, showParticles: false });
  }
};
var RemoveEffectAugment = class extends Augment {
  constructor(displayName, item, effect) {
    super(displayName, item);
    this.effect = effect;
  }
  onArmorTick(player) {
    player.removeEffect(this.effect);
  }
};
var AbsorptionAugment = class extends Augment {
  constructor(displayName, item, amplifier) {
    super(displayName, item);
    this.amplifier = amplifier;
  }
  onArmorTick(player) {
    if (!player.getEffect(MinecraftEffectTypes.Absorption)) {
      player.addEffect(MinecraftEffectTypes.Absorption, 9600, { amplifier: this.amplifier, showParticles: false });
    }
  }
};
var StrengthAugment = class extends Augment {
  constructor(displayName, item, amplifier) {
    super(displayName, item);
    this.amplifier = amplifier;
  }
  onHitEntity(hitEntity, attackingEntity, stack) {
    hitEntity.applyDamage(5 * this.amplifier);
  }
};
var MiningAOEAugment = class extends Augment {
  constructor(displayName, item, radius) {
    super(displayName, item);
    this.radius = radius;
  }
  beforeOnPlayerBreakBlock(block2, player, stack) {
    if (player.isSneaking) {
      return;
    }
    const hitResult = player.getBlockFromViewDirection();
    if (!hitResult) {
      return;
    }
    let xRange = this.radius;
    let yRange = this.radius;
    let zRange = 0;
    const side = hitResult.face;
    if (side === Direction2.Down || side === Direction2.Up) {
      zRange = this.radius;
      yRange = 0;
    }
    if (side === Direction2.East || side === Direction2.West) {
      xRange = 0;
      zRange = this.radius;
    }
    const toolDestructibleTag = getToolDestructibleTag(stack);
    if (!toolDestructibleTag) {
      console.error("Tinkerable does not have tool destructible tag", stack.typeId);
      return;
    }
    if (this.radius > 0 && block2.hasTag(toolDestructibleTag)) {
      system7.run(() => {
        const offset = { x: xRange, y: yRange, z: zRange };
        const volume = new BlockVolume(
          Vector3Utils.subtract(block2.location, offset),
          Vector3Utils.add(block2.location, offset)
        );
        const dimension = block2.dimension;
        const blocks = dimension.getBlocks(volume, {
          includeTags: [toolDestructibleTag]
        });
        blocks.remove([block2.location]);
        for (const aoeLocation of blocks.getBlockLocationIterator()) {
          const aoeBlock = dimension.getBlock(aoeLocation);
          if (aoeBlock && aoeBlock.hasTag(toolDestructibleTag)) {
            breakBlock(aoeLocation, player);
            const result = damageItem(stack, 1);
            setMainhandItem(player, result);
            if (!result) {
              return;
            }
          }
        }
      });
    }
  }
};
var TillingAOEAugment = class extends Augment {
  constructor(displayName, item, radius) {
    super(displayName, item);
    this.radius = radius;
  }
  onPlayerInteractWithBlock(block2, blockFace, faceLocation, player, stack) {
    if (player.isSneaking) {
      return;
    }
    const offset = { x: this.radius, y: 0, z: this.radius };
    const volume = new BlockVolume(
      Vector3Utils.subtract(block2.location, offset),
      Vector3Utils.add(block2.location, offset)
    );
    const dimension = block2.dimension;
    const blocks = dimension.getBlocks(volume, {});
    blocks.remove([block2.location]);
    for (const aoeLocation of blocks.getBlockLocationIterator()) {
      const aoeBlock = dimension.getBlock(aoeLocation);
      if (aoeBlock && till(aoeBlock)) {
        const result = damageItem(stack, 1);
        setMainhandItem(player, result);
        if (!result) {
          return;
        }
      }
    }
  }
};
var PathingAOEAugment = class extends Augment {
  constructor(displayName, item, radius) {
    super(displayName, item);
    this.radius = radius;
  }
  onPlayerInteractWithBlock(block2, blockFace, faceLocation, player, stack) {
    if (player.isSneaking) {
      return;
    }
    const offset = { x: this.radius, y: 0, z: this.radius };
    const volume = new BlockVolume(
      Vector3Utils.subtract(block2.location, offset),
      Vector3Utils.add(block2.location, offset)
    );
    const dimension = block2.dimension;
    const blocks = dimension.getBlocks(volume, {});
    blocks.remove([block2.location]);
    for (const aoeLocation of blocks.getBlockLocationIterator()) {
      const aoeBlock = dimension.getBlock(aoeLocation);
      if (aoeBlock && pathify(aoeBlock)) {
        const result = damageItem(stack, 1);
        setMainhandItem(player, result);
        if (!result) {
          return;
        }
      }
    }
  }
};
var AttackAOEAugment = class extends Augment {
  constructor(displayName, item, amplifier) {
    super(displayName, item);
    this.amplifier = amplifier;
  }
  onHitEntity(hitEntity, attackingEntity, stack) {
    const dimension = hitEntity.dimension;
    const range = 1.5 * this.amplifier;
    const entities = dimension.getEntities({
      location: hitEntity.location,
      families: ["mob"],
      maxDistance: range
    });
    const damage = 5 * (5 * this.amplifier);
    for (const entity of entities) {
      if (entity === hitEntity) {
        continue;
      }
      entity.applyDamage(damage);
    }
  }
};
var AugmentRegistry = class _AugmentRegistry {
  /* prettier-ignore */
  constructor() {
    this.augments = /* @__PURE__ */ new Map();
    this.register(
      // tier 1
      new AbsorptionAugment("Absorption I", "ftb_ma:absorption_i_augment" /* AbsorptionIAugment */, 0),
      new AddEffectAugment("Health Boost I", "ftb_ma:health_boost_i_augment" /* HealthBoostIAugment */, MinecraftEffectTypes.HealthBoost, 0),
      new PathingAOEAugment("Pathing AOE I", "ftb_ma:pathing_aoe_i_augment" /* PathingAoeIAugment */, 1),
      new RemoveEffectAugment("Nausea Resistance", "ftb_ma:nausea_resistance_augment" /* NauseaResistanceAugment */, MinecraftEffectTypes.Nausea),
      // tier 2
      new AddEffectAugment("Health Boost II", "ftb_ma:health_boost_ii_augment" /* HealthBoostIiAugment */, MinecraftEffectTypes.HealthBoost, 1),
      new AddEffectAugment("Night Vision", "ftb_ma:night_vision_augment" /* NightVisionAugment */, MinecraftEffectTypes.NightVision, 0, 240),
      new AddEffectAugment("Water Breathing", "ftb_ma:water_breathing_augment" /* WaterBreathingAugment */, MinecraftEffectTypes.WaterBreathing, 0),
      new AddEffectAugment("Jump Boost I", "ftb_ma:jump_boost_i_augment" /* JumpBoostIAugment */, MinecraftEffectTypes.JumpBoost, 0),
      new MiningAOEAugment("Mining AOE I", "ftb_ma:mining_aoe_i_augment" /* MiningAoeIAugment */, 1),
      new TillingAOEAugment("Tilling AOE I", "ftb_ma:tilling_aoe_i_augment" /* TillingAoeIAugment */, 1),
      new PathingAOEAugment("Pathing AOE II", "ftb_ma:pathing_aoe_ii_augment" /* PathingAoeIiAugment */, 2),
      new RemoveEffectAugment("Blindness Resistance", "ftb_ma:blindness_resistance_augment" /* BlindnessResistanceAugment */, MinecraftEffectTypes.Blindness),
      // tier 3
      new AbsorptionAugment("Absorption II", "ftb_ma:absorption_ii_augment" /* AbsorptionIiAugment */, 1),
      new AddEffectAugment("Fire Resistance", "ftb_ma:fire_resistance_augment" /* FireResistanceAugment */, MinecraftEffectTypes.FireResistance, 0),
      new AddEffectAugment("Jump Boost II", "ftb_ma:jump_boost_ii_augment" /* JumpBoostIiAugment */, MinecraftEffectTypes.JumpBoost, 1),
      new AddEffectAugment("Health Boost III", "ftb_ma:health_boost_iii_augment" /* HealthBoostIiiAugment */, MinecraftEffectTypes.HealthBoost, 2),
      new StrengthAugment("Strength I", "ftb_ma:strength_i_augment" /* StrengthIAugment */, 1),
      new AddEffectAugment("Speed I", "ftb_ma:speed_i_augment" /* SpeedIAugment */, MinecraftEffectTypes.Speed, 0),
      new AddEffectAugment("Haste I", "ftb_ma:haste_i_augment" /* HasteIAugment */, MinecraftEffectTypes.Haste, 0),
      new AddEffectAugment("Slow Falling", "ftb_ma:slow_falling_augment" /* SlowFallingAugment */, MinecraftEffectTypes.SlowFalling, 0),
      new MiningAOEAugment("Mining AOE II", "ftb_ma:mining_aoe_ii_augment" /* MiningAoeIiAugment */, 2),
      new AttackAOEAugment("Attack AOE I", "ftb_ma:attack_aoe_i_augment" /* AttackAoeIAugment */, 1),
      new TillingAOEAugment("Tilling AOE II", "ftb_ma:tilling_aoe_ii_augment" /* TillingAoeIiAugment */, 2),
      new PathingAOEAugment("Pathing AOE III", "ftb_ma:pathing_aoe_iii_augment" /* PathingAoeIiiAugment */, 3),
      new RemoveEffectAugment("Weakness Resistance", "ftb_ma:weakness_resistance_augment" /* WeaknessResistanceAugment */, MinecraftEffectTypes.Weakness),
      new RemoveEffectAugment("Slowness Resistance", "ftb_ma:slowness_resistance_augment" /* SlownessResistanceAugment */, MinecraftEffectTypes.Slowness),
      // tier 4
      new RemoveEffectAugment("Poison Resistance", "ftb_ma:poison_resistance_augment" /* PoisonResistanceAugment */, MinecraftEffectTypes.Poison),
      new AddEffectAugment("Jump Boost III", "ftb_ma:jump_boost_iii_augment" /* JumpBoostIiiAugment */, MinecraftEffectTypes.JumpBoost, 2),
      new AddEffectAugment("Health Boost IV", "ftb_ma:health_boost_iv_augment" /* HealthBoostIvAugment */, MinecraftEffectTypes.HealthBoost, 3),
      new StrengthAugment("Strength II", "ftb_ma:strength_ii_augment" /* StrengthIiAugment */, 2),
      new AddEffectAugment("Speed II", "ftb_ma:speed_ii_augment" /* SpeedIiAugment */, MinecraftEffectTypes.Speed, 1),
      new AddEffectAugment("Haste II", "ftb_ma:haste_ii_augment" /* HasteIiAugment */, MinecraftEffectTypes.Haste, 1),
      new MiningAOEAugment("Mining AOE III", "ftb_ma:mining_aoe_iii_augment" /* MiningAoeIiiAugment */, 3),
      new AttackAOEAugment("Attack AOE II", "ftb_ma:attack_aoe_ii_augment" /* AttackAoeIiAugment */, 2),
      new TillingAOEAugment("Tilling AOE III", "ftb_ma:tilling_aoe_iii_augment" /* TillingAoeIiiAugment */, 3),
      new PathingAOEAugment("Pathing AOE IV", "ftb_ma:pathing_aoe_iv_augment" /* PathingAoeIvAugment */, 4),
      new RemoveEffectAugment("Mining Fatigue Resistance", "ftb_ma:mining_fatigue_resistance_augment" /* MiningFatigueResistanceAugment */, MinecraftEffectTypes.MiningFatigue),
      new RemoveEffectAugment("Hunger Resistance", "ftb_ma:hunger_resistance_augment" /* HungerResistanceAugment */, MinecraftEffectTypes.Hunger),
      // tier 5
      new AbsorptionAugment("Absorption III", "ftb_ma:absorption_iii_augment" /* AbsorptionIiiAugment */, 2),
      new AddEffectAugment("Health Boost V", "ftb_ma:health_boost_v_augment" /* HealthBoostVAugment */, MinecraftEffectTypes.HealthBoost, 4),
      new RemoveEffectAugment("Wither Resistance", "ftb_ma:wither_resistance_augment" /* WitherResistanceAugment */, MinecraftEffectTypes.Wither),
      new StrengthAugment("Strength III", "ftb_ma:strength_iii_augment" /* StrengthIiiAugment */, 4),
      new AddEffectAugment("Speed III", "ftb_ma:speed_iii_augment" /* SpeedIiiAugment */, MinecraftEffectTypes.Speed, 2),
      new AddEffectAugment("Haste III", "ftb_ma:haste_iii_augment" /* HasteIiiAugment */, MinecraftEffectTypes.Haste, 2),
      new MiningAOEAugment("Mining AOE IV", "ftb_ma:mining_aoe_iv_augment" /* MiningAoeIvAugment */, 4),
      new AttackAOEAugment("Attack AOE III", "ftb_ma:attack_aoe_iii_augment" /* AttackAoeIiiAugment */, 3),
      new TillingAOEAugment("Tilling AOE IV", "ftb_ma:tilling_aoe_iv_augment" /* TillingAoeIvAugment */, 4)
    );
  }
  static {
    this.Instance = new _AugmentRegistry();
  }
  getAugmentForItem(item) {
    return this.augments.get(item);
  }
  register(...augments) {
    for (const augment of augments) {
      this.augments.set(augment.item, augment);
    }
  }
};

// scripts/functions/augments.ts
var key = (index) => `Augment-${index}`;
function getAugment(stack, index) {
  const item = stack.getDynamicProperty(key(index));
  if (!item) {
    return void 0;
  }
  if (typeof item !== "string") {
    console.warn("Augment property was not a string");
    return void 0;
  }
  return getAugmentForItem(item);
}
function getAugments(stack) {
  const augments = [];
  const tinkerable = getTinkerable(stack);
  if (!tinkerable) {
    return augments;
  }
  for (let i = 0; i < tinkerable.slots; i++) {
    const augment = getAugment(stack, i);
    if (augment) {
      augments.push(augment);
    }
  }
  return augments;
}
function getAugmentForItem(item) {
  return AugmentRegistry.Instance.getAugmentForItem(item);
}
function isAugmentItem(item) {
  return !!getAugmentForItem(item);
}
function setAugment(stack, index, item) {
  const tinkerable = getTinkerable(stack);
  if (!tinkerable) {
    console.warn("Failed to add augment to non-tinkerable item", stack.typeId);
    return false;
  }
  if (index > tinkerable.slots) {
    console.error("Failed to add augment to out of bounds index", index);
    return false;
  }
  const augment = getAugmentForItem(item);
  if (!augment) {
    console.error("Invalid augment item provided", item);
    return false;
  }
  stack.setDynamicProperty(key(index), item);
  refreshAugmentSlotTooltips(stack);
  return true;
}
function removeAugment(stack, index) {
  const tinkerable = getTinkerable(stack);
  if (!tinkerable) {
    console.warn("Failed to remove augment from non-tinkerable item", stack.typeId);
    return void 0;
  }
  if (index > tinkerable.slots) {
    console.error("Failed to remove augment from out of bounds index", index);
    return void 0;
  }
  const augment = getAugment(stack, index);
  if (augment) {
    stack.setDynamicProperty(key(index));
    refreshAugmentSlotTooltips(stack);
    return augment;
  }
  return void 0;
}
function handleAugmentsTick() {
  const players = world4.getAllPlayers();
  for (const player of players) {
    const augments = getArmorAugments(player);
    for (const augment of augments) {
      augment.onArmorTick(player);
    }
  }
}
function handleAugmentsBeforePlayerBreakBlock(block2, player, stack) {
  if (!stack) {
    return;
  }
  const augments = getAugments(stack);
  for (const augment of augments) {
    augment.beforeOnPlayerBreakBlock(block2, player, stack);
  }
}
function handleAugmentsPlayerInteractWithBlock(block2, blockFace, faceLocation, player, stack) {
  if (!stack) {
    return;
  }
  const augments = getAugments(stack);
  for (const augment of augments) {
    augment.onPlayerInteractWithBlock(block2, blockFace, faceLocation, player, stack);
  }
}
function getArmorAugments(player) {
  const equipment = player.getComponent(EntityComponentTypes3.Equippable);
  if (!equipment) {
    return [];
  }
  const augments = [
    getAugmentsForEquipmentSlot(equipment, EquipmentSlot2.Head),
    getAugmentsForEquipmentSlot(equipment, EquipmentSlot2.Chest),
    getAugmentsForEquipmentSlot(equipment, EquipmentSlot2.Legs),
    getAugmentsForEquipmentSlot(equipment, EquipmentSlot2.Feet)
  ].flat();
  return augments;
}
function getAugmentsForEquipmentSlot(equipment, slot) {
  const stack = equipment.getEquipment(slot);
  if (!stack) {
    return [];
  }
  return getAugments(stack);
}
function refreshAugmentSlotTooltips(stack) {
  const tinkerable = getTinkerable(stack);
  if (!tinkerable) {
    console.error("Tried refresh augment slot tooltips for non-tinkerable", stack.typeId);
    return;
  }
  const lore = [];
  for (let i = 0; i < tinkerable.slots; i++) {
    const augment = getAugment(stack, i);
    if (augment) {
      lore.push(getAugmentSlotText(augment.displayName));
    } else {
      lore.push(AUGMENT_SLOT_TEXT_EMPTY);
    }
  }
  stack.setLore(lore);
}

// scripts/functions/tinkering-table.ts
var TinkeringTableContext = class {
  constructor(player, block2, tinkerableDisplayEntity, augmentsDisplayEntity) {
    this.player = player;
    this.block = block2;
    this.tinkerableDisplayEntity = tinkerableDisplayEntity;
    this.augmentsDisplayEntity = augmentsDisplayEntity;
  }
};
function addTinkerableItemToTable(context, stack) {
  context.tinkerableDisplayEntity.setProperty("ftb_ma:item_display_type" /* ItemDisplayType */, getItemDisplayType(stack));
  system8.runTimeout(() => {
    setMainhandItemDisplayItem(context.tinkerableDisplayEntity, 0, stack);
    const tinkerable = getTinkerable(stack);
    for (let i = 0; i < tinkerable.slots; i++) {
      loadAugment(stack, i, context.augmentsDisplayEntity);
    }
    context.block.dimension.playSound("armor.equip_generic", context.block.location);
    shrinkMainhandItem(context.player, stack, 1);
  }, 1);
}
function removeTinkerableItemFromTable(context) {
  const augments = context.augmentsDisplayEntity;
  setMainhandItemDisplayItem(augments, 0, void 0);
  setOffhandItemDisplayItem(augments, 1, void 0);
  const item = getMainhandItemDisplayItem(context.tinkerableDisplayEntity);
  if (item) {
    const dimension = context.block.dimension;
    const remaning = addItemToInventory(context.player, item);
    if (remaning) {
      dimension.spawnItem(remaning, context.tinkerableDisplayEntity.location);
    }
    setMainhandItemDisplayItem(context.tinkerableDisplayEntity, 0, void 0);
    dimension.playSound("random.pop", context.tinkerableDisplayEntity.location);
  }
}
function addAugmentItemToTable(context, slot, stack) {
  const item = getMainhandItemDisplayItem(context.tinkerableDisplayEntity);
  if (!item) {
    return false;
  }
  const tinkerable = getTinkerable(item);
  if (!tinkerable) {
    return false;
  }
  if (slot >= tinkerable.slots) {
    return false;
  }
  const augmentInSlot = getAugmentInSlot(slot, context.augmentsDisplayEntity);
  if (!augmentInSlot) {
    const augment = getAugmentForItem(stack.typeId);
    if (!augment) {
      console.error("Augment item does not have associated augment data", stack.typeId);
      return false;
    }
    if (!augment.canApplyTo(item)) {
      return false;
    }
    setAugmentInSlot(cloneWithCount(stack, 1), slot, context.augmentsDisplayEntity);
    shrinkMainhandItem(context.player, stack, 1);
    setAugment(item, slot, augment.item);
    setMainhandItemDisplayItem(context.tinkerableDisplayEntity, 0, item);
    context.block.dimension.playSound("armor.equip_generic", context.block.location);
    return true;
  }
  return false;
}
function removeAugmentFromTable(context, slot) {
  const item = getMainhandItemDisplayItem(context.tinkerableDisplayEntity);
  if (!item) {
    return false;
  }
  const tinkerable = getTinkerable(item);
  if (!tinkerable) {
    return false;
  }
  const augment = getAugmentInSlot(slot, context.augmentsDisplayEntity);
  if (augment) {
    const dimension = context.block.dimension;
    const remaining = addItemToInventory(context.player, augment);
    if (remaining) {
      dimension.spawnItem(remaining, Vector3Utils.add(context.block.location, { x: 0.5, y: 1, z: 0.5 }));
    }
    setAugmentInSlot(void 0, slot, context.augmentsDisplayEntity);
    removeAugment(item, slot);
    setMainhandItemDisplayItem(context.tinkerableDisplayEntity, 0, item);
    dimension.playSound("random.pop", context.block.location);
    return true;
  }
  return false;
}
function getTinkerableDisplayEntity(block2) {
  const entity = getEntityAtLocation(block2.dimension, block2.center(), "ftb_ma:tinkering_table_tinkerable" /* TinkeringTableTinkerable */);
  if (!entity) {
    console.warn("Could not find tinkerable item display entity for table", JSON.stringify(block2.center()));
    return void 0;
  }
  return entity;
}
function getAugmentsDisplayEntity(block2) {
  const entity = getEntityAtLocation(block2.dimension, block2.center(), "ftb_ma:tinkering_table_augments" /* TinkeringTableAugments */);
  if (!entity) {
    console.warn("Could not find augments item display entity for table", JSON.stringify(block2.center()));
    return void 0;
  }
  return entity;
}
function loadAugment(stack, slot, entity) {
  const augment = getAugment(stack, slot);
  if (augment) {
    setAugmentInSlot(new ItemStack14(augment.item), slot, entity);
  }
}
function getAugmentInSlot(slot, entity) {
  switch (slot) {
    case 0:
      return getMainhandItemDisplayItem(entity);
    case 1:
      return getOffhandItemDisplayItem(entity);
    default:
      console.error("Invalid augment slot index", slot);
      return void 0;
  }
}
function setAugmentInSlot(stack, slot, entity) {
  switch (slot) {
    case 0:
      setMainhandItemDisplayItem(entity, 0, stack);
      break;
    case 1:
      setOffhandItemDisplayItem(entity, 1, stack);
      break;
    default:
      console.error("Invalid augment slot index", slot);
      break;
  }
}
function handleTinkeringTableDestroyed(block2) {
  const dimension = block2.dimension;
  const location = block2.center();
  const tinkerable = getEntityAtLocation(dimension, location, "ftb_ma:tinkering_table_tinkerable" /* TinkeringTableTinkerable */);
  if (tinkerable) {
    const item = getMainhandItemDisplayItem(tinkerable);
    if (item) {
      dimension.spawnItem(item, tinkerable.location);
    }
    tinkerable.remove();
  } else {
    console.error("Failed to remove tinkerable display entity for table at", JSON.stringify(location));
  }
  const augments = getEntityAtLocation(dimension, location, "ftb_ma:tinkering_table_augments" /* TinkeringTableAugments */);
  if (augments) {
    augments.remove();
  } else {
    console.error("Failed to remove augments display entity for table at", JSON.stringify(location));
  }
}

// scripts/functions/entities.ts
var BLOCK_ENTITIES = [
  "ftb_ma:awakening_altar" /* AwakeningAltar */,
  "ftb_ma:awakening_pedestal" /* AwakeningPedestal */,
  "ftb_ma:essence_vessel" /* EssenceVessel */,
  "ftb_ma:infusion_altar" /* InfusionAltar */,
  "ftb_ma:infusion_pedestal" /* InfusionPedestal */,
  "ftb_ma:tinkering_table" /* TinkeringTable */,
  "ftb_ma:furnace" /* Furnace */,
  "ftb_ma:harvester" /* Harvester */,
  "ftb_ma:seed_reprocessor" /* SeedReprocessor */,
  "ftb_ma:soul_extractor" /* SoulExtractor */,
  "ftb_ma:soulium_spawner" /* SouliumSpawner */
];
function getMainhandItemDisplayItem(entity) {
  return getItemInInventory(entity, 0);
}
function setMainhandItemDisplayItem(entity, slot, stack) {
  setItemDisplayItem(entity, slot, "slot.weapon.mainhand", stack);
}
function getOffhandItemDisplayItem(entity) {
  return getItemInInventory(entity, 1);
}
function setOffhandItemDisplayItem(entity, slot, stack) {
  setItemDisplayItem(entity, slot, "slot.weapon.offhand", stack);
}
function setItemDisplayItem(entity, slot, hand, stack) {
  if (stack) {
    entity.runCommand(`replaceitem entity @s ${hand} ${slot} ${stack.typeId}`);
    setItemInInventory(entity, slot, stack);
  } else {
    entity.runCommand(`replaceitem entity @s ${hand} ${slot} minecraft:air`);
    setItemInInventory(entity, slot, stack);
  }
}
function getEntityAtLocation(dimension, location, type) {
  const entities = dimension.getEntitiesAtBlockLocation(location);
  for (const entity of entities) {
    if (entity.typeId === type) {
      return entity;
    }
  }
  return void 0;
}
function setItemDisplayRotation(entity, direction) {
  switch (direction) {
    case "north":
      entity.setRotation({ x: 0, y: 180 });
      break;
    case "south":
      entity.setRotation({ x: 0, y: 0 });
      break;
    case "east":
      entity.setRotation({ x: 0, y: -90 });
      break;
    case "west":
      entity.setRotation({ x: 0, y: 90 });
      break;
    default:
      break;
  }
}
function handleBlockEntityDestroyed(block2, destroyedBlockPermutation) {
  const destroyedBlock = destroyedBlockPermutation.type.id;
  switch (destroyedBlock) {
    case "ftb_ma:awakening_altar" /* AwakeningAltar */:
      handleAwakeningAltarDestroyed(block2);
      break;
    case "ftb_ma:awakening_pedestal" /* AwakeningPedestal */:
      handlePedestalDestroyed(block2, "Awakening Pedestal");
      break;
    case "ftb_ma:essence_vessel" /* EssenceVessel */:
      handleEssenceVesselDestroyed(block2);
      break;
    case "ftb_ma:infusion_altar" /* InfusionAltar */:
      handleInfusionAltarDestroyed(block2);
      break;
    case "ftb_ma:infusion_pedestal" /* InfusionPedestal */:
      handlePedestalDestroyed(block2, "Infusion Pedestal");
      break;
    case "ftb_ma:tinkering_table" /* TinkeringTable */:
      handleTinkeringTableDestroyed(block2);
      break;
    case "ftb_ma:furnace" /* Furnace */:
      handleMachineDestroyed(block2, "ftb_ma:furnace" /* Furnace */, "Furnace");
      break;
    case "ftb_ma:harvester" /* Harvester */:
      handleMachineDestroyed(block2, "ftb_ma:harvester" /* Harvester */, "Harvester");
      break;
    case "ftb_ma:seed_reprocessor" /* SeedReprocessor */:
      handleMachineDestroyed(block2, "ftb_ma:seed_reprocessor" /* SeedReprocessor */, "Seed Reprocessor");
      break;
    case "ftb_ma:soul_extractor" /* SoulExtractor */:
      handleMachineDestroyed(block2, "ftb_ma:soul_extractor" /* SoulExtractor */, "Soul Extractor");
      break;
    case "ftb_ma:soulium_spawner" /* SouliumSpawner */:
      handleMachineDestroyed(block2, "ftb_ma:soulium_spawner" /* SouliumSpawner */, "Soulium Spawner");
      break;
    default:
      break;
  }
}
function handleBlockEntityMovedByPiston(block2, piston, isExpanding) {
  const attachedBlocks = piston.getAttachedBlocks();
  if (attachedBlocks.length === 0) {
    return;
  }
  const offset = isExpanding ? Vector3Utils.normalize(Vector3Utils.subtract(attachedBlocks[0], block2.location)) : Vector3Utils.normalize(Vector3Utils.subtract(block2.location, attachedBlocks[0]));
  const dimension = block2.dimension;
  for (const attachedBlock of attachedBlocks) {
    const currentLocation = Vector3Utils.add(attachedBlock.location, offset);
    system9.runTimeout(() => {
      const block3 = dimension.getBlock(currentLocation);
      if (!block3) {
        return;
      }
      if (!BLOCK_ENTITIES.includes(block3.typeId)) {
        return;
      }
      const entities = dimension.getEntities({
        location: block3.location,
        families: ["ftb_ma:block_entity" /* BlockEntity */],
        maxDistance: 1.5
      });
      for (const entity of entities) {
        if (entity) {
          entity.teleport(block3.center(), { checkForBlocks: false, keepVelocity: false });
        }
      }
    }, 2);
  }
}

// scripts/functions/altars.ts
var ALTAR_ACTIVE_KEY = "Altar-Active";
var ALTAR_PROGRESS_KEY = "Altar-Progress";
var ALTAR_RECIPE_KEY = "Altar-Current-Recipe";
var AltarTickHandler = class {
  get active() {
    return !!this.entity.getDynamicProperty(ALTAR_ACTIVE_KEY);
  }
  set active(value) {
    this.entity.setDynamicProperty(ALTAR_ACTIVE_KEY, value);
  }
  get progress() {
    return this.entity.getDynamicProperty(ALTAR_PROGRESS_KEY) ?? 0;
  }
  set progress(value) {
    this.entity.setDynamicProperty(ALTAR_PROGRESS_KEY, value);
  }
  get recipe() {
    return this.entity.getDynamicProperty(ALTAR_RECIPE_KEY);
  }
  set recipe(value) {
    this.entity.setDynamicProperty(ALTAR_RECIPE_KEY, value);
  }
  get ghostPedestalState() {
    return this.entity.getProperty("ftb_ma:altar_ghost_pedestals" /* AltarGhostPedestals */) ?? 0;
  }
  set ghostPedestalState(value) {
    this.entity.setProperty("ftb_ma:altar_ghost_pedestals" /* AltarGhostPedestals */, value);
  }
  isActive() {
    if (!this.active) {
      this.active = (this.block.getRedstonePower() ?? 0) > 0;
    }
    return this.active;
  }
  reset() {
    this.active = false;
    this.progress = 0;
    this.recipe = void 0;
  }
};
function getPedestalItems(block2, locations) {
  const items = [];
  for (const location of locations) {
    const pedestal = getEntityAtLocation(block2.dimension, location, "ftb_ma:pedestal" /* Pedestal */);
    if (!pedestal) {
      continue;
    }
    const item = getMainhandItemDisplayItem(pedestal);
    if (!item) {
      continue;
    }
    items.push(item);
  }
  return items;
}
function handleAwakeningAltarDestroyed(block2) {
  const dimension = block2.dimension;
  const entity = getEntityAtLocation(dimension, block2.center(), "ftb_ma:awakening_altar" /* AwakeningAltar */);
  if (entity) {
    const item = getMainhandItemDisplayItem(entity);
    if (item) {
      dimension.spawnItem(item, entity.location);
    }
    entity.remove();
  } else {
    console.error(`Failed to remove entity for Awakening Altar at location`, JSON.stringify(block2.center()));
  }
}
function setAwakeningAltarActive(block2, active) {
  const altar = getEntityAtLocation(block2.dimension, block2.center(), "ftb_ma:awakening_altar" /* AwakeningAltar */);
  if (altar) {
    altar.setDynamicProperty(ALTAR_ACTIVE_KEY, active);
  }
}
function handleInfusionAltarDestroyed(block2) {
  const dimension = block2.dimension;
  const entity = getEntityAtLocation(dimension, block2.center(), "ftb_ma:infusion_altar" /* InfusionAltar */);
  if (entity) {
    const item = getMainhandItemDisplayItem(entity);
    if (item) {
      dimension.spawnItem(item, entity.location);
    }
    entity.remove();
  } else {
    console.error(`Failed to remove entity for Infusion Altar at location`, JSON.stringify(block2.center()));
  }
}
function setInfusionAltarActive(block2, active) {
  const altar = getEntityAtLocation(block2.dimension, block2.center(), "ftb_ma:infusion_altar" /* InfusionAltar */);
  if (altar) {
    altar.setDynamicProperty(ALTAR_ACTIVE_KEY, active);
  }
}

// scripts/functions/altar/awakening-altar.ts
var PEDESTAL_LOCATION_OFFSETS = [
  { x: 2, y: 0, z: 2 },
  { x: -2, y: 0, z: 2 },
  { x: -2, y: 0, z: -2 },
  { x: 2, y: 0, z: -2 }
];
var ESSENCE_VESSEL_LOCATION_OFFSETS = [
  { x: 3, y: 0, z: 0 },
  { x: 0, y: 0, z: 3 },
  { x: -3, y: 0, z: 0 },
  { x: 0, y: 0, z: -3 }
];
var ALTAR_TICKS_REQUIRED = 100;
var AwakeningAltarTickHandler = class _AwakeningAltarTickHandler extends AltarTickHandler {
  constructor(block2, entity) {
    super();
    this.block = block2;
    this.entity = entity;
    this.pedestals = getPedestalLocations(block2.center());
    this.vessels = getEssenceVesselLocations(block2.center());
  }
  static run(block2) {
    const entity = getEntityAtLocation(block2.dimension, block2.center(), "ftb_ma:awakening_altar" /* AwakeningAltar */);
    if (entity) {
      const handler = new _AwakeningAltarTickHandler(block2, entity);
      handler.refreshGhostPedestalState();
      handler.tick();
    }
  }
  tick() {
    const input = getMainhandItemDisplayItem(this.entity);
    if (!input) {
      this.reset();
      return;
    }
    if (this.isActive()) {
      const recipe = this.getActiveRecipe(input);
      if (recipe) {
        const progress = ++this.progress;
        const dimension = this.entity.dimension;
        if (progress > ALTAR_TICKS_REQUIRED) {
          for (const pedestal of this.pedestals) {
            const entity = getEntityAtLocation(this.block.dimension, pedestal, "ftb_ma:pedestal" /* Pedestal */);
            if (entity) {
              setMainhandItemDisplayItem(entity, 0, void 0);
              dimension.spawnParticle(
                "minecraft:basic_smoke_particle",
                Vector3Utils.add(entity.location, { x: 0, y: 1, z: 0 })
              );
            }
          }
          for (const vessel of this.vessels) {
            const entity = getEntityAtLocation(this.block.dimension, vessel, "ftb_ma:essence_vessel" /* EssenceVessel */);
            if (entity) {
              shrinkItemInEssenceVessel(entity, recipe.essences);
            }
          }
          setMainhandItemDisplayItem(this.entity, 0, recipe.assemble([input]));
          dimension.spawnParticle(
            "minecraft:villager_happy",
            Vector3Utils.add(this.entity.location, { x: 0, y: 1, z: 0 })
          );
          dimension.playSound("random.levelup", this.entity.location);
          this.reset();
        } else {
          for (const pedestal of this.pedestals) {
            dimension.spawnParticle("minecraft:basic_smoke_particle", Vector3Utils.add(pedestal, { x: 0, y: 1, z: 0 }));
          }
          for (const vessel of this.vessels) {
            dimension.spawnParticle("minecraft:basic_smoke_particle", Vector3Utils.add(vessel, { x: 0, y: 1, z: 0 }));
          }
        }
      } else {
        this.reset();
      }
    } else {
      this.reset();
    }
  }
  getActiveRecipe(input) {
    const items = [
      input,
      ...getPedestalItems(this.block, this.pedestals),
      ...getEssenceVesselItems(this.block, this.vessels)
    ];
    if (this.recipe) {
      const recipe = SpecialRecipes2.Registry.getById(this.recipe);
      if (recipe instanceof AwakeningRecipe && recipe.matches(items)) {
        return recipe;
      } else {
        this.recipe = void 0;
      }
    }
    if (!this.recipe) {
      const recipe = SpecialRecipes2.Registry.find(RecipeTypes.Awakening, items);
      if (recipe) {
        this.recipe = recipe.id;
        return recipe;
      }
    }
    return void 0;
  }
  refreshGhostPedestalState() {
    const dimension = this.block.dimension;
    let state = 255;
    for (let i = 0; i < 4; i++) {
      const location = this.vessels[i];
      const block2 = dimension.getBlock(location);
      if (block2 && !block2.isAir) {
        state &= ~(1 << i);
      }
    }
    for (let i = 4; i < 8; i++) {
      const location = this.pedestals[i - 4];
      const block2 = dimension.getBlock(location);
      if (block2 && !block2.isAir) {
        state &= ~(1 << i);
      }
    }
    if (state !== this.ghostPedestalState) {
      this.ghostPedestalState = state;
    }
  }
};
function getPedestalLocations(location) {
  return PEDESTAL_LOCATION_OFFSETS.map((o) => Vector3Utils.add(location, o));
}
function getEssenceVesselLocations(location) {
  return ESSENCE_VESSEL_LOCATION_OFFSETS.map((o) => Vector3Utils.add(location, o));
}
function getEssenceVesselItems(block2, locations) {
  const items = [];
  for (const location of locations) {
    const pedestal = getEntityAtLocation(block2.dimension, location, "ftb_ma:essence_vessel" /* EssenceVessel */);
    if (!pedestal) {
      continue;
    }
    const item = getMainhandItemDisplayItem(pedestal);
    if (!item) {
      continue;
    }
    items.push(item);
  }
  return items;
}

// scripts/components/block/awakening-altar.ts
var AwakeningAltarBlockComponent = {
  beforeOnPlayerPlace({ block: block2, dimension }) {
    system10.run(() => {
      dimension.spawnEntity("ftb_ma:awakening_altar" /* AwakeningAltar */, block2.center());
    });
  },
  onPlayerBreak({ block: block2 }) {
    handleAwakeningAltarDestroyed(block2);
  },
  onPlayerInteract({ block: block2, dimension, player }) {
    if (!player) {
      return;
    }
    const displayEntity = getEntityAtLocation(dimension, block2.center(), "ftb_ma:awakening_altar" /* AwakeningAltar */);
    if (!displayEntity) {
      console.error("Missing display item entity for Awakening Altar at", JSON.stringify(block2.center()));
      return;
    }
    const heldItem = getMainhandItem(player);
    if (heldItem?.typeId === "ftb_ma:wand" /* Wand */) {
      setAwakeningAltarActive(block2, true);
      return;
    }
    const context = new PedestalContext(block2, player, displayEntity);
    const item = getMainhandItemDisplayItem(displayEntity);
    if (item) {
      removeItemFromPedestal(context);
    } else {
      if (heldItem) {
        addItemToPedestal(context, heldItem);
      }
    }
  },
  onTick({ block: block2 }) {
    AwakeningAltarTickHandler.run(block2);
  }
};

// scripts/components/block/crop.ts
import { ItemStack as ItemStack18 } from "@minecraft/server";

// scripts/functions/crops.ts
import { ItemStack as ItemStack17 } from "@minecraft/server";

// scripts/functions/farmland.ts
import { ItemStack as ItemStack16 } from "@minecraft/server";
var ESSENCE_FARMLAND_TIERS = [
  {
    value: 1,
    essence: "ftb_ma:inferium_essence" /* InferiumEssence */,
    farmland: "ftb_ma:inferium_farmland" /* InferiumFarmland */
  },
  {
    value: 2,
    essence: "ftb_ma:prudentium_essence" /* PrudentiumEssence */,
    farmland: "ftb_ma:prudentium_farmland" /* PrudentiumFarmland */
  },
  {
    value: 3,
    essence: "ftb_ma:tertium_essence" /* TertiumEssence */,
    farmland: "ftb_ma:tertium_farmland" /* TertiumFarmland */
  },
  {
    value: 4,
    essence: "ftb_ma:imperium_essence" /* ImperiumEssence */,
    farmland: "ftb_ma:imperium_farmland" /* ImperiumFarmland */
  },
  {
    value: 5,
    essence: "ftb_ma:supremium_essence" /* SupremiumEssence */,
    farmland: "ftb_ma:supremium_farmland" /* SupremiumFarmland */
  },
  {
    value: 6,
    essence: "ftb_ma:awakened_supremium_essence" /* AwakenedSupremiumEssence */,
    farmland: "ftb_ma:awakened_supremium_farmland" /* AwakenedSupremiumFarmland */
  }
];
function getFarmlandTierByEssence(item) {
  return ESSENCE_FARMLAND_TIERS.find((t) => t.essence === item);
}
function getFarmlandTierByFarmland(block2) {
  return ESSENCE_FARMLAND_TIERS.find((t) => t.farmland === block2);
}
var ESSENCE_RETURN_CHANCE = 0.25;
function convertFarmlandToEssenceFarmland(block2, stack, player) {
  const essenceTier = getFarmlandTierByEssence(stack.typeId);
  if (!essenceTier) {
    return;
  }
  if (block2.typeId === MinecraftBlockTypes.Farmland) {
    block2.setType(essenceTier.farmland);
    block2.dimension.playSound("dig.sand", block2.location);
    if (!isCreativeMode(player)) {
      shrinkMainhandItem(player, stack, 1);
    }
  } else {
    const farmlandTier = getFarmlandTierByFarmland(block2.typeId);
    if (farmlandTier && farmlandTier.value !== essenceTier.value) {
      block2.setType(essenceTier.farmland);
      block2.dimension.playSound("dig.sand", block2.location);
      if (!isCreativeMode(player)) {
        shrinkMainhandItem(player, stack, 1);
      }
      if (Math.random() < ESSENCE_RETURN_CHANCE) {
        block2.dimension.spawnItem(
          new ItemStack16(farmlandTier.essence),
          Vector3Utils.add(block2.location, { x: 0.5, y: 1, z: 0.5 })
        );
      }
    }
  }
}

// scripts/functions/mystical-crops.ts
function getMysticalCropForBlock(block2) {
  return Crops.Registry.getById(block2.replace("_crop", ""));
}
function getSecondarySeedDropChance(crop, farmland) {
  if (!farmland) {
    return 0;
  }
  if (farmland.typeId === "ftb_ma:awakened_supremium_farmland" /* AwakenedSupremiumFarmland */) {
    return 0.2;
  }
  const tier = getFarmlandTierByFarmland(farmland.typeId);
  if (!tier) {
    return 0;
  }
  if (tier.farmland === crop.tier.farmlandTypeId) {
    return 0.2;
  }
  return 0.1;
}

// scripts/functions/crops.ts
var CROP_GROWTH_CHANCE = 0.333;
var CropInfo = class {
  constructor(state, maxAge, createDropsListFunc) {
    this.state = state;
    this.maxAge = maxAge;
    this.createDropsListFunc = createDropsListFunc;
  }
  get isHarvestable() {
    return !!this.createDropsList;
  }
  createDropsList(block2) {
    return this.createDropsListFunc?.(block2).filter((i) => i instanceof ItemStack17) ?? [];
  }
};
var MYSTICAL_CROP_INFO = new CropInfo("ftb_ma:age" /* Age */, 7, (block2) => {
  const crop = getMysticalCropForBlock(block2.typeId);
  const secondarySeedChance = getSecondarySeedDropChance(crop, block2.below());
  return [
    new ItemStack17(crop.essenceTypeId),
    createItemStack(crop.seedsTypeId, Math.random() < secondarySeedChance ? 1 : 0),
    // 10/20% chance to drop a second seed
    createItemStack("ftb_ma:fertilized_essence" /* FertilizedEssence */, crop !== Crops.Inferium && Math.random() < 0.1 ? 1 : 0)
    // 10% chance to drop a Fertilized Essence
  ];
});
var CROPS = /* @__PURE__ */ new Map([
  [
    MinecraftBlockTypes.Wheat,
    new CropInfo("minecraft:growth", 7, () => [
      new ItemStack17(MinecraftItemTypes.Wheat),
      new ItemStack17(MinecraftItemTypes.WheatSeeds, randIntInclusive(0, 3))
    ])
  ],
  [
    MinecraftBlockTypes.Carrots,
    new CropInfo("minecraft:growth", 7, () => [createItemStack(MinecraftItemTypes.Carrot, randIntInclusive(1, 4))])
  ],
  [
    MinecraftBlockTypes.Potatoes,
    new CropInfo("minecraft:growth", 7, () => [createItemStack(MinecraftItemTypes.Potato, randIntInclusive(0, 3))])
  ],
  [
    MinecraftBlockTypes.Beetroot,
    new CropInfo("minecraft:growth", 7, () => [
      new ItemStack17(MinecraftItemTypes.Beetroot),
      createItemStack(MinecraftItemTypes.BeetrootSeeds, randIntInclusive(0, 2))
    ])
  ],
  [MinecraftBlockTypes.PumpkinStem, new CropInfo("minecraft:growth", 7)],
  [MinecraftBlockTypes.MelonStem, new CropInfo("minecraft:growth", 7)],
  [
    MinecraftBlockTypes.NetherWart,
    new CropInfo("minecraft:age", 3, () => [createItemStack(MinecraftItemTypes.NetherWart, randIntInclusive(1, 3))])
  ]
]);
function isGrowableBlock(block2) {
  if (block2.hasTag("ftb_ma:crop" /* Crop */)) {
    return true;
  }
  return CROPS.has(block2.typeId);
}
function getCropInfo(block2) {
  if (block2.hasTag("ftb_ma:crop" /* Crop */)) {
    return MYSTICAL_CROP_INFO;
  }
  return CROPS.get(block2.typeId);
}
function isFullyGrown(block2) {
  const crop = getCropInfo(block2);
  if (!crop) {
    return false;
  }
  return block2.permutation.getState(crop.state) === crop.maxAge;
}
function getFullyGrownPermutation(block2) {
  const crop = getCropInfo(block2);
  if (!crop) {
    return void 0;
  }
  return block2.permutation.withState(crop.state, crop.maxAge);
}
function tickCropGrowth(block2) {
  const crop = getCropInfo(block2);
  if (!crop) {
    return false;
  }
  const age = block2.permutation.getState(crop.state);
  if (age === void 0 || typeof age !== "number") {
    return false;
  } else if (age === crop.maxAge) {
    return false;
  }
  if (Math.random() >= CROP_GROWTH_CHANCE) {
    return false;
  }
  block2.setPermutation(block2.permutation.withState(crop.state, age + 1));
  return true;
}
function fertilizeCrop(block2) {
  const crop = getCropInfo(block2);
  if (!crop) {
    return false;
  }
  const age = block2.permutation.getState(crop.state);
  if (age === void 0 || typeof age !== "number") {
    return false;
  } else if (age === crop.maxAge) {
    return false;
  }
  block2.setPermutation(
    block2.permutation.withState(crop.state, Math.min(age + randIntInclusive(2, 5), crop.maxAge))
  );
  return true;
}
function harvestCrop(block2) {
  const crop = getCropInfo(block2);
  if (!crop || !crop.isHarvestable) {
    return [];
  }
  const drops = crop.createDropsList(block2);
  block2.setPermutation(block2.permutation.withState(crop.state, 0));
  return drops;
}
function spawnGrowthParticles(block2) {
  block2.dimension.spawnParticle(
    "minecraft:crop_growth_emitter",
    Vector3Utils.add(block2.location, { x: 0.5, y: 0.25, z: 0.5 })
  );
}

// scripts/components/block/crop.ts
var CropBlockComponent = {
  onPlayerBreak({ block: block2, brokenBlockPermutation, dimension, player }) {
    if (player && isCreativeMode(player)) {
      return;
    }
    if (brokenBlockPermutation.getState("ftb_ma:age" /* Age */) === 7) {
      const crop = getMysticalCropForBlock(brokenBlockPermutation.type.id);
      if (!crop) {
        console.error("Failed to get crop info for crop block", block2);
        return;
      }
      const secondaryDropChance = getSecondarySeedDropChance(crop, block2.below());
      if (Math.random() < secondaryDropChance) {
        dimension.spawnItem(
          new ItemStack18(crop.seedsTypeId),
          Vector3Utils.add(block2.location, { x: 0.5, y: 0.5, z: 0.5 })
        );
      }
    }
  },
  onRandomTick({ block: block2 }) {
    tickCropGrowth(block2);
  }
};

// scripts/components/block/enchanter.ts
import { system as system12 } from "@minecraft/server";

// scripts/face-selection.ts
import { Direction as Direction4 } from "@minecraft/server";
var isInRange = (value, min, max) => value >= min && value <= max;
var FaceSelectionPlains = class {
  /**
   * Allows you to define 2D areas on a block's face and get the selected plain.
   *
   * @param {Object[]} plains Spread array defining the 2D areas on a block's face which may be selected.
   * @param {[number, number]} plains[].origin [U, V] array defining the offset of the plain from the top left of the block face in pixels.
   * @param {[number, number]} plains[].size [U, V] array defining the size of the plain, extending from the top left in pixels.
   * @param {string} [plains[].name] Custom name to easily identify this plain when it is selected.
   */
  constructor(...plains) {
    this.plains = plains;
  }
  /**
   * @param {Object} selection
   * @param {Direction} selection.face
   * @param {import("@minecraft/server").Vector3} selection.faceLocation
   *
   * @param {Object} [options]
   * @param {boolean} [options.invertU] Horizontal axis extends `right -> left` rather than `left -> right` if true.
   * @param {boolean} [options.invertV] Vertical axis extends `bottom -> top` rather than `top -> bottom` if true.
   *
   * @returns Selected plain ID, or plain index if an ID is not provided. If no plains apply to the selection, `undefined` is returned.
   */
  getSelected(selection, options) {
    const { face, faceLocation } = selection;
    let location = { ...faceLocation };
    const horizontalAxis = face === Direction4.East || face === Direction4.West ? "z" : "x";
    const verticalAxis = face === Direction4.Up || face === Direction4.Down ? "z" : "y";
    if (face !== Direction4.Down) location[verticalAxis] = 1 - location[verticalAxis];
    if (face !== Direction4.South && face !== Direction4.West) location[horizontalAxis] = 1 - location[horizontalAxis];
    if (options?.invertU) location[horizontalAxis] = 1 - location[horizontalAxis];
    if (options?.invertV) location[verticalAxis] = 1 - location[verticalAxis];
    for (let i = 0; i < this.plains.length; i++) {
      const plain = this.plains[i];
      const inHorizontalRange = isInRange(
        location[horizontalAxis],
        plain.origin[0] / 16,
        (plain.origin[0] + plain.size[0]) / 16
      );
      const inVerticalRange = isInRange(
        location[verticalAxis],
        plain.origin[1] / 16,
        (plain.origin[1] + plain.size[1]) / 16
      );
      if (inHorizontalRange && inVerticalRange) return plain.name ?? i;
    }
  }
};
var SelectionBoxes = class {
  /**
   * Allows you to define 3D areas in a block and get the box which the face selection lies within.
   *
   * @param {Object[]} boxes Array defining the 3D areas within a block which may be selected.
   * @param {[number, number, number]} boxes[].origin [X, Y, Z] array defining the offset of the box from the block's horizontal middle and vertical bottom in pixels, extending from the north-east.
   * @param {[number, number, number]} boxes[].size [X, Y, Z] array defining the size of the box in pixels, extending from the north-east.
   * @param {string} [boxes[].name] Custom name to easily identify this box when it is selected.
   */
  constructor(...boxes) {
    this.boxes = boxes;
  }
  /**
   * Get the box which the `faceLocation` lies within.
   *
   * @param {import("@minecraft/server").Vector3} faceLocation Selection location relative to the bottom north-west corner of the block.
   *
   * @param {Object} [options] Optionally configure how the selected box is calculated.
   * @param {boolean} [options.invertX] X axis extends `west -> east` rather than `east -> west` if true, following [Blockbench](https://blockbench.net)'s displayed positions.
   * @param {boolean} [options.invertY] Y axis extends `up -> down` rather than `down -> up` if true.
   * @param {boolean} [options.invertZ] Z axis extends `south -> north` rather than `north -> south` if true.
   *
   * @returns {(string|number|undefined)} Selected box name, or box index if a name is not provided. If no boxes apply to the selection, `undefined` is returned.
   */
  getSelected(faceLocation, options) {
    let location = { ...faceLocation };
    if (!options?.invertX) location.x = 1 - location.x;
    if (options?.invertY) location.y = 1 - location.y;
    if (options?.invertZ) location.z = 1 - location.z;
    for (let i = 0; i < this.boxes.length; i++) {
      const box = this.boxes[i];
      const from = {
        x: box.origin[0] + 8,
        y: box.origin[1],
        z: box.origin[2] + 8
      };
      const to = {
        x: from.x + box.size[0],
        y: from.y + box.size[1],
        z: from.z + box.size[2]
      };
      const inXRange = isInRange(location.x, from.x / 16, to.x / 16);
      const inYRange = isInRange(location.y, from.y / 16, to.y / 16);
      const inZRange = isInRange(location.z, from.z / 16, to.z / 16);
      if (inXRange && inYRange && inZRange) return box.name ?? i;
    }
  }
};

// scripts/functions/enchanter.ts
import { ItemStack as ItemStack19, system as system11 } from "@minecraft/server";
var MAX_ITEM_COUNT = 512;
var EXPERIENCE_ESSENCE_COUNT_KEY = "Experience-Essence-Count";
var MATERIAL_ITEM_COUNT_KEY = "Material-Item-Count";
var EnchanterContext = class {
  constructor(player, block2, entity, recipe) {
    this.player = player;
    this.block = block2;
    this.entity = entity;
    this.recipe = recipe;
  }
};
function isExperienceEssence(stack) {
  return stack.typeId === "ftb_ma:experience_essence" /* ExperienceEssence */;
}
function addExperienceEssenceToEnchanter(context, stack) {
  const item = getOffhandItemDisplayItem(context.entity);
  if (item && !item.isStackableWith(stack)) {
    return false;
  }
  const count = getExperienceEssenceCount(context.entity);
  if (count >= MAX_ITEM_COUNT) {
    return false;
  }
  const total = Math.min(count + stack.amount, MAX_ITEM_COUNT);
  const take = total - count;
  setOffhandItemDisplayItem(context.entity, 1, cloneWithCount(stack, 1));
  shrinkMainhandItem(context.player, stack, take);
  setExperienceEssenceCount(context.entity, total);
  refreshEnchanterNametag(context);
  context.block.dimension.playSound("armor.equip_generic", context.block.location);
  return true;
}
function addMaterialItemToEnchanter(context, stack) {
  const validate = () => {
    const item = getMainhandItemDisplayItem(context.entity);
    if (item && !item.isStackableWith(stack)) {
      return false;
    }
    const count = getMaterialItemCount(context.entity);
    if (count >= MAX_ITEM_COUNT) {
      return false;
    }
    return true;
  };
  if (!validate()) {
    return false;
  }
  context.entity.setProperty("ftb_ma:item_display_type" /* ItemDisplayType */, getItemDisplayType(stack));
  system11.runTimeout(() => {
    if (!validate()) {
      return;
    }
    const count = getMaterialItemCount(context.entity);
    const total = Math.min(count + stack.amount, MAX_ITEM_COUNT);
    const take = total - count;
    setMainhandItemDisplayItem(context.entity, 0, cloneWithCount(stack, 1));
    shrinkMainhandItem(context.player, stack, take);
    setMaterialItemCount(context.entity, total);
    refreshEnchanterNametag(context);
    context.block.dimension.playSound("armor.equip_generic", context.block.location);
  }, 1);
  return true;
}
function removeExperienceEssenceFromEnchanter(context) {
  const item = getOffhandItemDisplayItem(context.entity);
  if (item) {
    const dimension = context.block.dimension;
    const count = getExperienceEssenceCount(context.entity);
    const give = Math.min(count, item.maxAmount);
    setExperienceEssenceCount(context.entity, count - give);
    const remaining = addItemToInventory(context.player, cloneWithCount(item, give));
    if (remaining) {
      dimension.spawnItem(remaining, context.entity.location);
    }
    if (give === count) {
      setOffhandItemDisplayItem(context.entity, 1, void 0);
    }
    refreshEnchanterNametag(context);
    dimension.playSound("random.pop", context.entity.location);
  }
}
function removeMaterialItemFromEnchanter(context) {
  const item = getMainhandItemDisplayItem(context.entity);
  if (item) {
    const dimension = context.block.dimension;
    const count = getMaterialItemCount(context.entity);
    const give = Math.min(count, item.maxAmount);
    setMaterialItemCount(context.entity, count - give);
    const remaining = addItemToInventory(context.player, cloneWithCount(item, give));
    if (remaining) {
      dimension.spawnItem(remaining, context.entity.location);
    }
    if (give === count) {
      setMainhandItemDisplayItem(context.entity, 0, void 0);
    }
    refreshEnchanterNametag(context);
    dimension.playSound("random.pop", context.entity.location);
  }
}
function applyEnchantmentToHeldItem(context) {
  const recipe = context.recipe;
  if (!recipe) {
    return;
  }
  const player = context.player;
  const held = getMainhandItem(player);
  if (!held) {
    return;
  }
  const isEnchantingBook = held.typeId === MinecraftItemTypes.Book;
  let result;
  if (isEnchantingBook) {
    result = new ItemStack19(MinecraftItemTypes.EnchantedBook);
  } else {
    result = held;
  }
  const enchantable = getEnchantable(result);
  if (!enchantable) {
    return;
  }
  const entity = context.entity;
  const essences = getExperienceEssenceCount(entity);
  const materials = getMaterialItemCount(entity);
  const enchantment = recipe.create(essences, materials);
  enchantable.addEnchantment(enchantment);
  if (isEnchantingBook) {
    shrinkMainhandItem(player, held, 1);
    addItemToInventory(player, result);
  } else {
    setMainhandItem(player, result);
  }
  const essencesLeft = essences - recipe.experienceEssence * enchantment.level;
  if (essencesLeft === 0) {
    setOffhandItemDisplayItem(entity, 1, void 0);
  }
  const materialsLeft = materials - recipe.input.count * enchantment.level;
  if (materialsLeft === 0) {
    setMainhandItemDisplayItem(entity, 0, void 0);
  }
  setExperienceEssenceCount(entity, essencesLeft);
  setMaterialItemCount(entity, materialsLeft);
  refreshEnchanterNametag(context);
  const dimension = context.block.dimension;
  dimension.playSound("random.levelup", entity.location);
  for (let i = 0; i < 4; i++) {
    dimension.spawnParticle(
      "minecraft:villager_happy",
      Vector3Utils.add(entity.location, {
        x: 0.25 - Math.random() * 0.5,
        y: 0.5,
        z: 0.25 - Math.random() * 0.5
      })
    );
  }
}
function getEnchanterDisplayEntity(block2) {
  const entity = getEntityAtLocation(block2.dimension, block2.center(), "ftb_ma:enchanter" /* Enchanter */);
  if (!entity) {
    console.warn("Could not find item display entity for Enchanter", JSON.stringify(block2.center()));
    return void 0;
  }
  return entity;
}
function getExperienceEssenceCount(entity) {
  return entity.getDynamicProperty(EXPERIENCE_ESSENCE_COUNT_KEY) ?? 0;
}
function setExperienceEssenceCount(entity, count) {
  entity.setDynamicProperty(EXPERIENCE_ESSENCE_COUNT_KEY, count);
}
function getMaterialItemCount(entity) {
  return entity.getDynamicProperty(MATERIAL_ITEM_COUNT_KEY) ?? 0;
}
function setMaterialItemCount(entity, count) {
  entity.setDynamicProperty(MATERIAL_ITEM_COUNT_KEY, count);
}
function refreshEnchanterNametag(context) {
  const recipe = getEnchanterRecipe(context.entity);
  const essences = getExperienceEssenceCount(context.entity);
  const materials = getMaterialItemCount(context.entity);
  if (recipe) {
    const level = recipe.getLevelForInputs(essences, materials) ?? 0;
    context.entity.nameTag = `\xA7a${essences}\xA7r | \xA7e${materials}\xA7r -> ${recipe.displayName} ${formatEnchantmentLevel(level)}`;
  } else if (essences > 0 || materials > 0) {
    context.entity.nameTag = `\xA7a${essences}\xA7r | \xA7e${materials}\xA7r`;
  } else {
    context.entity.nameTag = "";
  }
}
function getEnchanterRecipe(entity) {
  const items = [
    getOffhandItemDisplayItem(entity) ?? new ItemStack19(MinecraftBlockTypes.Air),
    getMainhandItemDisplayItem(entity) ?? new ItemStack19(MinecraftBlockTypes.Air)
  ];
  return SpecialRecipes2.Registry.find(RecipeTypes.Enchanter, items);
}
function getEnchanterRecipeAndInputs(entity) {
  return [
    getEnchanterRecipe(entity),
    {
      essences: getExperienceEssenceCount(entity),
      materials: getMaterialItemCount(entity)
    }
  ];
}
function handleEnchanterDestroyed(block2) {
  const location = block2.center();
  const dimension = block2.dimension;
  const entity = getEntityAtLocation(dimension, location, "ftb_ma:enchanter" /* Enchanter */);
  if (entity) {
    const drop = (item, count) => {
      let remaining = count;
      while (remaining > 0) {
        const drop2 = cloneWithCount(item, Math.min(remaining, item.maxAmount));
        remaining -= drop2.amount;
        dimension.spawnItem(drop2, entity.location);
      }
    };
    const essence = getOffhandItemDisplayItem(entity);
    if (essence) {
      drop(essence, getExperienceEssenceCount(entity));
    }
    const material = getMainhandItemDisplayItem(entity);
    if (material) {
      drop(material, getMaterialItemCount(entity));
    }
    entity.remove();
  } else {
    console.error("Failed to remove display entity for Enchanter at", JSON.stringify(location));
  }
}

// scripts/components/block/enchanter.ts
var SELECTION_BOXES = new SelectionBoxes(
  { origin: [0, 8, 0], size: [8, 8, 16], name: "left" },
  { origin: [-8, 8, 0], size: [8, 8, 16], name: "right" }
);
var EnchanterBlockComponent = {
  beforeOnPlayerPlace({ block: block2, dimension }) {
    system12.run(() => {
      dimension.spawnEntity("ftb_ma:enchanter" /* Enchanter */, block2.center());
    });
  },
  onPlayerBreak({ block: block2 }) {
    handleEnchanterDestroyed(block2);
  },
  onPlayerInteract({ block: block2, faceLocation, player }) {
    if (!player) {
      return;
    }
    if (!faceLocation) {
      return;
    }
    const displayEntity = getEnchanterDisplayEntity(block2);
    if (!displayEntity) {
      return;
    }
    const [recipe, inputs] = getEnchanterRecipeAndInputs(displayEntity);
    const context = new EnchanterContext(player, block2, displayEntity, recipe);
    const item = getMainhandItem(player);
    if (item && recipe?.canApplyTo(item, inputs.essences, inputs.materials)) {
      applyEnchantmentToHeldItem(context);
    } else {
      const relativeFaceLocation = {
        x: faceLocation.x,
        y: faceLocation.y,
        z: faceLocation.z
      };
      const direction = block2.permutation.getState("minecraft:cardinal_direction");
      if (direction === "east" || direction === "west") {
        relativeFaceLocation.x = faceLocation.z;
        relativeFaceLocation.z = faceLocation.x;
      }
      const selection = SELECTION_BOXES.getSelected(relativeFaceLocation, {
        invertX: direction === "north" || direction === "east",
        invertY: true,
        invertZ: direction === "north" || direction === "west"
      });
      switch (selection) {
        case "left":
          if (item && isExperienceEssence(item) && addExperienceEssenceToEnchanter(context, item)) {
            return;
          }
          removeExperienceEssenceFromEnchanter(context);
          return;
        case "right":
          if (item && isEnchanterInput(item) && addMaterialItemToEnchanter(context, item)) {
            return;
          }
          removeMaterialItemFromEnchanter(context);
          return;
        default:
          return;
      }
    }
  },
  onPlace({ block: block2, dimension }) {
    const entity = getEntityAtLocation(dimension, block2.center(), "ftb_ma:enchanter" /* Enchanter */);
    if (entity) {
      const direction = block2.permutation.getState("minecraft:cardinal_direction");
      setItemDisplayRotation(entity, direction);
    }
  }
};

// scripts/components/block/essence-vessel.ts
import { system as system13 } from "@minecraft/server";
var EssenceVesselBlockComponent = {
  beforeOnPlayerPlace({ block: block2, dimension }) {
    system13.run(() => {
      dimension.spawnEntity("ftb_ma:essence_vessel" /* EssenceVessel */, block2.center());
    });
  },
  onPlayerBreak({ block: block2 }) {
    handleEssenceVesselDestroyed(block2);
  },
  onPlayerInteract({ block: block2, dimension, player }) {
    if (!player) {
      return;
    }
    const entity = getEntityAtLocation(dimension, block2.center(), "ftb_ma:essence_vessel" /* EssenceVessel */);
    if (!entity) {
      console.error("Missing display entity for Essence Vessel at", JSON.stringify(block2.center()));
      return;
    }
    const context = new EssenceVesselContext(block2, player, entity);
    const held = getMainhandItem(player);
    if (held && !isValidEssenceVesselItem(held)) {
      return;
    }
    const item = getMainhandItemDisplayItem(entity);
    if (item) {
      if (held && canAddItemToEssenceVessel(item, held)) {
        addItemToEssenceVessel(context, held);
      } else {
        removeItemFromEssenceVessel(context);
      }
    } else {
      if (held) {
        addItemToEssenceVessel(context, held);
      }
    }
  }
};

// scripts/components/block/furnace.ts
import { system as system14 } from "@minecraft/server";

// scripts/functions/machine/furnace.ts
var OPERATION_TIME = 200;
var INPUT_SLOT_INDEX = 2;
var FurnaceInteractionHandler = class _FurnaceInteractionHandler extends MachineInteractionHandler {
  static run(player, block2, face) {
    const entity = getEntityAtLocation(block2.dimension, block2.center(), "ftb_ma:furnace" /* Furnace */);
    if (entity) {
      const handler = new _FurnaceInteractionHandler(player, block2, entity, face);
      handler.handleClick();
    }
  }
  handleClickFront() {
    const held = getMainhandItem(this.player);
    if (held) {
      if (isMachineUpgradeItem(held)) {
        addMachineUpgradeItemToMachine(this.entity, this.player, held);
      } else {
        if (isFuranceInput(held)) {
          if (!addItemToMachineSlot(this.entity, this.player, INPUT_SLOT_INDEX, held)) {
            removeItemFromMachineSlot(this.entity, this.player, INPUT_SLOT_INDEX);
          }
        } else {
          removeItemFromMachineSlot(this.entity, this.player, INPUT_SLOT_INDEX);
        }
      }
    } else {
      const current = getItemInInventory(this.entity, INPUT_SLOT_INDEX);
      if (current) {
        removeItemFromMachineSlot(this.entity, this.player, INPUT_SLOT_INDEX);
      }
      if (this.player.isSneaking) {
        removeMachineUpgradeItemFromMachine(this.entity, this.player);
      }
    }
  }
  handleClickLeft() {
    const held = getMainhandItem(this.player);
    if (held && addFuelItemToMachine(this.entity, this.player, held)) {
      return;
    }
    removeFuelItemFromMachine(this.entity, this.player);
  }
};
var FurnaceTickHandler = class _FurnaceTickHandler extends MachineTickHandler {
  static run(block2) {
    const entity = getEntityAtLocation(block2.dimension, block2.center(), "ftb_ma:furnace" /* Furnace */);
    if (entity) {
      const inventory = getEntityInventory(entity);
      if (inventory) {
        const handler = new _FurnaceTickHandler(block2, entity, inventory, OPERATION_TIME);
        handler.handleFuelUsage();
        handler.tick();
        handler.handleRunningStatus();
      }
    }
  }
  tick() {
    if (this.fuelLeft <= 0) {
      this.reset();
      return;
    }
    const input = this.inventory.getItem(INPUT_SLOT_INDEX);
    if (this.canTick(20)) {
      handleMachineInput(this.entity, INPUT_SLOT_INDEX, this.block.above(), isFuranceInput, input);
    }
    if (input) {
      const recipe = this.getActiveRecipe(input);
      if (recipe) {
        this.running = true;
        this.progress++;
        this.fuelLeft--;
        this.setRequirement(input.amount, 1);
        if (this.progress >= this.operationTime) {
          const result = recipe.assemble([input]);
          this.progress = 0;
          this.inventory.setItem(INPUT_SLOT_INDEX, shrink(input, 1));
          handleMachineOutput(this.block, result);
        }
      } else {
        this.reset();
      }
    } else {
      this.reset();
    }
  }
  getActiveRecipe(input) {
    const items = [input];
    if (this.recipe) {
      const recipe = SpecialRecipes2.Registry.getById(this.recipe);
      if (recipe instanceof FurnaceRecipe && recipe.matches(items)) {
        return recipe;
      } else {
        this.recipe = void 0;
      }
    }
    if (!this.recipe) {
      const recipe = SpecialRecipes2.Registry.find(RecipeTypes.Furnace, items);
      if (recipe) {
        this.recipe = recipe.id;
        return recipe;
      }
    }
    return void 0;
  }
};

// scripts/components/block/furnace.ts
var FurnaceBlockComponent = {
  beforeOnPlayerPlace({ block: block2, dimension }) {
    system14.run(() => {
      dimension.spawnEntity("ftb_ma:furnace" /* Furnace */, block2.center());
    });
  },
  onPlayerBreak({ block: block2 }) {
    handleMachineDestroyed(block2, "ftb_ma:furnace" /* Furnace */, "Furnace");
  },
  onPlayerInteract({ block: block2, face, player }) {
    if (!player) {
      return;
    }
    FurnaceInteractionHandler.run(player, block2, face);
  },
  onPlace({ block: block2, dimension }) {
    const entity = getEntityAtLocation(dimension, block2.center(), "ftb_ma:furnace" /* Furnace */);
    if (entity) {
      const direction = block2.permutation.getState("minecraft:cardinal_direction");
      setMachineDisplayRotation(entity, direction);
    }
  },
  onTick({ block: block2 }) {
    FurnaceTickHandler.run(block2);
  }
};

// scripts/components/block/growth-accelerator.ts
var RANGES = /* @__PURE__ */ new Map([
  ["ftb_ma:inferium_growth_accelerator" /* InferiumGrowthAccelerator */, 9],
  ["ftb_ma:prudentium_growth_accelerator" /* PrudentiumGrowthAccelerator */, 18],
  ["ftb_ma:tertium_growth_accelerator" /* TertiumGrowthAccelerator */, 27],
  ["ftb_ma:imperium_growth_accelerator" /* ImperiumGrowthAccelerator */, 36],
  ["ftb_ma:supremium_growth_accelerator" /* SupremiumGrowthAccelerator */, 45],
  ["ftb_ma:awakened_supremium_growth_accelerator" /* AwakenedSupremiumGrowthAccelerator */, 54]
]);
var GROWTH_TICK_CHANCE = 0.33;
var GrowthAcceleratorBlockComponent = {
  onRandomTick({ block: block2, dimension }) {
    if (Math.random() < GROWTH_TICK_CHANCE) {
      return;
    }
    const range = RANGES.get(block2.typeId) ?? 0;
    for (let i = 0; i < range; i++) {
      if (!isInHeightRange(block2.y + i + 1, dimension)) {
        return;
      }
      const aoeBlock = dimension.getBlock({
        x: block2.x,
        y: block2.y + i + 1,
        z: block2.z
      });
      if (!aoeBlock || !isGrowableBlock(aoeBlock)) {
        continue;
      }
      if (tickCropGrowth(aoeBlock)) {
        spawnGrowthParticles(aoeBlock);
      }
      return;
    }
  }
};

// scripts/components/block/harvester.ts
import { system as system15 } from "@minecraft/server";

// scripts/functions/machine/harvester.ts
import { Direction as Direction5 } from "@minecraft/server";
var OPERATION_TIME2 = 100;
var BASE_RANGE = 1;
var SCANS_PER_FUEL_USAGE = 9;
var LAST_SCAN_INDEX_KEY = "Harvester-Last-Scan-Index";
var SCANS_SINCE_LAST_FUEL_USAGE = "Harvester-Scans-Since-Last-Fuel-Usage";
var HarvesterInteractionHandler = class _HarvesterInteractionHandler extends MachineInteractionHandler {
  static run(player, block2, face) {
    const entity = getEntityAtLocation(block2.dimension, block2.center(), "ftb_ma:harvester" /* Harvester */);
    if (entity) {
      const handler = new _HarvesterInteractionHandler(player, block2, entity, face);
      handler.handleClick();
    }
  }
  handleClickFront() {
    const held = getMainhandItem(this.player);
    if (held) {
      if (isMachineUpgradeItem(held)) {
        addMachineUpgradeItemToMachine(this.entity, this.player, held);
      }
    }
    if (this.player.isSneaking) {
      removeMachineUpgradeItemFromMachine(this.entity, this.player);
    }
  }
  handleClickLeft() {
    const held = getMainhandItem(this.player);
    if (held && addFuelItemToMachine(this.entity, this.player, held)) {
      return;
    }
    removeFuelItemFromMachine(this.entity, this.player);
  }
};
var HarvesterTickHandler = class _HarvesterTickHandler extends MachineTickHandler {
  get lastScanIndex() {
    return this.entity.getDynamicProperty(LAST_SCAN_INDEX_KEY) ?? -1;
  }
  set lastScanIndex(value) {
    this.entity.setDynamicProperty(LAST_SCAN_INDEX_KEY, value);
  }
  get scansSinceLastFuelUsage() {
    return this.entity.getDynamicProperty(SCANS_SINCE_LAST_FUEL_USAGE) ?? 0;
  }
  set scansSinceLastFuelUsage(value) {
    this.entity.setDynamicProperty(SCANS_SINCE_LAST_FUEL_USAGE, value);
  }
  get area() {
    return Math.pow(this.range * 2 + 1, 2);
  }
  get range() {
    return BASE_RANGE + this.tier.addedRange;
  }
  static run(block2) {
    const entity = getEntityAtLocation(block2.dimension, block2.center(), "ftb_ma:harvester" /* Harvester */);
    if (entity) {
      const inventory = getEntityInventory(entity);
      if (inventory) {
        const handler = new _HarvesterTickHandler(block2, entity, inventory, OPERATION_TIME2);
        handler.handleFuelUsage();
        handler.tick();
        handler.handleRunningStatus();
      }
    }
  }
  tick() {
    if (this.fuelLeft <= 0) {
      this.reset();
      return;
    }
    if (this.hasRedstoneSignal()) {
      this.running = false;
      return;
    }
    if (this.progress >= this.operationTime) {
      const directions = getMachineFacingDirections(this.block);
      const location = this.findNextLocation(directions.front);
      const dimension = this.block.dimension;
      const aoeBlock = dimension.getBlock(location);
      if (aoeBlock && isFullyGrown(aoeBlock)) {
        const drops = harvestCrop(aoeBlock);
        for (const drop of drops) {
          handleMachineOutput(this.block, drop);
        }
        this.fuelLeft--;
      } else {
        if (++this.scansSinceLastFuelUsage > SCANS_PER_FUEL_USAGE) {
          this.scansSinceLastFuelUsage = 0;
          this.fuelLeft--;
        }
      }
      this.progress = 0;
      return;
    }
    this.progress++;
    this.running = true;
    this.setRequirement(1, 1);
  }
  findNextLocation(direction) {
    const range = this.range;
    const size = range * 2 + 1;
    let index = this.lastScanIndex + 1;
    if (index >= this.area) {
      index = 0;
    }
    this.lastScanIndex = index;
    const xOffset = Math.trunc(index % size) - range;
    const zOffset = Math.trunc(index / size) - range;
    const center = this.getCenterLocation(direction, range + 1);
    switch (direction) {
      case Direction5.North:
        return {
          x: center.x + xOffset,
          y: center.y,
          z: center.z - zOffset
        };
      case Direction5.South:
        return {
          x: center.x + xOffset,
          y: center.y,
          z: center.z + zOffset
        };
      case Direction5.East:
        return {
          x: center.x + zOffset,
          y: center.y,
          z: center.z + xOffset
        };
      case Direction5.West:
        return {
          x: center.x - zOffset,
          y: center.y,
          z: center.z + xOffset
        };
      default:
        return center;
    }
  }
  getCenterLocation(direction, offset) {
    const location = this.block.location;
    switch (direction) {
      case Direction5.North:
        return {
          x: location.x,
          y: location.y,
          z: location.z - offset
        };
      case Direction5.South:
        return {
          x: location.x,
          y: location.y,
          z: location.z + offset
        };
      case Direction5.East:
        return {
          x: location.x + offset,
          y: location.y,
          z: location.z
        };
      case Direction5.West:
        return {
          x: location.x - offset,
          y: location.y,
          z: location.z
        };
      default:
        return location;
    }
  }
};

// scripts/components/block/harvester.ts
var HarvesterBlockComponent = {
  beforeOnPlayerPlace({ block: block2, dimension }) {
    system15.run(() => {
      dimension.spawnEntity("ftb_ma:harvester" /* Harvester */, block2.center());
    });
  },
  onPlayerBreak({ block: block2 }) {
    handleMachineDestroyed(block2, "ftb_ma:harvester" /* Harvester */, "Harvester");
  },
  onPlayerInteract({ block: block2, face, player }) {
    if (!player) {
      return;
    }
    HarvesterInteractionHandler.run(player, block2, face);
  },
  onPlace({ block: block2, dimension }) {
    const entity = getEntityAtLocation(dimension, block2.center(), "ftb_ma:harvester" /* Harvester */);
    if (entity) {
      const direction = block2.permutation.getState("minecraft:cardinal_direction");
      setMachineDisplayRotation(entity, direction);
    }
  },
  onTick({ block: block2 }) {
    HarvesterTickHandler.run(block2);
  }
};

// scripts/components/block/infusion-altar.ts
import { system as system16 } from "@minecraft/server";

// scripts/functions/altar/infusion-altar.ts
var PEDESTAL_LOCATION_OFFSETS2 = [
  { x: 3, y: 0, z: 0 },
  { x: 0, y: 0, z: 3 },
  { x: -3, y: 0, z: 0 },
  { x: 0, y: 0, z: -3 },
  { x: 2, y: 0, z: 2 },
  { x: -2, y: 0, z: 2 },
  { x: -2, y: 0, z: -2 },
  { x: 2, y: 0, z: -2 }
];
var ALTAR_TICKS_REQUIRED2 = 100;
var InfusionAltarTickHandler = class _InfusionAltarTickHandler extends AltarTickHandler {
  constructor(block2, entity) {
    super();
    this.block = block2;
    this.entity = entity;
    this.pedestals = getPedestalLocations2(block2.center());
  }
  static run(block2) {
    const entity = getEntityAtLocation(block2.dimension, block2.center(), "ftb_ma:infusion_altar" /* InfusionAltar */);
    if (entity) {
      const handler = new _InfusionAltarTickHandler(block2, entity);
      handler.refreshGhostPedestalState();
      handler.tick();
    }
  }
  tick() {
    const input = getMainhandItemDisplayItem(this.entity);
    if (!input) {
      this.reset();
      return;
    }
    if (this.isActive()) {
      const recipe = this.getActiveRecipe(input);
      if (recipe) {
        const progress = ++this.progress;
        const dimension = this.entity.dimension;
        if (progress > ALTAR_TICKS_REQUIRED2) {
          for (const pedestal of this.pedestals) {
            const entity = getEntityAtLocation(this.block.dimension, pedestal, "ftb_ma:pedestal" /* Pedestal */);
            if (entity) {
              var item = getMainhandItemDisplayItem(entity);
              if (item) {
                dimension.spawnParticle(
                  "minecraft:basic_smoke_particle",
                  Vector3Utils.add(entity.location, { x: 0, y: 1, z: 0 })
                );
              }
              setMainhandItemDisplayItem(entity, 0, void 0);
            }
          }
          setMainhandItemDisplayItem(this.entity, 0, recipe.assemble([input]));
          dimension.spawnParticle(
            "minecraft:villager_happy",
            Vector3Utils.add(this.entity.location, { x: 0, y: 1, z: 0 })
          );
          dimension.playSound("random.levelup", this.entity.location);
          this.reset();
        } else {
          for (const pedestal of this.pedestals) {
            const entity = getEntityAtLocation(this.block.dimension, pedestal, "ftb_ma:pedestal" /* Pedestal */);
            if (entity) {
              const item2 = getMainhandItemDisplayItem(entity);
              if (item2) {
                dimension.spawnParticle(
                  "minecraft:basic_smoke_particle",
                  Vector3Utils.add(pedestal, { x: 0, y: 1, z: 0 })
                );
              }
            }
          }
        }
      } else {
        this.reset();
      }
    } else {
      this.reset();
    }
  }
  getActiveRecipe(input) {
    const items = [input, ...getPedestalItems(this.block, this.pedestals)];
    if (this.recipe) {
      const recipe = SpecialRecipes2.Registry.getById(this.recipe);
      if (recipe instanceof InfusionRecipe && recipe.matches(items)) {
        return recipe;
      } else {
        this.recipe = void 0;
      }
    }
    if (!this.recipe) {
      const recipe = SpecialRecipes2.Registry.find(RecipeTypes.Infusion, items);
      if (recipe) {
        this.recipe = recipe.id;
        return recipe;
      }
    }
    return void 0;
  }
  refreshGhostPedestalState() {
    const dimension = this.block.dimension;
    let state = 255;
    for (let i = 0; i < 8; i++) {
      const location = this.pedestals[i];
      const block2 = dimension.getBlock(location);
      if (block2 && !block2.isAir) {
        state &= ~(1 << i);
      }
    }
    if (state !== this.ghostPedestalState) {
      this.ghostPedestalState = state;
    }
  }
};
function getPedestalLocations2(location) {
  return PEDESTAL_LOCATION_OFFSETS2.map((o) => Vector3Utils.add(location, o));
}

// scripts/components/block/infusion-altar.ts
var InfusionAltarBlockComponent = {
  beforeOnPlayerPlace({ block: block2, dimension }) {
    system16.run(() => {
      dimension.spawnEntity("ftb_ma:infusion_altar" /* InfusionAltar */, block2.center());
    });
  },
  onPlayerBreak({ block: block2 }) {
    handleInfusionAltarDestroyed(block2);
  },
  onPlayerInteract({ block: block2, dimension, player }) {
    if (!player) {
      return;
    }
    const displayEntity = getEntityAtLocation(dimension, block2.center(), "ftb_ma:infusion_altar" /* InfusionAltar */);
    if (!displayEntity) {
      console.error("Missing display item entity for Infusion Altar at", JSON.stringify(block2.center()));
      return;
    }
    const heldItem = getMainhandItem(player);
    if (heldItem?.typeId === "ftb_ma:wand" /* Wand */) {
      setInfusionAltarActive(block2, true);
      return;
    }
    const context = new PedestalContext(block2, player, displayEntity);
    const item = getMainhandItemDisplayItem(displayEntity);
    if (item) {
      removeItemFromPedestal(context);
    } else {
      if (heldItem) {
        addItemToPedestal(context, heldItem);
      }
    }
  },
  onTick({ block: block2 }) {
    InfusionAltarTickHandler.run(block2);
  }
};

// scripts/components/block/pedestal.ts
import { system as system17 } from "@minecraft/server";
var PedestalBlockComponent = {
  beforeOnPlayerPlace({ block: block2, dimension }) {
    system17.run(() => {
      dimension.spawnEntity("ftb_ma:pedestal" /* Pedestal */, block2.center());
    });
  },
  onPlayerBreak({ block: block2, brokenBlockPermutation }) {
    const destroyedBlock = brokenBlockPermutation.type.id;
    const name = destroyedBlock === "ftb_ma:awakening_pedestal" /* AwakeningPedestal */ ? "Awakening Altar" : destroyedBlock === "ftb_ma:infusion_pedestal" /* InfusionPedestal */ ? "Infusion Pedestal" : "Pedestal";
    handlePedestalDestroyed(block2, name);
  },
  onPlayerInteract({ block: block2, dimension, player }) {
    if (!player) {
      return;
    }
    const displayEntity = getEntityAtLocation(dimension, block2.center(), "ftb_ma:pedestal" /* Pedestal */);
    if (!displayEntity) {
      console.error("Missing display item entity for Pedestal at", JSON.stringify(block2.center()));
      return;
    }
    const context = new PedestalContext(block2, player, displayEntity);
    const item = getMainhandItemDisplayItem(displayEntity);
    if (item) {
      removeItemFromPedestal(context);
    } else {
      const item2 = getMainhandItem(player);
      if (item2) {
        addItemToPedestal(context, item2);
      }
    }
  }
};

// scripts/components/block/seed-reprocessor.ts
import { system as system18 } from "@minecraft/server";

// scripts/functions/machine/seed-reprocessor.ts
var OPERATION_TIME3 = 200;
var INPUT_SLOT_INDEX2 = 2;
var SeedReprocessorInteractionHandler = class _SeedReprocessorInteractionHandler extends MachineInteractionHandler {
  static run(player, block2, face) {
    const entity = getEntityAtLocation(block2.dimension, block2.center(), "ftb_ma:seed_reprocessor" /* SeedReprocessor */);
    if (entity) {
      const handler = new _SeedReprocessorInteractionHandler(player, block2, entity, face);
      handler.handleClick();
    }
  }
  handleClickFront() {
    const held = getMainhandItem(this.player);
    if (held) {
      if (isMachineUpgradeItem(held)) {
        addMachineUpgradeItemToMachine(this.entity, this.player, held);
      } else {
        if (isSeedReprocessorInput(held)) {
          if (!addItemToMachineSlot(this.entity, this.player, INPUT_SLOT_INDEX2, held)) {
            removeItemFromMachineSlot(this.entity, this.player, INPUT_SLOT_INDEX2);
          }
        } else {
          removeItemFromMachineSlot(this.entity, this.player, INPUT_SLOT_INDEX2);
        }
      }
    } else {
      const current = getItemInInventory(this.entity, INPUT_SLOT_INDEX2);
      if (current) {
        removeItemFromMachineSlot(this.entity, this.player, INPUT_SLOT_INDEX2);
      }
      if (this.player.isSneaking) {
        removeMachineUpgradeItemFromMachine(this.entity, this.player);
      }
    }
  }
  handleClickLeft() {
    const held = getMainhandItem(this.player);
    if (held && addFuelItemToMachine(this.entity, this.player, held)) {
      return;
    }
    removeFuelItemFromMachine(this.entity, this.player);
  }
};
var SeedReprocessorTickHandler = class _SeedReprocessorTickHandler extends MachineTickHandler {
  static run(block2) {
    const entity = getEntityAtLocation(block2.dimension, block2.center(), "ftb_ma:seed_reprocessor" /* SeedReprocessor */);
    if (entity) {
      const inventory = getEntityInventory(entity);
      if (inventory) {
        const handler = new _SeedReprocessorTickHandler(block2, entity, inventory, OPERATION_TIME3);
        handler.handleFuelUsage();
        handler.tick();
        handler.handleRunningStatus();
      }
    }
  }
  tick() {
    if (this.fuelLeft <= 0) {
      this.reset();
      return;
    }
    const input = this.inventory.getItem(INPUT_SLOT_INDEX2);
    if (this.canTick(20)) {
      handleMachineInput(this.entity, INPUT_SLOT_INDEX2, this.block.above(), isSeedReprocessorInput, input);
    }
    if (input) {
      const recipe = this.getActiveRecipe(input);
      if (recipe) {
        this.running = true;
        this.progress++;
        this.fuelLeft--;
        this.setRequirement(input.amount, 1);
        if (this.progress >= this.operationTime) {
          const result = recipe.assemble([input]);
          this.progress = 0;
          this.inventory.setItem(INPUT_SLOT_INDEX2, shrink(input, 1));
          handleMachineOutput(this.block, result);
        }
      } else {
        this.reset();
      }
    } else {
      this.reset();
    }
  }
  getActiveRecipe(input) {
    const items = [input];
    if (this.recipe) {
      const recipe = SpecialRecipes2.Registry.getById(this.recipe);
      if (recipe instanceof SeedReprocessorRecipe && recipe.matches(items)) {
        return recipe;
      } else {
        this.recipe = void 0;
      }
    }
    if (!this.recipe) {
      const recipe = SpecialRecipes2.Registry.find(RecipeTypes.SeedReprocessor, items);
      if (recipe) {
        this.recipe = recipe.id;
        return recipe;
      }
    }
    return void 0;
  }
};

// scripts/components/block/seed-reprocessor.ts
var SeedReprocessorBlockComponent = {
  beforeOnPlayerPlace({ block: block2, dimension }) {
    system18.run(() => {
      dimension.spawnEntity("ftb_ma:seed_reprocessor" /* SeedReprocessor */, block2.center());
    });
  },
  onPlayerBreak({ block: block2 }) {
    handleMachineDestroyed(block2, "ftb_ma:seed_reprocessor" /* SeedReprocessor */, "Seed Reprocessor");
  },
  onPlayerInteract({ block: block2, face, player }) {
    if (!player) {
      return;
    }
    SeedReprocessorInteractionHandler.run(player, block2, face);
  },
  onPlace({ block: block2, dimension }) {
    const entity = getEntityAtLocation(dimension, block2.center(), "ftb_ma:seed_reprocessor" /* SeedReprocessor */);
    if (entity) {
      const direction = block2.permutation.getState("minecraft:cardinal_direction");
      setMachineDisplayRotation(entity, direction);
    }
  },
  onTick({ block: block2 }) {
    SeedReprocessorTickHandler.run(block2);
  }
};

// scripts/components/block/soul-extractor.ts
import { system as system19 } from "@minecraft/server";

// scripts/functions/machine/soul-extractor.ts
var OPERATION_TIME4 = 200;
var INPUT_SLOT_INDEX3 = 2;
var SoulExtractorInteractionHandler = class _SoulExtractorInteractionHandler extends MachineInteractionHandler {
  static run(player, block2, face) {
    const entity = getEntityAtLocation(block2.dimension, block2.center(), "ftb_ma:soul_extractor" /* SoulExtractor */);
    if (entity) {
      const handler = new _SoulExtractorInteractionHandler(player, block2, entity, face);
      handler.handleClick();
    }
  }
  handleClickFront() {
    const held = getMainhandItem(this.player);
    if (held) {
      if (isMachineUpgradeItem(held)) {
        addMachineUpgradeItemToMachine(this.entity, this.player, held);
      } else {
        if (isSoulExtractorInput(held)) {
          if (!addItemToMachineSlot(this.entity, this.player, INPUT_SLOT_INDEX3, held)) {
            removeItemFromMachineSlot(this.entity, this.player, INPUT_SLOT_INDEX3);
          }
        } else {
          removeItemFromMachineSlot(this.entity, this.player, INPUT_SLOT_INDEX3);
        }
      }
    } else {
      const current = getItemInInventory(this.entity, INPUT_SLOT_INDEX3);
      if (current) {
        removeItemFromMachineSlot(this.entity, this.player, INPUT_SLOT_INDEX3);
      }
      if (this.player.isSneaking) {
        removeMachineUpgradeItemFromMachine(this.entity, this.player);
      }
    }
  }
  handleClickLeft() {
    const held = getMainhandItem(this.player);
    if (held && addFuelItemToMachine(this.entity, this.player, held)) {
      return;
    }
    removeFuelItemFromMachine(this.entity, this.player);
  }
};
var SoulExtractorTickHandler = class _SoulExtractorTickHandler extends MachineTickHandler {
  static run(block2) {
    const entity = getEntityAtLocation(block2.dimension, block2.center(), "ftb_ma:soul_extractor" /* SoulExtractor */);
    if (entity) {
      const inventory = getEntityInventory(entity);
      if (inventory) {
        const handler = new _SoulExtractorTickHandler(block2, entity, inventory, OPERATION_TIME4);
        handler.handleFuelUsage();
        handler.tick();
        handler.handleRunningStatus();
      }
    }
  }
  tick() {
    if (this.fuelLeft <= 0) {
      this.reset();
      return;
    }
    const input = this.inventory.getItem(INPUT_SLOT_INDEX3);
    if (this.canTick(20)) {
      handleMachineInput(this.entity, INPUT_SLOT_INDEX3, this.block.above(), isSoulExtractorInput, input);
    }
    if (input) {
      const recipe = this.getActiveRecipe(input);
      if (recipe) {
        this.setRequirement(input.amount, recipe.input.count);
        if (input.amount >= recipe.input.count) {
          this.running = true;
          this.progress++;
          this.fuelLeft--;
          if (this.progress >= this.operationTime) {
            const result = recipe.assemble([input]);
            this.progress = 0;
            this.inventory.setItem(INPUT_SLOT_INDEX3, shrink(input, recipe.input.count));
            handleMachineOutput(this.block, result);
          }
        } else {
          this.reset(false);
        }
      } else {
        this.reset();
      }
    } else {
      this.reset();
    }
  }
  getActiveRecipe(input) {
    const items = [input];
    if (this.recipe) {
      const recipe = SpecialRecipes2.Registry.getById(this.recipe);
      if (recipe instanceof SoulExtractorRecipe && recipe.matches(items)) {
        return recipe;
      } else {
        this.recipe = void 0;
      }
    }
    if (!this.recipe) {
      const recipe = SpecialRecipes2.Registry.find(RecipeTypes.SoulExtractor, items);
      if (recipe) {
        this.recipe = recipe.id;
        return recipe;
      }
    }
    return void 0;
  }
};

// scripts/components/block/soul-extractor.ts
var SoulExtractorBlockComponent = {
  beforeOnPlayerPlace({ block: block2, dimension }) {
    system19.run(() => {
      dimension.spawnEntity("ftb_ma:soul_extractor" /* SoulExtractor */, block2.center());
    });
  },
  onPlayerBreak({ block: block2 }) {
    handleMachineDestroyed(block2, "ftb_ma:soul_extractor" /* SoulExtractor */, "Soul Extractor");
  },
  onPlayerInteract({ block: block2, face, player }) {
    if (!player) {
      return;
    }
    SoulExtractorInteractionHandler.run(player, block2, face);
  },
  onPlace({ block: block2, dimension }) {
    const entity = getEntityAtLocation(dimension, block2.center(), "ftb_ma:soul_extractor" /* SoulExtractor */);
    if (entity) {
      const direction = block2.permutation.getState("minecraft:cardinal_direction");
      setMachineDisplayRotation(entity, direction);
    }
  },
  onTick({ block: block2 }) {
    SoulExtractorTickHandler.run(block2);
  }
};

// scripts/components/block/soulium-spawner.ts
import { system as system20 } from "@minecraft/server";

// scripts/functions/machine/soulium-spawner.ts
var OPERATION_TIME5 = 200;
var SPAWN_RADIUS = 3;
var INPUT_SLOT_INDEX4 = 2;
var SouliumSpawnerInteractionHandler = class _SouliumSpawnerInteractionHandler extends MachineInteractionHandler {
  static run(player, block2, face) {
    const entity = getEntityAtLocation(block2.dimension, block2.center(), "ftb_ma:soulium_spawner" /* SouliumSpawner */);
    if (entity) {
      const handler = new _SouliumSpawnerInteractionHandler(player, block2, entity, face);
      handler.handleClick();
    }
  }
  handleClickFront() {
    const held = getMainhandItem(this.player);
    if (held) {
      if (isMachineUpgradeItem(held)) {
        addMachineUpgradeItemToMachine(this.entity, this.player, held);
      } else {
        if (isSouliumSpawnerInput(held)) {
          if (!addItemToMachineSlot(this.entity, this.player, INPUT_SLOT_INDEX4, held)) {
            removeItemFromMachineSlot(this.entity, this.player, INPUT_SLOT_INDEX4);
          }
        } else {
          removeItemFromMachineSlot(this.entity, this.player, INPUT_SLOT_INDEX4);
        }
      }
    } else {
      const current = getItemInInventory(this.entity, INPUT_SLOT_INDEX4);
      if (current) {
        removeItemFromMachineSlot(this.entity, this.player, INPUT_SLOT_INDEX4);
      }
      if (this.player.isSneaking) {
        removeMachineUpgradeItemFromMachine(this.entity, this.player);
      }
    }
  }
  handleClickLeft() {
    const held = getMainhandItem(this.player);
    if (held && addFuelItemToMachine(this.entity, this.player, held)) {
      return;
    }
    removeFuelItemFromMachine(this.entity, this.player);
  }
};
var SouliumSpawnerTickHandler = class _SouliumSpawnerTickHandler extends MachineTickHandler {
  get area() {
    return Math.pow(SPAWN_RADIUS * 2 + 1, 2);
  }
  static run(block2) {
    const entity = getEntityAtLocation(block2.dimension, block2.center(), "ftb_ma:soulium_spawner" /* SouliumSpawner */);
    if (entity) {
      const inventory = getEntityInventory(entity);
      if (inventory) {
        const handler = new _SouliumSpawnerTickHandler(block2, entity, inventory, OPERATION_TIME5);
        handler.handleFuelUsage();
        handler.tick();
        handler.handleRunningStatus();
      }
    }
  }
  tick() {
    if (this.fuelLeft <= 0) {
      this.reset();
      return;
    }
    if (this.hasRedstoneSignal()) {
      this.running = false;
      return;
    }
    const input = this.inventory.getItem(INPUT_SLOT_INDEX4);
    if (this.canTick(20)) {
      handleMachineInput(this.entity, INPUT_SLOT_INDEX4, this.block.above(), isSouliumSpawnerInput, input);
    }
    if (input) {
      const recipe = this.getActiveRecipe(input);
      if (recipe) {
        this.setRequirement(input.amount, recipe.input.count);
        if (input.amount >= recipe.input.count) {
          this.running = true;
          this.progress++;
          this.fuelLeft--;
          if (this.progress >= this.operationTime) {
            if (this.spawn(recipe.getRandomEntity())) {
              this.inventory.setItem(INPUT_SLOT_INDEX4, shrink(input, recipe.input.count));
              this.progress = 0;
              this.sendSpawnParticles();
            } else {
              this.progress = 0;
            }
          } else {
            this.sendRunningParticles();
          }
        } else {
          this.reset(false);
        }
      } else {
        this.reset();
      }
    } else {
      this.reset();
    }
  }
  spawn(entity) {
    const dimension = this.block.dimension;
    const entities = dimension.getEntities({
      type: entity,
      location: this.block.center(),
      volume: {
        x: SPAWN_RADIUS * 2,
        y: SPAWN_RADIUS * 2,
        z: SPAWN_RADIUS * 2
      }
    });
    if (entities.length >= 32) {
      return false;
    }
    let location = this.findSpawnLocation();
    let attempts = 20;
    while (attempts-- > 0 && !this.canSpawnEntity(location)) {
      location = this.findSpawnLocation();
    }
    if (attempts <= 0) {
      return false;
    }
    dimension.spawnEntity(entity, location);
    return true;
  }
  canSpawnEntity(location) {
    for (let y = 1; y <= 3; y++) {
      const block2 = this.block.dimension.getBlock(Vector3Utils.add(location, { x: 0, y, z: 0 }));
      if (block2 && !block2.isAir) {
        return false;
      }
    }
    return true;
  }
  findSpawnLocation() {
    const size = SPAWN_RADIUS * 2 + 1;
    const index = randInt(0, this.area);
    const xOffset = Math.trunc(index % size) - SPAWN_RADIUS;
    const zOffset = Math.trunc(index / size) - SPAWN_RADIUS;
    const center = this.block.center();
    return {
      x: center.x + xOffset,
      y: center.y,
      z: center.z + zOffset
    };
  }
  sendRunningParticles() {
    const location = Vector3Utils.add(this.block.location, {
      x: Math.random() / 2 + 0.25,
      y: Math.random() / 2 + 0.25,
      z: Math.random() / 2 + 0.25
    });
    this.block.dimension.spawnParticle("minecraft:basic_flame_particle", location);
  }
  sendSpawnParticles() {
    for (let i = 0; i < 20; i++) {
      this.block.dimension.spawnParticle(
        "minecraft:basic_flame_particle",
        Vector3Utils.add(this.block.location, { x: Math.random(), y: Math.random(), z: Math.random() })
      );
    }
  }
  getActiveRecipe(input) {
    const items = [input];
    if (this.recipe) {
      const recipe = SpecialRecipes2.Registry.getById(this.recipe);
      if (recipe instanceof SouliumSpawnerRecipe && recipe.matches(items)) {
        return recipe;
      } else {
        this.recipe = void 0;
      }
    }
    if (!this.recipe) {
      const recipe = SpecialRecipes2.Registry.find(RecipeTypes.SouliumSpawner, items);
      if (recipe) {
        this.recipe = recipe.id;
        return recipe;
      }
    }
    return void 0;
  }
};

// scripts/components/block/soulium-spawner.ts
var SouliumSpawnerBlockComponent = {
  beforeOnPlayerPlace({ block: block2, dimension }) {
    system20.run(() => {
      dimension.spawnEntity("ftb_ma:soulium_spawner" /* SouliumSpawner */, block2.center());
    });
  },
  onPlayerBreak({ block: block2 }) {
    handleMachineDestroyed(block2, "ftb_ma:soulium_spawner" /* SouliumSpawner */, "Soulium Spawner");
  },
  onPlayerInteract({ block: block2, face, player }) {
    if (!player) {
      return;
    }
    SouliumSpawnerInteractionHandler.run(player, block2, face);
  },
  onPlace({ block: block2, dimension }) {
    const entity = getEntityAtLocation(dimension, block2.center(), "ftb_ma:soulium_spawner" /* SouliumSpawner */);
    if (entity) {
      const direction = block2.permutation.getState("minecraft:cardinal_direction");
      setMachineDisplayRotation(entity, direction);
    }
  },
  onTick({ block: block2 }) {
    SouliumSpawnerTickHandler.run(block2);
  }
};

// scripts/components/block/tinkering-table.ts
import { Direction as Direction6, system as system21 } from "@minecraft/server";
var FACE_SELECTION_PANES = new FaceSelectionPlains(
  { origin: [0, 0], size: [10, 16], name: "tinkerable" },
  { origin: [10, 0], size: [6, 8], name: "augment_1" },
  { origin: [10, 8], size: [6, 8], name: "augment_2" }
);
var TinkeringTableBlockComponent = {
  beforeOnPlayerPlace({ block: block2, dimension }) {
    system21.run(() => {
      dimension.spawnEntity("ftb_ma:tinkering_table_tinkerable" /* TinkeringTableTinkerable */, block2.center());
      dimension.spawnEntity("ftb_ma:tinkering_table_augments" /* TinkeringTableAugments */, block2.center());
    });
  },
  onPlayerBreak({ block: block2 }) {
    handleTinkeringTableDestroyed(block2);
  },
  onPlayerInteract({ block: block2, face, faceLocation, player }) {
    if (!player) {
      return;
    }
    const tinkerableDisplayEntity = getTinkerableDisplayEntity(block2);
    const augmentsDisplayEntity = getAugmentsDisplayEntity(block2);
    if (!tinkerableDisplayEntity || !augmentsDisplayEntity) {
      return;
    }
    const context = new TinkeringTableContext(player, block2, tinkerableDisplayEntity, augmentsDisplayEntity);
    const tinkerableInTable = getMainhandItemDisplayItem(tinkerableDisplayEntity);
    const item = getMainhandItem(player);
    if (faceLocation && face === Direction6.Up) {
      const relativeFaceLocation = {
        x: faceLocation.x,
        y: faceLocation.y,
        z: faceLocation.z
      };
      const direction = block2.permutation.getState("minecraft:cardinal_direction");
      if (direction === "east" || direction === "west") {
        relativeFaceLocation.x = faceLocation.z;
        relativeFaceLocation.z = faceLocation.x;
      }
      const selection = FACE_SELECTION_PANES.getSelected(
        {
          face,
          faceLocation: relativeFaceLocation
        },
        {
          invertU: direction === "south" || direction === "west",
          invertV: direction === "south" || direction === "east"
        }
      );
      switch (selection) {
        case "tinkerable":
          if (!tinkerableInTable && item) {
            const tinkerable = getTinkerable(item);
            if (tinkerable) {
              addTinkerableItemToTable(context, item);
              return;
            }
          } else {
            removeTinkerableItemFromTable(context);
          }
          break;
        case "augment_1":
          if (item && isAugmentItem(item.typeId) && addAugmentItemToTable(context, 0, item)) {
            return;
          }
          removeAugmentFromTable(context, 0);
          break;
        case "augment_2":
          if (item && isAugmentItem(item.typeId) && addAugmentItemToTable(context, 1, item)) {
            return;
          }
          removeAugmentFromTable(context, 1);
          break;
        default:
          break;
      }
    }
    if (player.isSneaking) {
      if (!tinkerableInTable) {
        return;
      }
      removeTinkerableItemFromTable(context);
      return;
    }
  },
  onPlace({ block: block2, dimension }) {
    const tinkerable = getEntityAtLocation(dimension, block2.center(), "ftb_ma:tinkering_table_tinkerable" /* TinkeringTableTinkerable */);
    if (tinkerable) {
      const direction = block2.permutation.getState("minecraft:cardinal_direction");
      setItemDisplayRotation(tinkerable, direction);
    }
    const augments = getEntityAtLocation(dimension, block2.center(), "ftb_ma:tinkering_table_augments" /* TinkeringTableAugments */);
    if (augments) {
      const direction = block2.permutation.getState("minecraft:cardinal_direction");
      setItemDisplayRotation(augments, direction);
    }
  }
};

// scripts/components/item/digger.ts
import { Player as Player12 } from "@minecraft/server";
var DiggerItemComponent = {
  onMineBlock({ block: block2, itemStack, minedBlockPermutation, source }) {
    if (!itemStack) {
      return;
    }
    if (!hasToolDestructibleTag(minedBlockPermutation) && !isDestructibleBlockWithoutTag(minedBlockPermutation)) {
      return;
    }
    if (source instanceof Player12 && !isCreativeMode(source)) {
      const result = damageMainhandItem(itemStack, source, 1);
      if (!result) {
        block2.dimension.playSound("random.break", source.location);
        return;
      }
    }
  }
};

// scripts/components/item/essence.ts
import { Player as Player13 } from "@minecraft/server";
var EssenceItemComponent = {
  onUseOn({ block: block2, itemStack, source }) {
    if (source && source instanceof Player13) {
      convertFarmlandToEssenceFarmland(block2, itemStack, source);
    }
  }
};

// scripts/components/item/experience-droplet.ts
var ExperienceDropletItemComponent = {
  onUse({ itemStack, source }) {
    if (!itemStack) {
      return;
    }
    let used = 0;
    if (source.isSneaking) {
      let xp = 0;
      for (let i = 0; i < itemStack.amount; i++) {
        xp += Math.floor(Math.random() * (12 - 8)) + 8;
      }
      source.addExperience(xp);
      used = itemStack.amount;
    } else {
      const xp = Math.floor(Math.random() * (12 - 8)) + 8;
      source.addExperience(xp);
      used = 1;
    }
    source.dimension.playSound("random.orb", source.location);
    if (!isCreativeMode(source)) {
      shrinkMainhandItem(source, itemStack, used);
    }
  }
};

// scripts/components/item/fertilized-essence.ts
import { Player as Player14 } from "@minecraft/server";
var FertilizedEssenceItemComponent = {
  onUseOn({ block: block2, itemStack, source }) {
    if (fertilizeCrop(block2)) {
      block2.dimension.playSound("item.bone_meal.use", block2.location);
      spawnGrowthParticles(block2);
      if (source instanceof Player14 && !isCreativeMode(source)) {
        shrinkMainhandItem(source, itemStack, 1);
      }
    }
  }
};

// scripts/components/item/mystical-fertilizer.ts
import { Player as Player15 } from "@minecraft/server";
var MysticalFertilizerItemComponent = {
  onUseOn({ block: block2, itemStack, source }) {
    const fullyGrownPermutation = getFullyGrownPermutation(block2);
    if (fullyGrownPermutation && block2.permutation !== fullyGrownPermutation) {
      block2.setPermutation(fullyGrownPermutation);
      block2.dimension.playSound("item.bone_meal.use", block2.location);
      spawnGrowthParticles(block2);
      if (source instanceof Player15 && !isCreativeMode(source)) {
        shrinkMainhandItem(source, itemStack, 1);
      }
    }
  }
};

// scripts/components/item/scythe.ts
import { BlockVolume as BlockVolume2, Player as Player16 } from "@minecraft/server";
var STATS = /* @__PURE__ */ new Map([
  ["ftb_ma:wooden_scythe" /* WoodenScythe */, { range: 1, damage: 3 }],
  ["ftb_ma:stone_scythe" /* StoneScythe */, { range: 1, damage: 4 }],
  ["ftb_ma:iron_scythe" /* IronScythe */, { range: 1, damage: 5 }],
  ["ftb_ma:golden_scythe" /* GoldenScythe */, { range: 1, damage: 3 }],
  ["ftb_ma:diamond_scythe" /* DiamondScythe */, { range: 2, damage: 6 }],
  ["ftb_ma:netherite_scythe" /* NetheriteScythe */, { range: 2, damage: 7 }],
  ["ftb_ma:inferium_scythe" /* InferiumScythe */, { range: 2, damage: 7 }],
  ["ftb_ma:prudentium_scythe" /* PrudentiumScythe */, { range: 3, damage: 9 }],
  ["ftb_ma:tertium_scythe" /* TertiumScythe */, { range: 4, damage: 12 }],
  ["ftb_ma:imperium_scythe" /* ImperiumScythe */, { range: 5, damage: 16 }],
  ["ftb_ma:supremium_scythe" /* SupremiumScythe */, { range: 6, damage: 23 }],
  ["ftb_ma:awakened_supremium_scythe" /* AwakenedSupremiumScythe */, { range: 7, damage: 28 }]
]);
var ScytheItemComponent = {
  onUseOn({ block: block2, itemStack, source }) {
    const dimension = source.dimension;
    const range = STATS.get(itemStack.typeId)?.range ?? 0;
    const offset = {
      x: range,
      y: 1,
      z: range
    };
    const volume = new BlockVolume2(
      Vector3Utils.subtract(block2.location, offset),
      Vector3Utils.add(block2.location, offset)
    );
    const blocks = dimension.getBlocks(volume, {
      excludeTypes: [MinecraftBlockTypes.Air]
    });
    for (const aoeLocation of blocks.getBlockLocationIterator()) {
      const aoeBlock = dimension.getBlock(aoeLocation);
      if (!aoeBlock || !isGrowableBlock(aoeBlock)) {
        continue;
      }
      if (isFullyGrown(aoeBlock)) {
        const drops = harvestCrop(aoeBlock);
        for (const drop of drops) {
          dimension.spawnItem(drop, Vector3Utils.add(aoeLocation, { x: 0.5, y: 0.5, z: 0.5 }));
        }
        if (source instanceof Player16 && !isCreativeMode(source)) {
          const result = damageMainhandItem(itemStack, source, 1);
          if (!result) {
            block2.dimension.playSound("random.break", source.location);
            return;
          }
        }
      }
    }
  },
  onHitEntity({ hitEntity, itemStack }) {
    if (!itemStack) {
      return;
    }
    const dimension = hitEntity.dimension;
    const stats = STATS.get(itemStack.typeId);
    const range = stats?.range ?? 0;
    const entities = dimension.getEntities({
      location: hitEntity.location,
      families: ["mob"],
      maxDistance: range
    });
    const damage = stats?.damage ?? 0;
    for (const entity of entities) {
      entity.applyDamage(damage);
    }
  }
};

// scripts/components/item/sickle.ts
import { BlockVolume as BlockVolume3, Player as Player17 } from "@minecraft/server";
var RANGES2 = /* @__PURE__ */ new Map([
  ["ftb_ma:wooden_sickle" /* WoodenSickle */, 1],
  ["ftb_ma:stone_sickle" /* StoneSickle */, 1],
  ["ftb_ma:iron_sickle" /* IronSickle */, 1],
  ["ftb_ma:golden_sickle" /* GoldenSickle */, 1],
  ["ftb_ma:diamond_sickle" /* DiamondSickle */, 2],
  ["ftb_ma:netherite_sickle" /* NetheriteSickle */, 2],
  ["ftb_ma:inferium_sickle" /* InferiumSickle */, 2],
  ["ftb_ma:prudentium_sickle" /* PrudentiumSickle */, 3],
  ["ftb_ma:tertium_sickle" /* TertiumSickle */, 4],
  ["ftb_ma:imperium_sickle" /* ImperiumSickle */, 5],
  ["ftb_ma:supremium_sickle" /* SupremiumSickle */, 6],
  ["ftb_ma:awakened_supremium_sickle" /* AwakenedSupremiumSickle */, 7]
]);
var SickleItemComponent = {
  onMineBlock({ block: block2, itemStack, source }) {
    const player = source instanceof Player17 ? source : void 0;
    if (!player) {
      return;
    }
    if (!itemStack) {
      return;
    }
    const dimension = player.dimension;
    const range = RANGES2.get(itemStack.typeId) ?? 1;
    const offset = {
      x: range,
      y: range,
      z: range
    };
    const volume = new BlockVolume3(
      Vector3Utils.subtract(block2.location, offset),
      Vector3Utils.add(block2.location, offset)
    );
    const blocks = dimension.getBlocks(volume, {
      includeTags: SICKLE_DESTRUCTIBLE_TAGS,
      includeTypes: SICKLE_DESTRUCTIBLE_BLOCKS
    });
    blocks.remove([block2.location]);
    for (const aoeLocation of blocks.getBlockLocationIterator()) {
      breakBlock(aoeLocation, player);
      if (!isCreativeMode(player)) {
        const result = damageMainhandItem(itemStack, player, 1);
        if (!result) {
          block2.dimension.playSound("random.break", source.location);
          return;
        }
      }
    }
  }
};

// scripts/components/item/tinkerable.ts
var TinkerableOnHitEntityItemComponent = {
  onHitEntity({ attackingEntity, hitEntity, itemStack }) {
    if (!itemStack) {
      return;
    }
    const augments = getAugments(itemStack);
    for (const augment of augments) {
      augment.onHitEntity(hitEntity, attackingEntity, itemStack);
    }
  }
};

// scripts/components/item/watering-can.ts
import { Player as Player19 } from "@minecraft/server";

// scripts/functions/watering-cans.ts
import { BlockVolume as BlockVolume4, ItemStack as ItemStack20, MolangVariableMap, world as world5 } from "@minecraft/server";
var WATERING_CANS = /* @__PURE__ */ new Map([
  ["ftb_ma:watering_can" /* WateringCan */, { range: 1, auto: false }],
  ["ftb_ma:inferium_watering_can" /* InferiumWateringCan */, { range: 1, auto: false, altItem: "ftb_ma:inferium_auto_watering_can" /* InferiumAutoWateringCan */ }],
  ["ftb_ma:inferium_auto_watering_can" /* InferiumAutoWateringCan */, { range: 1, auto: true, altItem: "ftb_ma:inferium_watering_can" /* InferiumWateringCan */ }],
  ["ftb_ma:prudentium_watering_can" /* PrudentiumWateringCan */, { range: 2, auto: false, altItem: "ftb_ma:prudentium_auto_watering_can" /* PrudentiumAutoWateringCan */ }],
  ["ftb_ma:prudentium_auto_watering_can" /* PrudentiumAutoWateringCan */, { range: 2, auto: true, altItem: "ftb_ma:prudentium_watering_can" /* PrudentiumWateringCan */ }],
  ["ftb_ma:tertium_watering_can" /* TertiumWateringCan */, { range: 3, auto: false, altItem: "ftb_ma:tertium_auto_watering_can" /* TertiumAutoWateringCan */ }],
  ["ftb_ma:tertium_auto_watering_can" /* TertiumAutoWateringCan */, { range: 3, auto: true, altItem: "ftb_ma:tertium_watering_can" /* TertiumWateringCan */ }],
  ["ftb_ma:imperium_watering_can" /* ImperiumWateringCan */, { range: 4, auto: false, altItem: "ftb_ma:imperium_auto_watering_can" /* ImperiumAutoWateringCan */ }],
  ["ftb_ma:imperium_auto_watering_can" /* ImperiumAutoWateringCan */, { range: 4, auto: true, altItem: "ftb_ma:imperium_watering_can" /* ImperiumWateringCan */ }],
  ["ftb_ma:supremium_watering_can" /* SupremiumWateringCan */, { range: 5, auto: false, altItem: "ftb_ma:supremium_auto_watering_can" /* SupremiumAutoWateringCan */ }],
  ["ftb_ma:supremium_auto_watering_can" /* SupremiumAutoWateringCan */, { range: 5, auto: true, altItem: "ftb_ma:supremium_watering_can" /* SupremiumWateringCan */ }],
  ["ftb_ma:awakened_supremium_watering_can" /* AwakenedSupremiumWateringCan */, { range: 6, auto: false, altItem: "ftb_ma:awakened_supremium_auto_watering_can" /* AwakenedSupremiumAutoWateringCan */ }],
  ["ftb_ma:awakened_supremium_auto_watering_can" /* AwakenedSupremiumAutoWateringCan */, { range: 6, auto: true, altItem: "ftb_ma:awakened_supremium_watering_can" /* AwakenedSupremiumWateringCan */ }]
]);
var WATERING_CAN_COOLDOWN_CATEGORY = createIdentifier("watering_can");
var WATERING_CAN_COOLDOWN_TICKS = 5;
var GROWTH_TICK_CHANCE2 = 0.25;
function handleWatering(block2, player, stack) {
  const info = WATERING_CANS.get(stack.typeId);
  if (!info) {
    return;
  }
  if (!player || player.getItemCooldown(WATERING_CAN_COOLDOWN_CATEGORY) > 0) {
    return;
  }
  player.startItemCooldown(WATERING_CAN_COOLDOWN_CATEGORY, WATERING_CAN_COOLDOWN_TICKS);
  const dimension = player.dimension;
  const offset = {
    x: info.range,
    y: 1,
    z: info.range
  };
  const volume = new BlockVolume4(
    Vector3Utils.subtract(block2.location, offset),
    Vector3Utils.add(block2.location, offset)
  );
  const blocks = dimension.getBlocks(volume, {
    excludeTypes: [MinecraftBlockTypes.Air]
  });
  const waterVariables = new MolangVariableMap();
  waterVariables.setVector3("direction", VECTOR3_DOWN);
  for (const aoeLocation of blocks.getBlockLocationIterator()) {
    dimension.spawnParticle(
      "minecraft:water_splash_particle_manual",
      Vector3Utils.add(aoeLocation, {
        x: Math.random(),
        y: 0.5,
        z: Math.random()
      }),
      waterVariables
    );
    const aoeBlock = dimension.getBlock(aoeLocation);
    if (!aoeBlock) {
      continue;
    }
    if (aoeBlock.typeId === MinecraftBlockTypes.Farmland) {
      aoeBlock.setPermutation(aoeBlock.permutation.withState("moisturized_amount", 7));
      return;
    }
    if (isGrowableBlock(aoeBlock) && Math.random() < GROWTH_TICK_CHANCE2 && tickCropGrowth(aoeBlock)) {
      spawnGrowthParticles(aoeBlock);
    }
  }
}
function handleManualWatering(block2, player, stack) {
  if (!stack) {
    return;
  }
  const info = WATERING_CANS.get(stack.typeId);
  if (!info || info.auto) {
    return;
  }
  handleWatering(block2, player, stack);
}
function handleAutoWateringCanTick() {
  for (const player of world5.getAllPlayers()) {
    const stack = getMainhandItem(player);
    if (!stack) {
      return;
    }
    const info = WATERING_CANS.get(stack.typeId);
    if (!info || !info.auto) {
      return;
    }
    const hitResult = player.getBlockFromViewDirection({
      maxDistance: 8
    });
    if (!hitResult) {
      return;
    }
    handleWatering(hitResult.block, player, stack);
  }
}
function handleWateringCanToggle(player, stack) {
  if (!stack || !player.isSneaking) {
    return;
  }
  const info = WATERING_CANS.get(stack.typeId);
  if (!info || !info.altItem) {
    return;
  }
  const hitResult = player.getBlockFromViewDirection({
    maxDistance: 8
  });
  if (!hitResult) {
    setMainhandItem(player, new ItemStack20(info.altItem));
  }
}

// scripts/components/item/watering-can.ts
var WateringCanItemComponent = {
  onUse({ source, itemStack }) {
    if (source instanceof Player19) {
      handleWateringCanToggle(source, itemStack);
    }
  },
  onUseOn({ block: block2, itemStack, source }) {
    if (source instanceof Player19) {
      handleManualWatering(block2, source, itemStack);
    }
  }
};

// scripts/functions/mob-drops.ts
import { ItemStack as ItemStack21 } from "@minecraft/server";
var INFERIUM_ESSENCE_DROP_CHANCE = 0.2;
var TINKERABLE_ESSENCE_DROP_RANGE_WITHER = [1, 3];
var TINKERABLE_ESSENCE_DROP_RANGE_ENDER_DRAGON = [2, 4];
var COGNIZANT_DUST_COUNT_FROM_WITHER = 8;
var COGNIZANT_DUST_COUNT_FROM_ENDER_DRAGON = 16;
function handleMobDrops(entity, killer) {
  if (entity.isValid && entity.matches({ families: ["mob"] })) {
    if (Math.random() < INFERIUM_ESSENCE_DROP_CHANCE) {
      entity.dimension.spawnItem(new ItemStack21("ftb_ma:inferium_essence" /* InferiumEssence */), entity.location);
    }
  }
  if (!killer) {
    return;
  }
  const item = getMainhandItem(killer);
  if (!item) {
    return;
  }
  const tinkerable = getTinkerable(item);
  if (!tinkerable) {
    return;
  }
  const dimension = killer.dimension;
  if (entity.typeId === MinecraftEntityTypes.Wither) {
    const essence = getEssenceDropsForTinkerable(tinkerable, TINKERABLE_ESSENCE_DROP_RANGE_WITHER);
    if (essence) {
      dimension.spawnItem(essence, killer.location);
    }
    dimension.spawnItem(new ItemStack21("ftb_ma:cognizant_dust" /* CognizantDust */, COGNIZANT_DUST_COUNT_FROM_WITHER), killer.location);
  }
  if (entity.typeId === MinecraftEntityTypes.EnderDragon) {
    const essence = getEssenceDropsForTinkerable(tinkerable, TINKERABLE_ESSENCE_DROP_RANGE_ENDER_DRAGON);
    if (essence) {
      dimension.spawnItem(essence, killer.location);
    }
    dimension.spawnItem(
      new ItemStack21("ftb_ma:cognizant_dust" /* CognizantDust */, COGNIZANT_DUST_COUNT_FROM_ENDER_DRAGON),
      killer.location
    );
  }
}
function getEssenceDropsForTinkerable(tinkerable, [min, max]) {
  switch (tinkerable.tier) {
    case 1:
      return new ItemStack21("ftb_ma:inferium_essence" /* InferiumEssence */, randIntInclusive(min, max));
    case 2:
      return new ItemStack21("ftb_ma:prudentium_essence" /* PrudentiumEssence */, randIntInclusive(min, max));
    case 3:
      return new ItemStack21("ftb_ma:tertium_essence" /* TertiumEssence */, randIntInclusive(min, max));
    case 4:
      return new ItemStack21("ftb_ma:imperium_essence" /* ImperiumEssence */, randIntInclusive(min, max));
    case 5:
      return new ItemStack21("ftb_ma:supremium_essence" /* SupremiumEssence */, randIntInclusive(min, max));
    default:
      return void 0;
  }
}

// scripts/functions/mob-souls.ts
import { ItemStack as ItemStack22, Player as Player20 } from "@minecraft/server";
var DROPS = /* @__PURE__ */ new Map([
  [MinecraftEntityTypes.Pig, "ftb_ma:pig_soul" /* PigSoul */],
  [MinecraftEntityTypes.Chicken, "ftb_ma:chicken_soul" /* ChickenSoul */],
  [MinecraftEntityTypes.Cow, "ftb_ma:cow_soul" /* CowSoul */],
  [MinecraftEntityTypes.Sheep, "ftb_ma:sheep_soul" /* SheepSoul */],
  [MinecraftEntityTypes.Squid, "ftb_ma:squid_soul" /* SquidSoul */],
  [MinecraftEntityTypes.Cod, "ftb_ma:fish_soul" /* FishSoul */],
  [MinecraftEntityTypes.Salmon, "ftb_ma:fish_soul" /* FishSoul */],
  [MinecraftEntityTypes.Tropicalfish, "ftb_ma:fish_soul" /* FishSoul */],
  [MinecraftEntityTypes.Pufferfish, "ftb_ma:fish_soul" /* FishSoul */],
  [MinecraftEntityTypes.Slime, "ftb_ma:slime_soul" /* SlimeSoul */],
  [MinecraftEntityTypes.Turtle, "ftb_ma:turtle_soul" /* TurtleSoul */],
  [MinecraftEntityTypes.Armadillo, "ftb_ma:armadillo_soul" /* ArmadilloSoul */],
  [MinecraftEntityTypes.Zombie, "ftb_ma:zombie_soul" /* ZombieSoul */],
  [MinecraftEntityTypes.ZombieVillager, "ftb_ma:zombie_soul" /* ZombieSoul */],
  [MinecraftEntityTypes.ZombieVillagerV2, "ftb_ma:zombie_soul" /* ZombieSoul */],
  [MinecraftEntityTypes.Husk, "ftb_ma:zombie_soul" /* ZombieSoul */],
  [MinecraftEntityTypes.Drowned, "ftb_ma:zombie_soul" /* ZombieSoul */],
  [MinecraftEntityTypes.Skeleton, "ftb_ma:skeleton_soul" /* SkeletonSoul */],
  [MinecraftEntityTypes.Stray, "ftb_ma:skeleton_soul" /* SkeletonSoul */],
  [MinecraftEntityTypes.Creeper, "ftb_ma:creeper_soul" /* CreeperSoul */],
  [MinecraftEntityTypes.Spider, "ftb_ma:spider_soul" /* SpiderSoul */],
  [MinecraftEntityTypes.CaveSpider, "ftb_ma:spider_soul" /* SpiderSoul */],
  [MinecraftEntityTypes.Rabbit, "ftb_ma:rabbit_soul" /* RabbitSoul */],
  [MinecraftEntityTypes.Breeze, "ftb_ma:breeze_soul" /* BreezeSoul */],
  [MinecraftEntityTypes.Blaze, "ftb_ma:blaze_soul" /* BlazeSoul */],
  [MinecraftEntityTypes.Ghast, "ftb_ma:ghast_soul" /* GhastSoul */],
  [MinecraftEntityTypes.Enderman, "ftb_ma:enderman_soul" /* EndermanSoul */],
  [MinecraftEntityTypes.WitherSkeleton, "ftb_ma:wither_skeleton_soul" /* WitherSkeletonSoul */]
]);
function handleMobSouls(entity, attacker) {
  if (attacker instanceof Player20 && hasSouliumDagger(attacker)) {
    const drop = DROPS.get(entity.typeId);
    if (drop) {
      entity.dimension.spawnItem(new ItemStack22(drop), entity.location);
    }
  }
}
function hasSouliumDagger(player) {
  return getMainhandItem(player)?.typeId === "ftb_ma:soulium_dagger" /* SouliumDagger */;
}

// scripts/functions/shears.ts
import {
  Direction as Direction7,
  EntityComponentTypes as EntityComponentTypes4,
  ItemStack as ItemStack23,
  system as system22
} from "@minecraft/server";
var SHEARS = [
  "ftb_ma:inferium_shears" /* InferiumShears */,
  "ftb_ma:prudentium_shears" /* PrudentiumShears */,
  "ftb_ma:tertium_shears" /* TertiumShears */,
  "ftb_ma:imperium_shears" /* ImperiumShears */,
  "ftb_ma:supremium_shears" /* SupremiumShears */,
  "ftb_ma:awakened_supremium_shears" /* AwakenedSupremiumShears */
];
var SHEARS_SET = new Set(SHEARS);
var SHEARABLE_BLOCKS = /* @__PURE__ */ new Map([
  [MinecraftBlockTypes.Web, void 0],
  [MinecraftBlockTypes.Deadbush, void 0],
  [MinecraftBlockTypes.Fern, void 0],
  [MinecraftBlockTypes.GlowLichen, void 0],
  [MinecraftBlockTypes.HangingRoots, void 0],
  [MinecraftBlockTypes.LargeFern, () => new ItemStack23(MinecraftBlockTypes.Fern, 2)],
  [MinecraftBlockTypes.OakLeaves, void 0],
  [MinecraftBlockTypes.SpruceLeaves, void 0],
  [MinecraftBlockTypes.BirchLeaves, void 0],
  [MinecraftBlockTypes.JungleLeaves, void 0],
  [MinecraftBlockTypes.AcaciaLeaves, void 0],
  [MinecraftBlockTypes.DarkOakLeaves, void 0],
  [MinecraftBlockTypes.MangroveLeaves, void 0],
  [MinecraftBlockTypes.CherryLeaves, void 0],
  [MinecraftBlockTypes.PaleOakLeaves, void 0],
  [MinecraftBlockTypes.AzaleaLeaves, void 0],
  [MinecraftBlockTypes.AzaleaLeavesFlowered, void 0],
  [MinecraftBlockTypes.NetherSprouts, void 0],
  [MinecraftBlockTypes.PaleHangingMoss, void 0],
  [MinecraftBlockTypes.Seagrass, void 0],
  [MinecraftBlockTypes.ShortGrass, void 0],
  [MinecraftBlockTypes.TallGrass, () => new ItemStack23(MinecraftBlockTypes.ShortGrass, 2)],
  [MinecraftBlockTypes.TripWire, void 0],
  [MinecraftBlockTypes.TwistingVines, void 0],
  [MinecraftBlockTypes.Vine, void 0],
  [MinecraftBlockTypes.WeepingVines, void 0],
  // wools
  // these are a special case where the drops should not be handled
  [MinecraftBlockTypes.WhiteWool, () => new ItemStack23(MinecraftBlockTypes.Air)],
  [MinecraftBlockTypes.LightGrayWool, () => new ItemStack23(MinecraftBlockTypes.Air)],
  [MinecraftBlockTypes.GrayWool, () => new ItemStack23(MinecraftBlockTypes.Air)],
  [MinecraftBlockTypes.BlackWool, () => new ItemStack23(MinecraftBlockTypes.Air)],
  [MinecraftBlockTypes.BrownWool, () => new ItemStack23(MinecraftBlockTypes.Air)],
  [MinecraftBlockTypes.RedWool, () => new ItemStack23(MinecraftBlockTypes.Air)],
  [MinecraftBlockTypes.OrangeWool, () => new ItemStack23(MinecraftBlockTypes.Air)],
  [MinecraftBlockTypes.YellowWool, () => new ItemStack23(MinecraftBlockTypes.Air)],
  [MinecraftBlockTypes.LimeWool, () => new ItemStack23(MinecraftBlockTypes.Air)],
  [MinecraftBlockTypes.GreenWool, () => new ItemStack23(MinecraftBlockTypes.Air)],
  [MinecraftBlockTypes.CyanWool, () => new ItemStack23(MinecraftBlockTypes.Air)],
  [MinecraftBlockTypes.LightBlueWool, () => new ItemStack23(MinecraftBlockTypes.Air)],
  [MinecraftBlockTypes.BlueWool, () => new ItemStack23(MinecraftBlockTypes.Air)],
  [MinecraftBlockTypes.PurpleWool, () => new ItemStack23(MinecraftBlockTypes.Air)],
  [MinecraftBlockTypes.MagentaWool, () => new ItemStack23(MinecraftBlockTypes.Air)],
  [MinecraftBlockTypes.PinkWool, () => new ItemStack23(MinecraftBlockTypes.Air)]
]);
function handleShearingBlock(block2, player, stack) {
  if (!stack || !SHEARS_SET.has(stack.typeId)) {
    return false;
  }
  if (isCreativeMode(player)) {
    return false;
  }
  if (SHEARABLE_BLOCKS.has(block2.typeId)) {
    system22.run(() => {
      const shearable = SHEARABLE_BLOCKS.get(block2.typeId);
      const drop = shearable?.() ?? block2.getItemStack();
      removeBlock(block2.location, player, true);
      if (drop) {
        block2.dimension.spawnItem(drop, block2.center());
      }
      const result = damageMainhandItem(stack, player, 1);
      if (!result) {
        block2.dimension.playSound("random.break", player.location);
      }
    });
    return true;
  }
  return false;
}
function handleShearingEntity(entity, player, stack) {
  if (!stack || !SHEARS_SET.has(stack.typeId)) {
    return;
  }
  switch (entity.typeId) {
    case MinecraftEntityTypes.Sheep:
      handleShearingSheep(entity, player, stack);
      break;
    case MinecraftEntityTypes.Mooshroom:
      handleShearingMooshroom(entity, player, stack);
      break;
    case MinecraftEntityTypes.SnowGolem:
      handleShearingSnowGolem(entity, player, stack);
      break;
    case MinecraftEntityTypes.Bogged:
      handleShearingBogged(entity, player, stack);
      break;
    default:
      break;
  }
}
function handleShearingInteraction(block2, player, stack) {
  if (!stack || !SHEARS_SET.has(stack.typeId)) {
    return;
  }
  switch (block2.typeId) {
    case MinecraftBlockTypes.BeeNest:
    case MinecraftBlockTypes.Beehive:
      handleShearingBeehiveInteraction(block2, player, stack);
      break;
    case MinecraftBlockTypes.Pumpkin:
      handleShearingPumpkinInteraction(block2, player, stack);
      break;
    default:
      break;
  }
}
function getWoolForColor(color) {
  switch (color) {
    case 0:
      return new ItemStack23(MinecraftItemTypes.WhiteWool, randIntInclusive(1, 3));
    case 1:
      return new ItemStack23(MinecraftItemTypes.OrangeWool, randIntInclusive(1, 3));
    case 2:
      return new ItemStack23(MinecraftItemTypes.MagentaWool, randIntInclusive(1, 3));
    case 3:
      return new ItemStack23(MinecraftItemTypes.LightBlueWool, randIntInclusive(1, 3));
    case 4:
      return new ItemStack23(MinecraftItemTypes.YellowWool, randIntInclusive(1, 3));
    case 5:
      return new ItemStack23(MinecraftItemTypes.LimeWool, randIntInclusive(1, 3));
    case 6:
      return new ItemStack23(MinecraftItemTypes.PinkWool, randIntInclusive(1, 3));
    case 7:
      return new ItemStack23(MinecraftItemTypes.GrayWool, randIntInclusive(1, 3));
    case 8:
      return new ItemStack23(MinecraftItemTypes.LightGrayWool, randIntInclusive(1, 3));
    case 9:
      return new ItemStack23(MinecraftItemTypes.CyanWool, randIntInclusive(1, 3));
    case 10:
      return new ItemStack23(MinecraftItemTypes.PurpleWool, randIntInclusive(1, 3));
    case 11:
      return new ItemStack23(MinecraftItemTypes.BlueWool, randIntInclusive(1, 3));
    case 12:
      return new ItemStack23(MinecraftItemTypes.BrownWool, randIntInclusive(1, 3));
    case 13:
      return new ItemStack23(MinecraftItemTypes.GreenWool, randIntInclusive(1, 3));
    case 14:
      return new ItemStack23(MinecraftItemTypes.RedWool, randIntInclusive(1, 3));
    case 15:
      return new ItemStack23(MinecraftItemTypes.BlackWool, randIntInclusive(1, 3));
  }
}
function getMushroomsForVariant(variant) {
  switch (variant) {
    case 0:
      return new ItemStack23(MinecraftItemTypes.RedMushroom, 5);
    case 1:
      return new ItemStack23(MinecraftItemTypes.BrownMushroom, 5);
  }
}
function getMushroomsForBogged() {
  switch (randIntInclusive(0, 2)) {
    case 0:
      return [new ItemStack23(MinecraftItemTypes.RedMushroom, 2)];
    case 1:
      return [new ItemStack23(MinecraftItemTypes.BrownMushroom, 2)];
    case 3:
      return [new ItemStack23(MinecraftItemTypes.RedMushroom), new ItemStack23(MinecraftItemTypes.BrownMushroom)];
    default:
      return [new ItemStack23(MinecraftItemTypes.RedMushroom), new ItemStack23(MinecraftItemTypes.BrownMushroom)];
  }
}
function handleShearingSheep(entity, player, stack) {
  const isSheared = entity.getComponent(EntityComponentTypes4.IsSheared);
  if (isSheared) {
    return;
  }
  const color = entity.getComponent(EntityComponentTypes4.Color);
  if (!color) {
    return;
  }
  const drop = getWoolForColor(color.value);
  if (!drop) {
    return;
  }
  system22.run(() => {
    if (!isCreativeMode(player)) {
      const result = damageMainhandItem(stack, player, 1);
      if (!result) {
        entity.dimension.playSound("random.break", player.location);
      }
    }
    entity.triggerEvent("minecraft:on_sheared");
    entity.dimension.spawnItem(drop, entity.location);
    entity.dimension.playSound("mob.sheep.shear", entity.location);
  });
}
function handleShearingMooshroom(entity, player, stack) {
  const variant = entity.getComponent(EntityComponentTypes4.Variant);
  if (!variant) {
    return;
  }
  const drop = getMushroomsForVariant(variant.value);
  if (!drop) {
    return;
  }
  system22.run(() => {
    if (!isCreativeMode(player)) {
      const result = damageMainhandItem(stack, player, 1);
      if (!result) {
        entity.dimension.playSound("random.break", player.location);
      }
    }
    entity.triggerEvent("become_cow");
    entity.dimension.spawnItem(drop, entity.location);
    entity.dimension.playSound("mob.sheep.shear", entity.location);
  });
}
function handleShearingSnowGolem(entity, player, stack) {
  system22.run(() => {
    if (!isCreativeMode(player)) {
      const result = damageMainhandItem(stack, player, 1);
      if (!result) {
        entity.dimension.playSound("random.break", player.location);
      }
    }
    entity.triggerEvent("minecraft:on_sheared");
    entity.dimension.spawnItem(new ItemStack23(MinecraftItemTypes.CarvedPumpkin), entity.getHeadLocation());
    entity.dimension.playSound("mob.sheep.shear", entity.location);
  });
}
function handleShearingBogged(entity, player, stack) {
  system22.run(() => {
    if (!isCreativeMode(player)) {
      const result = damageMainhandItem(stack, player, 1);
      if (!result) {
        entity.dimension.playSound("random.break", player.location);
      }
    }
    entity.triggerEvent("be_sheared");
    const drops = getMushroomsForBogged();
    for (const drop of drops) {
      entity.dimension.spawnItem(drop, entity.getHeadLocation());
    }
    entity.dimension.playSound("mob.sheep.shear", entity.location);
  });
}
function handleShearingBeehiveInteraction(block2, player, stack) {
  if (block2.permutation.getState("honey_level") !== 5) {
    return;
  }
  system22.run(() => {
    if (!isCreativeMode(player)) {
      const result = damageMainhandItem(stack, player, 1);
      if (!result) {
        block2.dimension.playSound("random.break", player.location);
      }
    }
    block2.setPermutation(block2.permutation.withState("honey_level", 0));
    block2.dimension.spawnItem(
      new ItemStack23(MinecraftItemTypes.Honeycomb, 3),
      Vector3Utils.add(block2.center(), { x: 0, y: 0.5, z: 0 })
    );
    block2.dimension.playSound("block.beehive.shear", block2.location);
  });
}
function handleShearingPumpkinInteraction(block2, player, stack) {
  system22.run(() => {
    if (!isCreativeMode(player)) {
      const result = damageMainhandItem(stack, player, 1);
      if (!result) {
        block2.dimension.playSound("random.break", player.location);
      }
    }
    const hitResult = player.getBlockFromViewDirection();
    let face = hitResult?.face;
    if (face !== Direction7.North && face !== Direction7.South && face !== Direction7.East && face !== Direction7.West) {
      face = Direction7.North;
    }
    block2.setType(MinecraftBlockTypes.CarvedPumpkin);
    block2.setPermutation(block2.permutation.withState("minecraft:cardinal_direction", face.toLowerCase()));
    block2.dimension.spawnItem(
      new ItemStack23(MinecraftItemTypes.PumpkinSeeds),
      Vector3Utils.add(block2.center(), { x: 0, y: 0.5, z: 0 })
    );
    block2.dimension.playSound("pumpkin.carve", block2.location);
  });
}

// scripts/main.ts
system23.beforeEvents.startup.subscribe((event) => {
  event.blockComponentRegistry.registerCustomComponent("ftb_ma:awakening_altar" /* AwakeningAltar */, AwakeningAltarBlockComponent);
  event.blockComponentRegistry.registerCustomComponent("ftb_ma:crop" /* Crop */, CropBlockComponent);
  event.blockComponentRegistry.registerCustomComponent("ftb_ma:enchanter" /* Enchanter */, EnchanterBlockComponent);
  event.blockComponentRegistry.registerCustomComponent("ftb_ma:essence_vessel" /* EssenceVessel */, EssenceVesselBlockComponent);
  event.blockComponentRegistry.registerCustomComponent("ftb_ma:furnace" /* Furnace */, FurnaceBlockComponent);
  event.blockComponentRegistry.registerCustomComponent("ftb_ma:growth_accelerator" /* GrowthAccelerator */, GrowthAcceleratorBlockComponent);
  event.blockComponentRegistry.registerCustomComponent("ftb_ma:harvester" /* Harvester */, HarvesterBlockComponent);
  event.blockComponentRegistry.registerCustomComponent("ftb_ma:infusion_altar" /* InfusionAltar */, InfusionAltarBlockComponent);
  event.blockComponentRegistry.registerCustomComponent("ftb_ma:pedestal" /* Pedestal */, PedestalBlockComponent);
  event.blockComponentRegistry.registerCustomComponent("ftb_ma:seed_reprocessor" /* SeedReprocessor */, SeedReprocessorBlockComponent);
  event.blockComponentRegistry.registerCustomComponent("ftb_ma:soul_extractor" /* SoulExtractor */, SoulExtractorBlockComponent);
  event.blockComponentRegistry.registerCustomComponent("ftb_ma:soulium_spawner" /* SouliumSpawner */, SouliumSpawnerBlockComponent);
  event.blockComponentRegistry.registerCustomComponent("ftb_ma:tinkering_table" /* TinkeringTable */, TinkeringTableBlockComponent);
  event.itemComponentRegistry.registerCustomComponent("ftb_ma:digger" /* Digger */, DiggerItemComponent);
  event.itemComponentRegistry.registerCustomComponent("ftb_ma:essence" /* Essence */, EssenceItemComponent);
  event.itemComponentRegistry.registerCustomComponent("ftb_ma:experience_droplet" /* ExperienceDroplet */, ExperienceDropletItemComponent);
  event.itemComponentRegistry.registerCustomComponent("ftb_ma:fertilized_essence" /* FertilizedEssence */, FertilizedEssenceItemComponent);
  event.itemComponentRegistry.registerCustomComponent("ftb_ma:mystical_fertilizer" /* MysticalFertilizer */, MysticalFertilizerItemComponent);
  event.itemComponentRegistry.registerCustomComponent("ftb_ma:scythe" /* Scythe */, ScytheItemComponent);
  event.itemComponentRegistry.registerCustomComponent("ftb_ma:sickle" /* Sickle */, SickleItemComponent);
  event.itemComponentRegistry.registerCustomComponent("ftb_ma:tinkerable_on_hit_entity" /* TinkerableOnHitEntity */, TinkerableOnHitEntityItemComponent);
  event.itemComponentRegistry.registerCustomComponent("ftb_ma:watering_can" /* WateringCan */, WateringCanItemComponent);
});
world6.beforeEvents.playerBreakBlock.subscribe((event) => {
  if (handleShearingBlock(event.block, event.player, event.itemStack)) {
    event.cancel = true;
  }
  handleAugmentsBeforePlayerBreakBlock(event.block, event.player, event.itemStack);
});
world6.beforeEvents.playerInteractWithBlock.subscribe((event) => {
  if (handleToolInteraction(event.block, event.player, event.itemStack)) {
    event.cancel = true;
  }
  if (event.isFirstEvent) {
    handleShearingInteraction(event.block, event.player, event.itemStack);
  }
});
world6.beforeEvents.playerInteractWithEntity.subscribe((event) => {
  handleShearingEntity(event.target, event.player, event.itemStack);
});
world6.afterEvents.blockExplode.subscribe((event) => {
  handleBlockEntityDestroyed(event.block, event.explodedBlockPermutation);
});
world6.afterEvents.entityDie.subscribe((event) => {
  handleMobDrops(event.deadEntity, event.damageSource.damagingEntity);
  handleMobSouls(event.deadEntity, event.damageSource.damagingEntity);
});
world6.afterEvents.pistonActivate.subscribe((event) => {
  handleBlockEntityMovedByPiston(event.block, event.piston, event.isExpanding);
});
world6.afterEvents.playerInteractWithBlock.subscribe((event) => {
  handleAugmentsPlayerInteractWithBlock(
    event.block,
    event.blockFace,
    event.faceLocation,
    event.player,
    event.itemStack
  );
});
system23.runInterval(handleTooltipTick, 40);
system23.runInterval(handleAugmentsTick, 1);
system23.runInterval(handleAutoWateringCanTick, WATERING_CAN_COOLDOWN_TICKS);
world6.afterEvents.playerSpawn.subscribe((data) => {
  const player = data.player;
  if (data.initialSpawn && !player.hasTag("ftb_mystical_agriculture_joined")) {
    player.sendMessage("\xA7eMystical Agriculture\xA7r has successfully loaded!");
    player.sendMessage(
      "\xA7dPoof! A strange book pops into existence\u2026 something about it makes you want to take a closer look.\xA7r"
    );
    player.runCommand('loot spawn ^ ^ ^1 loot "ftb/ma/book_main"');
    player.runCommand("gamerule recipesunlock false");
    player.addTag("ftb_mystical_agriculture_joined");
  }
});

//# sourceMappingURL=../debug/main.js.map
