package ru.dbotthepony.mc.otm.registry

import net.minecraft.resources.ResourceLocation
import net.minecraft.tags.BlockTags
import net.minecraft.tags.ItemTags
import net.minecraft.tags.TagKey
import net.minecraft.world.item.Item
import net.minecraft.world.level.block.Block
import ru.dbotthepony.mc.otm.OverdriveThatMatters

@Suppress("unused")
object MItemTags {
	val TRITANIUM_ORES: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "ores/tritanium"))
	val TRITANIUM_ORE_CLUMPS: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "raw_materials/tritanium"))
	val TRITANIUM_INGOTS: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "ingots/tritanium"))
	val TRITANIUM_NUGGETS: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "nuggets/tritanium"))
	val NUGGETS: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "nuggets"))
	val TRITANIUM_INGOTS_STORAGE: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "storage_blocks/tritanium"))
	val TRITANIUM_PLATES: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "plates/tritanium"))
	val CARBON_PLATES: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "plates/carbon"))
	val REINFORCED_TRITANIUM_PLATES: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "reinforced_tritanium"))
	val TRITANIUM_DUSTS: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "dusts/tritanium"))
	val IRON_PLATES: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "plates/iron"))
	val GOLD_PLATES: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "plates/gold"))
	val CARGO_CRATES: TagKey<Item> = ItemTags.create(ResourceLocation(OverdriveThatMatters.MOD_ID, "cargo_crates"))
	val MINECART_CARGO_CRATES: TagKey<Item> = ItemTags.create(ResourceLocation(OverdriveThatMatters.MOD_ID, "minecart_cargo_crates"))
	val INDUSTRIAL_GLASS: TagKey<Item> = ItemTags.create(ResourceLocation(OverdriveThatMatters.MOD_ID, "industrial_glass"))
	val UPGRADES: TagKey<Item> = ItemTags.create(ResourceLocation(OverdriveThatMatters.MOD_ID, "upgrades"))

	val CRAFTING_TABLES: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "crafting_tables"))

	val BASIC_CIRCUIT: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "circuits/basic"))
	val ADVANCED_CIRCUIT: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "circuits/advanced"))

	val COPPER_WIRES: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "wires/copper"))
	val GOLD_WIRES: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "wires/gold"))

	val PISTONS: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "pistons"))

	val HARDENED_GLASS_PANES: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass_panes"))
	val HARDENED_GLASS_PANES_BLACK: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass_panes/black"))
	val HARDENED_GLASS_PANES_BLUE: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass_panes/blue"))
	val HARDENED_GLASS_PANES_BROWN: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass_panes/brown"))
	val HARDENED_GLASS_PANES_COLORLESS: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass_panes/colorless"))
	val HARDENED_GLASS_PANES_CYAN: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass_panes/cyan"))
	val HARDENED_GLASS_PANES_GRAY: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass_panes/gray"))
	val HARDENED_GLASS_PANES_GREEN: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass_panes/green"))
	val HARDENED_GLASS_PANES_LIGHT_BLUE: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass_panes/light_blue"))
	val HARDENED_GLASS_PANES_LIGHT_GRAY: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass_panes/light_gray"))
	val HARDENED_GLASS_PANES_LIME: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass_panes/lime"))
	val HARDENED_GLASS_PANES_MAGENTA: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass_panes/magenta"))
	val HARDENED_GLASS_PANES_ORANGE: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass_panes/orange"))
	val HARDENED_GLASS_PANES_PINK: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass_panes/pink"))
	val HARDENED_GLASS_PANES_PURPLE: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass_panes/purple"))
	val HARDENED_GLASS_PANES_RED: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass_panes/red"))
	val HARDENED_GLASS_PANES_WHITE: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass_panes/white"))
	val HARDENED_GLASS_PANES_YELLOW: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass_panes/yellow"))

	val HARDENED_GLASS: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass"))
	val HARDENED_GLASS_BLACK: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass/black"))
	val HARDENED_GLASS_BLUE: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass/blue"))
	val HARDENED_GLASS_BROWN: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass/brown"))
	val HARDENED_GLASS_COLORLESS: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass/colorless"))
	val HARDENED_GLASS_CYAN: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass/cyan"))
	val HARDENED_GLASS_GRAY: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass/gray"))
	val HARDENED_GLASS_GREEN: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass/green"))
	val HARDENED_GLASS_LIGHT_BLUE: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass/light_blue"))
	val HARDENED_GLASS_LIGHT_GRAY: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass/light_gray"))
	val HARDENED_GLASS_LIME: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass/lime"))
	val HARDENED_GLASS_MAGENTA: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass/magenta"))
	val HARDENED_GLASS_ORANGE: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass/orange"))
	val HARDENED_GLASS_PINK: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass/pink"))
	val HARDENED_GLASS_PURPLE: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass/purple"))
	val HARDENED_GLASS_RED: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass/red"))
	val HARDENED_GLASS_WHITE: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass/white"))
	val HARDENED_GLASS_YELLOW: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass/yellow"))

	val MACHINES: TagKey<Item> = ItemTags.create(ResourceLocation(OverdriveThatMatters.MOD_ID, "machines"))
}

