package ru.dbotthepony.mc.otm.datagen.recipes

import net.minecraft.data.recipes.*
import net.minecraft.world.item.DyeColor
import net.minecraft.world.item.ItemStack
import net.minecraft.world.item.Items
import net.minecraft.world.item.crafting.Ingredient
import net.minecraft.world.level.ItemLike
import net.minecraftforge.common.Tags
import ru.dbotthepony.mc.otm.core.registryName
import ru.dbotthepony.mc.otm.datagen.modLocation
import ru.dbotthepony.mc.otm.registry.MBlocks
import ru.dbotthepony.mc.otm.registry.MItemTags
import ru.dbotthepony.mc.otm.registry.MItems
import ru.dbotthepony.mc.otm.registry.MRegistry
import java.util.function.Consumer

private fun stairs(base: ItemLike, result: ItemLike, consumer: Consumer<FinishedRecipe>) {
	MatteryRecipe(result, 4, category = RecipeCategory.BUILDING_BLOCKS)
		.rowA(base)
		.rowAB(base, base)
		.row(base, base, base)
		.unlockedBy(base)
		.build(consumer, modLocation("decorative/stairs/${base.asItem().registryName!!.path}"))
}

private fun slab(base: ItemLike, result: ItemLike, consumer: Consumer<FinishedRecipe>) {
	MatteryRecipe(result, 6, category = RecipeCategory.BUILDING_BLOCKS)
		.row(base, base, base)
		.unlockedBy(base)
		.build(consumer, modLocation("decorative/slabs/${base.asItem().registryName!!.path}"))
}

private fun wall(base: ItemLike, result: ItemLike, consumer: Consumer<FinishedRecipe>) {
	MatteryRecipe(result, 6, category = RecipeCategory.BUILDING_BLOCKS)
		.row(base, base, base)
		.row(base, base, base)
		.unlockedBy(base)
		.build(consumer, modLocation("decorative/walls/${base.asItem().registryName!!.path}"))
}

private fun cut(base: ItemLike, result: ItemLike, amount: Int, consumer: Consumer<FinishedRecipe>) {
	SingleItemRecipeBuilder
		.stonecutting(Ingredient.of(base), RecipeCategory.BUILDING_BLOCKS, result, amount)
		.unlockedBy(base)
		.save(consumer, modLocation("stonecutting/${result.asItem().registryName!!.path}_from_${base.asItem().registryName!!.path}"))
}

private fun stairsWithCut(base: ItemLike, result: ItemLike, consumer: Consumer<FinishedRecipe>) {
	stairs(base, result, consumer)
	cut(base, result, 1, consumer)
}

private fun slabWithCut(base: ItemLike, result: ItemLike, consumer: Consumer<FinishedRecipe>) {
	slab(base, result, consumer)
	cut(base, result, 2, consumer)
}

private fun wallWithCut(base: ItemLike, result: ItemLike, consumer: Consumer<FinishedRecipe>) {
	wall(base, result, consumer)
	cut(base, result, 1, consumer)
}

