package ru.dbotthepony.mc.otm.registry

import net.minecraft.resources.ResourceLocation
import net.minecraft.tags.ItemTags
import net.minecraft.tags.TagKey
import net.minecraft.world.item.Item
import ru.dbotthepony.mc.otm.OverdriveThatMatters
import ru.dbotthepony.mc.otm.core.ResourceLocation

@Suppress("unused")
object MItemTags {
	val TRITANIUM_ORES: TagKey<Item> = ItemTags.create(ResourceLocation("c", "ores/tritanium"))
	val TRITANIUM_ORE_CLUMPS: TagKey<Item> = ItemTags.create(ResourceLocation("c", "raw_materials/tritanium"))
	val TRITANIUM_INGOTS: TagKey<Item> = ItemTags.create(ResourceLocation("c", "ingots/tritanium"))
	val TRITANIUM_NUGGETS: TagKey<Item> = ItemTags.create(ResourceLocation("c", "nuggets/tritanium"))
	val NUGGETS: TagKey<Item> = ItemTags.create(ResourceLocation("c", "nuggets"))
	val TRITANIUM_INGOTS_STORAGE: TagKey<Item> = ItemTags.create(ResourceLocation("c", "storage_blocks/tritanium"))
	val RAW_TRITANIUM_STORAGE: TagKey<Item> = ItemTags.create(ResourceLocation("c", "storage_blocks/raw_tritanium"))
	val TRITANIUM_PLATES: TagKey<Item> = ItemTags.create(ResourceLocation("c", "plates/tritanium"))
	val CARBON_PLATES: TagKey<Item> = ItemTags.create(ResourceLocation("c", "plates/carbon"))
	val REINFORCED_TRITANIUM_PLATES: TagKey<Item> = ItemTags.create(ResourceLocation("c", "reinforced_tritanium"))
	val TRITANIUM_DUSTS: TagKey<Item> = ItemTags.create(ResourceLocation("c", "dusts/tritanium"))
	val IRON_PLATES: TagKey<Item> = ItemTags.create(ResourceLocation("c", "plates/iron"))
	val GOLD_PLATES: TagKey<Item> = ItemTags.create(ResourceLocation("c", "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 DILITHIUM_ORES: TagKey<Item> = ItemTags.create(ResourceLocation("c", "ores/dilithium"))
	val DILITHIUM_GEMS: TagKey<Item> = ItemTags.create(ResourceLocation("c", "gems/dilithium"))

	val CRAFTING_TABLES: TagKey<Item> = ItemTags.create(ResourceLocation("c", "crafting_tables"))
	val WORKBENCHES: TagKey<Item> = ItemTags.create(ResourceLocation("c", "workbenches"))
	val WORKBENCH: TagKey<Item> = ItemTags.create(ResourceLocation("c", "workbench"))

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

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

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

	val TOOLS_HAMMERS: TagKey<Item> = ItemTags.create(ResourceLocation("c", "tools/hammers"))

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

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

	val NO_DECOMPOSING: TagKey<Item> = ItemTags.create(modLoc("matter/no_decomposing"))
	val NO_REPLICATION: TagKey<Item> = ItemTags.create(modLoc("matter/no_replication"))
	val NO_REPAIR: TagKey<Item> = ItemTags.create(modLoc("matter/no_repair"))

	fun modLoc(path: String) : ResourceLocation = ResourceLocation(OverdriveThatMatters.MOD_ID, path)
}