@Suppress("unused")
object MBlockTags {
	val CARGO_CRATES: TagKey<Block> = BlockTags.create(ResourceLocation(OverdriveThatMatters.MOD_ID, "cargo_crates"))
	val INDUSTRIAL_GLASS: TagKey<Block> = BlockTags.create(ResourceLocation(OverdriveThatMatters.MOD_ID, "industrial_glass"))

	val CRAFTING_TABLES: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "crafting_tables"))

	val REQUIRES_TRITANIUM_TOOL: TagKey<Block> = BlockTags.create(ResourceLocation("minecraft", "requires_tritanium_tool"))

	val HARDENED_GLASS_PANES: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes"))
	val HARDENED_GLASS_PANES_BLACK: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/black"))
	val HARDENED_GLASS_PANES_BLUE: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/blue"))
	val HARDENED_GLASS_PANES_BROWN: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/brown"))
	val HARDENED_GLASS_PANES_COLORLESS: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/colorless"))
	val HARDENED_GLASS_PANES_CYAN: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/cyan"))
	val HARDENED_GLASS_PANES_GRAY: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/gray"))
	val HARDENED_GLASS_PANES_GREEN: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/green"))
	val HARDENED_GLASS_PANES_LIGHT_BLUE: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/light_blue"))
	val HARDENED_GLASS_PANES_LIGHT_GRAY: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/light_gray"))
	val HARDENED_GLASS_PANES_LIME: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/lime"))
	val HARDENED_GLASS_PANES_MAGENTA: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/magenta"))
	val HARDENED_GLASS_PANES_ORANGE: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/orange"))
	val HARDENED_GLASS_PANES_PINK: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/pink"))
	val HARDENED_GLASS_PANES_PURPLE: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/purple"))
	val HARDENED_GLASS_PANES_RED: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/red"))
	val HARDENED_GLASS_PANES_WHITE: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/white"))
	val HARDENED_GLASS_PANES_YELLOW: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/yellow"))

	val HARDENED_GLASS: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass"))
	val HARDENED_GLASS_BLACK: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/black"))
	val HARDENED_GLASS_BLUE: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/blue"))
	val HARDENED_GLASS_BROWN: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/brown"))
	val HARDENED_GLASS_COLORLESS: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/colorless"))
	val HARDENED_GLASS_CYAN: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/cyan"))
	val HARDENED_GLASS_GRAY: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/gray"))
	val HARDENED_GLASS_GREEN: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/green"))
	val HARDENED_GLASS_LIGHT_BLUE: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/light_blue"))
	val HARDENED_GLASS_LIGHT_GRAY: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/light_gray"))
	val HARDENED_GLASS_LIME: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/lime"))
	val HARDENED_GLASS_MAGENTA: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/magenta"))
	val HARDENED_GLASS_ORANGE: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/orange"))
	val HARDENED_GLASS_PINK: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/pink"))
	val HARDENED_GLASS_PURPLE: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/purple"))
	val HARDENED_GLASS_RED: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/red"))
	val HARDENED_GLASS_WHITE: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/white"))
	val HARDENED_GLASS_YELLOW: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/yellow"))

	val MACHINES: TagKey<Block> = BlockTags.create(ResourceLocation(OverdriveThatMatters.MOD_ID, "machines"))
}