fun addDecorativesRecipes(provider: MatteryRecipeProvider, consumer: Consumer<FinishedRecipe>) {
	// Напольная плитка
	for ((color, unrefinedItem) in MRegistry.UNREFINED_FLOOR_TILES.items) {
		MatteryRecipe(unrefinedItem, 24)
			.row(Items.CLAY, Items.SAND, Items.CLAY)
			.row(Items.SAND, color.tag, Items.SAND)
			.row(Items.CLAY, Items.SAND, Items.CLAY)
			.unlockedBy(Items.CLAY)
			.build(consumer, modLocation("decorative/floor_tiles/unrefined/${color.name.lowercase()}"))

		if (color != DyeColor.WHITE)
			ShapelessRecipeBuilder(RecipeCategory.BUILDING_BLOCKS, unrefinedItem, 8)
				.requires(Ingredient.of(MRegistry.UNREFINED_FLOOR_TILES.getItem(DyeColor.WHITE)), 8)
				.requires(color.tag)
				.unlockedBy(MRegistry.UNREFINED_FLOOR_TILES.getItem(DyeColor.WHITE))
				.save(consumer, modLocation("decorative/floor_tiles/unrefined/recolor/${unrefinedItem.registryName!!.path}"))
	}

	for ((color, refinedItem) in MRegistry.FLOOR_TILES.items) {
		SimpleCookingRecipeBuilder.smelting(
			Ingredient.of(MRegistry.UNREFINED_FLOOR_TILES.items[color]!!),
			RecipeCategory.BUILDING_BLOCKS,
			refinedItem,
			0.15f,
			100
		).unlockedBy("has_unrefined_block", has(MRegistry.UNREFINED_FLOOR_TILES.items[color]!!))
			.save(consumer, modLocation("decorative/floor_tiles/refined/${color.name.lowercase()}"))

		if (color != DyeColor.WHITE)
			ShapelessRecipeBuilder(RecipeCategory.BUILDING_BLOCKS, refinedItem, 8)
				.requires(Ingredient.of(MRegistry.FLOOR_TILES.getItem(DyeColor.WHITE)), 8)
				.requires(color.tag)
				.unlockedBy(MRegistry.FLOOR_TILES.getItem(DyeColor.WHITE))
				.save(consumer, modLocation("decorative/floor_tiles/refined/recolor/${color.name.lowercase()}"))
	}

	for ((color, item) in MRegistry.TRITANIUM_BLOCK.allItems) {
		stairsWithCut(item, MRegistry.TRITANIUM_STAIRS.allItems[color]!!, consumer)
		slabWithCut(item, MRegistry.TRITANIUM_SLAB.allItems[color]!!, consumer)
		wallWithCut(item, MRegistry.TRITANIUM_WALL.allItems[color]!!, consumer)
	}

	for ((item, colors) in MRegistry.TRITANIUM_STRIPED_BLOCK.itemsWithColor) {
		val (a, b) = colors
		stairsWithCut(item, MRegistry.TRITANIUM_STRIPED_STAIRS.getItem(a, b), consumer)
		slabWithCut(item, MRegistry.TRITANIUM_STRIPED_SLAB.getItem(a, b), consumer)
		wallWithCut(item, MRegistry.TRITANIUM_STRIPED_WALL.getItem(a, b), consumer)
	}

	stairsWithCut(MItems.TRITANIUM_STRIPED_BLOCK, MItems.TRITANIUM_STRIPED_STAIRS, consumer)
	slabWithCut(MItems.TRITANIUM_STRIPED_BLOCK, MItems.TRITANIUM_STRIPED_SLAB, consumer)
	wallWithCut(MItems.TRITANIUM_STRIPED_BLOCK, MItems.TRITANIUM_STRIPED_WALL, consumer)

	for ((color, item) in MRegistry.FLOOR_TILES.items) {
		stairsWithCut(item, MRegistry.FLOOR_TILES_STAIRS.items[color]!!, consumer)
		slabWithCut(item, MRegistry.FLOOR_TILES_SLAB.items[color]!!, consumer)
	}

	for ((item, colors) in MRegistry.TRITANIUM_STRIPED_BLOCK.itemsWithColor) {
		val (base, stripe) = colors

		val original = MRegistry.TRITANIUM_BLOCK.items[base]!!

		MatteryRecipe(item, 8, category = RecipeCategory.BUILDING_BLOCKS)
			.row(original, original, original)
			.row(original, stripe.tag, original)
			.row(original, original, original)
			.unlockedBy(original)
			.build(consumer, modLocation("decorative/tritanium/striped/${base.name.lowercase()}_${stripe.name.lowercase()}"))
	}

	MatteryRecipe(MItems.DANGER_STRIPE_BLOCK, 24, category = RecipeCategory.BUILDING_BLOCKS)
		.rowAB(Tags.Items.DYES_YELLOW, Tags.Items.INGOTS_IRON)
		.row(Tags.Items.INGOTS_IRON, Tags.Items.COBBLESTONE, Tags.Items.INGOTS_IRON)
		.rowBC(Tags.Items.INGOTS_IRON, Tags.Items.DYES_BLACK)
		.unlockedBy(Tags.Items.INGOTS_IRON)
		.unlockedBy(Tags.Items.DYES_BLACK)
		.build(consumer, modLocation("decorative/danger_stripe"))

	MatteryRecipe(MItems.METAL_BEAM, 24, category = RecipeCategory.BUILDING_BLOCKS)
		.rowB(Tags.Items.INGOTS_IRON)
		.row(MItemTags.TRITANIUM_INGOTS, Tags.Items.COBBLESTONE, MItemTags.TRITANIUM_INGOTS)
		.rowB(Tags.Items.INGOTS_IRON)
		.build(consumer, modLocation("decorative/metal_beam"))

	MatteryRecipe(MRegistry.VENT.item, 24, category = RecipeCategory.BUILDING_BLOCKS)
		.rowB(MItemTags.TRITANIUM_INGOTS)
		.row(MItemTags.TRITANIUM_INGOTS, Items.IRON_BARS, MItemTags.TRITANIUM_INGOTS)
		.rowB(MItemTags.TRITANIUM_INGOTS)
		.unlockedBy(MItemTags.TRITANIUM_INGOTS)
		.build(consumer, modLocation("decorative/vent/default"))

	for ((color, item) in MRegistry.VENT.items) {
		MatteryRecipe(item, 8, category = RecipeCategory.BUILDING_BLOCKS)
			.row(MRegistry.VENT.item, MRegistry.VENT.item, MRegistry.VENT.item)
			.row(MRegistry.VENT.item, color.tag, MRegistry.VENT.item)
			.row(MRegistry.VENT.item, MRegistry.VENT.item, MRegistry.VENT.item)
			.unlockedBy(MItemTags.TRITANIUM_INGOTS)
			.unlockedBy(color.tag)
			.build(consumer, modLocation("decorative/vent/${color.name.lowercase()}"))
	}

	for ((color, item) in MRegistry.VENT_ALTERNATIVE.allItems) {
		val other = MRegistry.VENT.allItems[color]!!

		ShapelessRecipeBuilder(RecipeCategory.BUILDING_BLOCKS, item, 1).requires(other)
			.unlockedBy(item)
			.save(consumer, modLocation("decorative/vent/to_alt/${color?.name?.lowercase() ?: "default"}"))

		ShapelessRecipeBuilder(RecipeCategory.BUILDING_BLOCKS, other, 1).requires(item)
			.unlockedBy(other)
			.save(consumer, modLocation("decorative/vent/from_alt/${color?.name?.lowercase() ?: "default"}"))
	}

	MatteryRecipe(MRegistry.DECORATIVE_CRATE.item, 24, category = RecipeCategory.BUILDING_BLOCKS)
		.rowB(Tags.Items.INGOTS_IRON)
		.row(Tags.Items.INGOTS_IRON, Tags.Items.COBBLESTONE, Tags.Items.INGOTS_IRON)
		.rowB(Tags.Items.INGOTS_IRON)
		.unlockedBy(Tags.Items.INGOTS_IRON)
		.build(consumer, modLocation("decorative/crate/rusty"))

	for ((color, crate) in MRegistry.DECORATIVE_CRATE.items) {
		MatteryRecipe(crate, 8, category = RecipeCategory.BUILDING_BLOCKS)
			.row(MRegistry.DECORATIVE_CRATE.item, MRegistry.DECORATIVE_CRATE.item, MRegistry.DECORATIVE_CRATE.item)
			.row(MRegistry.DECORATIVE_CRATE.item, color.tag, MRegistry.DECORATIVE_CRATE.item)
			.row(MRegistry.DECORATIVE_CRATE.item, MRegistry.DECORATIVE_CRATE.item, MRegistry.DECORATIVE_CRATE.item)
			.unlockedBy(MRegistry.DECORATIVE_CRATE.item)
			.build(consumer, modLocation("decorative/crate/${color.name.lowercase()}"))
	}

	for ((color, item) in MRegistry.TRITANIUM_BLOCK.items) {
		MatteryRecipe(item, 8, category = RecipeCategory.BUILDING_BLOCKS)
			.row(MRegistry.TRITANIUM_BLOCK.item, MRegistry.TRITANIUM_BLOCK.item, MRegistry.TRITANIUM_BLOCK.item)
			.row(MRegistry.TRITANIUM_BLOCK.item, color.tag, MRegistry.TRITANIUM_BLOCK.item)
			.row(MRegistry.TRITANIUM_BLOCK.item, MRegistry.TRITANIUM_BLOCK.item, MRegistry.TRITANIUM_BLOCK.item)
			.unlockedBy(MRegistry.TRITANIUM_BLOCK.item)
			.unlockedBy(color.tag)
			.build(consumer, modLocation("decorative/tritanium/default/${color.name.lowercase()}"))
	}

	ShapelessRecipeBuilder(RecipeCategory.BUILDING_BLOCKS, MRegistry.INDUSTRIAL_GLASS.item, 8)
		.requires(Items.GLASS, 8)
		.requires(MItemTags.TRITANIUM_PLATES)
		.unlockedBy("has_plate", has(MItemTags.TRITANIUM_PLATES))
		.unlockedBy("has_glass", has(Items.GLASS))
		.save(consumer, modLocation("decorative/industrial_glass/default"))

	ShapedRecipeBuilder(RecipeCategory.BUILDING_BLOCKS, MRegistry.INDUSTRIAL_GLASS_PANE.item, 16)
		.define('#', MRegistry.INDUSTRIAL_GLASS.item)
		.pattern("###").pattern("###")
		.unlockedBy("has_tritanium_glass", has(MRegistry.INDUSTRIAL_GLASS.item))
		.save(consumer)

	val mappingUpgradeVanilla = mapOf(
		DyeColor.WHITE to Items.WHITE_STAINED_GLASS,
		DyeColor.ORANGE to Items.ORANGE_STAINED_GLASS,
		DyeColor.MAGENTA to Items.MAGENTA_STAINED_GLASS,
		DyeColor.LIGHT_BLUE to Items.LIGHT_BLUE_STAINED_GLASS,
		DyeColor.YELLOW to Items.YELLOW_STAINED_GLASS,
		DyeColor.LIME to Items.LIME_STAINED_GLASS,
		DyeColor.PINK to Items.PINK_STAINED_GLASS,
		DyeColor.GRAY to Items.GRAY_STAINED_GLASS,
		DyeColor.LIGHT_GRAY to Items.LIGHT_GRAY_STAINED_GLASS,
		DyeColor.CYAN to Items.CYAN_STAINED_GLASS,
		DyeColor.PURPLE to Items.PURPLE_STAINED_GLASS,
		DyeColor.BLUE to Items.BLUE_STAINED_GLASS,
		DyeColor.BROWN to Items.BROWN_STAINED_GLASS,
		DyeColor.GREEN to Items.GREEN_STAINED_GLASS,
		DyeColor.RED to Items.RED_STAINED_GLASS,
		DyeColor.BLACK to Items.BLACK_STAINED_GLASS,
	)

	for (color in DyeColor.values()) {
		val item = MRegistry.INDUSTRIAL_GLASS.items[color]!!
		val paneItem = MRegistry.INDUSTRIAL_GLASS_PANE.items[color]!!
		val mappedVanilla = mappingUpgradeVanilla[color]!!

		// обычная покраска
		ShapelessRecipeBuilder(RecipeCategory.BUILDING_BLOCKS, item, 8)
			.requires(MRegistry.INDUSTRIAL_GLASS.item, 8)
			.requires(color.tag)
			.unlockedBy("has_tritanium_glass", has(MRegistry.INDUSTRIAL_GLASS.item))
			.save(consumer, modLocation("decorative/industrial_glass/recolor/${color.name.lowercase()}"))

		// апгрейд ванильного крашенного стекла
		ShapelessRecipeBuilder(RecipeCategory.BUILDING_BLOCKS, item, 8)
			.requires(mappedVanilla, 8)
			.requires(MItemTags.TRITANIUM_PLATES)
			.unlockedBy("has_plate", has(MItemTags.TRITANIUM_PLATES))
			.unlockedBy("has_colored_glass", has(mappedVanilla))
			.save(consumer, modLocation("decorative/industrial_glass/upgrade/${color.name.lowercase()}"))

		ShapedRecipeBuilder(RecipeCategory.BUILDING_BLOCKS, paneItem, 16)
			.define('#', item)
			.pattern("###").pattern("###")
			.unlockedBy("has_colored_tritanium_glass", has(paneItem))
			.save(consumer, modLocation("decorative/industrial_glass_pane/${color.name.lowercase()}"))

		ShapelessRecipeBuilder(RecipeCategory.BUILDING_BLOCKS, paneItem, 8)
			.requires(MRegistry.INDUSTRIAL_GLASS_PANE.item, 8)
			.requires(color.tag)
			.unlockedBy("has_tritanium_glass_pane", has(MRegistry.INDUSTRIAL_GLASS_PANE.item))
			.save(consumer, modLocation("decorative/industrial_glass_pane/recolor/${color.name.lowercase()}"))
	}

	ShapelessRecipeBuilder(RecipeCategory.REDSTONE, MItems.LABORATORY_LAMP, 1)
		.requires(MItems.LABORATORY_LAMP_INVERTED)
		.unlockedBy(MItems.LABORATORY_LAMP_INVERTED)
		.save(consumer, MItems.LABORATORY_LAMP.registryName!!.toString() + "_inv")

	ShapelessRecipeBuilder(RecipeCategory.REDSTONE, MItems.LABORATORY_LAMP_INVERTED, 1)
		.requires(MItems.LABORATORY_LAMP)
		.unlockedBy(MItems.LABORATORY_LAMP)
		.save(consumer, MItems.LABORATORY_LAMP_INVERTED.registryName!!.toString() + "_inv")

	MatteryRecipe(MBlocks.TRITANIUM_STRIPED_BLOCK, 24, category = RecipeCategory.BUILDING_BLOCKS)
		.rowB(MItemTags.TRITANIUM_INGOTS)
		.row(MItemTags.TRITANIUM_INGOTS, Tags.Items.COBBLESTONE, MItemTags.TRITANIUM_INGOTS)
		.rowAB(Tags.Items.DYES_YELLOW, MItemTags.TRITANIUM_INGOTS)
		.unlockedBy(MItemTags.TRITANIUM_INGOTS)
		.unlockedBy(Tags.Items.DYES_YELLOW)
		.build(consumer, modLocation("decorative/blocks/striped_default"))

	MatteryRecipe(MRegistry.TRITANIUM_BLOCK.item, 24, category = RecipeCategory.BUILDING_BLOCKS)
		.rowB(MItemTags.TRITANIUM_INGOTS)
		.row(MItemTags.TRITANIUM_INGOTS, Tags.Items.COBBLESTONE, MItemTags.TRITANIUM_INGOTS)
		.rowB(MItemTags.TRITANIUM_INGOTS)
		.unlockedBy(MItemTags.TRITANIUM_INGOTS)
		.build(consumer, modLocation("decorative/blocks/default"))

	MatteryRecipe(MBlocks.TRITANIUM_DOOR[null]!!, 3, category = RecipeCategory.REDSTONE)
		.rowAB(MItemTags.TRITANIUM_INGOTS, MItemTags.TRITANIUM_INGOTS)
		.rowAB(MItemTags.TRITANIUM_INGOTS, MItemTags.TRITANIUM_INGOTS)
		.rowAB(MItemTags.TRITANIUM_INGOTS, MItemTags.TRITANIUM_INGOTS)
		.unlockedBy(MItemTags.TRITANIUM_INGOTS)
		.build(consumer, modLocation("decorative/doors/default"))

	for (color in DyeColor.values()) {
		ShapelessRecipeBuilder.shapeless(RecipeCategory.REDSTONE, MItems.TRITANIUM_DOOR[color]!!, 1)
			.requires(Ingredient.of(MItems.TRITANIUM_DOOR.entries.stream().filter { it.key != color }.map { ItemStack(it.value) }))
			.requires(color.tag)
			.unlockedBy(MItems.TRITANIUM_DOOR.entries.stream().filter { it.key != color }.map { it.value })
			.save(consumer, modLocation("decorative/doors/${color.name.lowercase()}"))
	}

	MatteryRecipe(MBlocks.TRITANIUM_TRAPDOOR[null]!!, category = RecipeCategory.REDSTONE)
		.rowAB(MItemTags.TRITANIUM_INGOTS, MItemTags.TRITANIUM_INGOTS)
		.rowAB(MItemTags.TRITANIUM_INGOTS, MItemTags.TRITANIUM_INGOTS)
		.unlockedBy(MItemTags.TRITANIUM_INGOTS)
		.build(consumer, modLocation("decorative/trapdoors/default"))

	for (color in DyeColor.values()) {
		ShapelessRecipeBuilder.shapeless(RecipeCategory.REDSTONE, MItems.TRITANIUM_TRAPDOOR[color]!!, 1)
			.requires(Ingredient.of(MItems.TRITANIUM_TRAPDOOR.entries.stream().filter { it.key != color }.map { ItemStack(it.value) }))
			.requires(color.tag)
			.unlockedBy(MItems.TRITANIUM_TRAPDOOR.entries.stream().filter { it.key != color }.map { it.value })
			.save(consumer, modLocation("decorative/trapdoors/${color.name.lowercase()}"))
	}

	MatteryRecipe(MRegistry.TRITANIUM_PRESSURE_PLATE.item, category = RecipeCategory.REDSTONE)
		.row(MItemTags.TRITANIUM_PLATES, MItemTags.BASIC_CIRCUIT, MItemTags.TRITANIUM_PLATES)
		.unlockedBy(MItemTags.TRITANIUM_PLATES)
		.build(consumer, modLocation("pressure_plates/default"))

	for (dye in DyeColor.values()) {
		ShapelessRecipeBuilder(RecipeCategory.REDSTONE, MRegistry.TRITANIUM_PRESSURE_PLATE.getItem(dye), 1)
			.requires(Ingredient.of(MRegistry.TRITANIUM_PRESSURE_PLATE.allItems.entries.stream().filter { it.key != dye }.map { ItemStack(it.value) }))
			.requires(dye.tag)
			.unlockedBy(MItemTags.TRITANIUM_PLATES)
			.save(consumer, modLocation("pressure_plates/${dye.name.lowercase()}"))
	}

	MatteryRecipe(MItems.ENGINE, count = 9, category = RecipeCategory.BUILDING_BLOCKS)
		.rowAC(MItemTags.TRITANIUM_INGOTS, MItemTags.TRITANIUM_INGOTS)
		.row(MItemTags.TRITANIUM_INGOTS, Items.FLINT_AND_STEEL, MItemTags.TRITANIUM_INGOTS)
		.row(MItemTags.TRITANIUM_INGOTS, MItems.MATTER_CABLE, MItemTags.TRITANIUM_INGOTS)
		.unlockedBy(MItemTags.TRITANIUM_INGOTS)
		.unlockedBy(Items.FLINT_AND_STEEL)
		.build(consumer, modLocation("decorative/engine"))

	MatteryRecipe(MItems.METAL_MESH, count = 12, category = RecipeCategory.BUILDING_BLOCKS)
		.row(Tags.Items.NUGGETS_IRON, Items.IRON_BARS, Tags.Items.NUGGETS_IRON)
		.rowAC(Items.IRON_BARS, Items.IRON_BARS)
		.row(Tags.Items.NUGGETS_IRON, Items.IRON_BARS, Tags.Items.NUGGETS_IRON)
		.unlockedBy(Tags.Items.NUGGETS_IRON)
		.unlockedBy(Items.IRON_BARS)
		.build(consumer, modLocation("decorative/metal_mesh"))

	// лампа
	MatteryRecipe(MItems.LABORATORY_LAMP, category = RecipeCategory.REDSTONE)
		.row(MItemTags.IRON_PLATES, MItemTags.HARDENED_GLASS_PANES_COLORLESS, MItemTags.IRON_PLATES)
		.row(MItems.MIRROR, Items.GLOWSTONE, MItems.MIRROR)
		.row(MItemTags.TRITANIUM_PLATES, Tags.Items.DUSTS_REDSTONE, MItemTags.TRITANIUM_PLATES)
		.build(consumer, modLocation("decorative/lamp"))

	// Голо табличка
	MatteryRecipe(MItems.HOLO_SIGN, category = RecipeCategory.DECORATIONS)
		.row(MItemTags.BASIC_CIRCUIT, MItemTags.TRITANIUM_PLATES, MItemTags.HARDENED_GLASS_PANES_COLORLESS)
		.rowAB(Tags.Items.DUSTS_REDSTONE, Tags.Items.DUSTS_GLOWSTONE)
		.rowBC(MItemTags.TRITANIUM_PLATES, MItemTags.HARDENED_GLASS_PANES_COLORLESS)
		.build(consumer, modLocation("decorative/holo_sign"))

	MatteryRecipe(MItems.TRITANIUM_BARS, category = RecipeCategory.DECORATIONS, count = 16)
		.row(MItemTags.TRITANIUM_INGOTS, MItemTags.TRITANIUM_INGOTS, MItemTags.TRITANIUM_INGOTS)
		.row(MItemTags.TRITANIUM_INGOTS, MItemTags.TRITANIUM_INGOTS, MItemTags.TRITANIUM_INGOTS)
		.build(consumer, modLocation("decorative/tritanium_bars"))

	MatteryRecipe(MItems.TRITANIUM_ANVIL[0], category = RecipeCategory.DECORATIONS)
		.row(MItemTags.TRITANIUM_INGOTS_STORAGE, MItemTags.TRITANIUM_INGOTS_STORAGE, MItemTags.TRITANIUM_INGOTS_STORAGE)
		.rowB(MItemTags.TRITANIUM_INGOTS)
		.row(MItemTags.TRITANIUM_INGOTS, MItemTags.TRITANIUM_INGOTS, MItemTags.TRITANIUM_INGOTS)
		.build(consumer)
}
