import crafttweaker.api.RecipeTypeBracketHandler;
import crafttweaker.api.BracketHandlers;
import crafttweaker.api.FurnaceManager;
import crafttweaker.api.item.IIngredient;
import crafttweaker.api.tag.TagManagerItem;
import crafttweaker.api.util.MCResourceLocation;
import mods.stone_age.TreeStumpManager;
import mods.stone_age.MillstoneManager;
import mods.stone_age.FlintWorkbenchManager;
import mods.stone_age.DryingRackManager;



tags.getByImplementation<TagManagerItem>().getTag(new MCResourceLocation('forge', 'compressedsand')).add(BracketHandlers.getItem('kubejs:compressed_red_sandstone'));
tags.getByImplementation<TagManagerItem>().getTag(new MCResourceLocation('forge', 'compressedsand')).add(BracketHandlers.getItem('kubejs:compressed_sandstone'));

craftingTable.removeRecipe(<item:immersiveengineering:alloybrick>);

craftingTable.addShaped("immersiveengineering1", <item:immersiveengineering:alloybrick>, [
    [<tag:items:forge:compressedsand>, <item:kubejs:reinforced_brick>],
    [<item:kubejs:reinforced_brick>, <tag:items:forge:compressedsand>]
]);

craftingTable.addShaped("immersiveengineering2",  <item:immersiveengineering:alloybrick>, [
    [<item:immersiveengineering:slab_alloybrick>],
    [<item:immersiveengineering:slab_alloybrick>]
]);

RecipeTypeBracketHandler.getRecipeManager<TreeStumpManager>('stone_age:tree_stump').addRecipe('oak_planks_bone_axe', BracketHandlers.getItem('minecraft:oak_planks'), tags.getByImplementation<TagManagerItem>().getTag(new MCResourceLocation('ages_api', 'axes')), tags.getByImplementation<TagManagerItem>().getTag(new MCResourceLocation('minecraft', 'oak_logs')), 12, '');
RecipeTypeBracketHandler.getRecipeManager<TreeStumpManager>('stone_age:tree_stump').addRecipe('spruce_planks_bone_axe', BracketHandlers.getItem('minecraft:spruce_planks'), tags.getByImplementation<TagManagerItem>().getTag(new MCResourceLocation('ages_api', 'axes')), tags.getByImplementation<TagManagerItem>().getTag(new MCResourceLocation('minecraft', 'spruce_logs')), 12, '');
RecipeTypeBracketHandler.getRecipeManager<TreeStumpManager>('stone_age:tree_stump').addRecipe('birch_planks_bone_axe', BracketHandlers.getItem('minecraft:birch_planks'), tags.getByImplementation<TagManagerItem>().getTag(new MCResourceLocation('ages_api', 'axes')), tags.getByImplementation<TagManagerItem>().getTag(new MCResourceLocation('minecraft', 'birch_logs')), 12, '');
RecipeTypeBracketHandler.getRecipeManager<TreeStumpManager>('stone_age:tree_stump').addRecipe('jungle_planks_bone_axe', BracketHandlers.getItem('minecraft:jungle_planks'), tags.getByImplementation<TagManagerItem>().getTag(new MCResourceLocation('ages_api', 'axes')), tags.getByImplementation<TagManagerItem>().getTag(new MCResourceLocation('minecraft', 'jungle_logs')), 12, '');
RecipeTypeBracketHandler.getRecipeManager<TreeStumpManager>('stone_age:tree_stump').addRecipe('acacia_planks_bone_axe', BracketHandlers.getItem('minecraft:acacia_planks'), tags.getByImplementation<TagManagerItem>().getTag(new MCResourceLocation('ages_api', 'axes')), tags.getByImplementation<TagManagerItem>().getTag(new MCResourceLocation('minecraft', 'acacia_logs')), 12, '');
RecipeTypeBracketHandler.getRecipeManager<TreeStumpManager>('stone_age:tree_stump').addRecipe('dark_oak_planks_bone_axe', BracketHandlers.getItem('minecraft:dark_oak_planks'), tags.getByImplementation<TagManagerItem>().getTag(new MCResourceLocation('ages_api', 'axes')), tags.getByImplementation<TagManagerItem>().getTag(new MCResourceLocation('minecraft', 'dark_oak_logs')), 12, '');

RecipeTypeBracketHandler.getRecipeManager<DryingRackManager>('stone_age:drying_rack').addRecipe('dried_clay_ball', BracketHandlers.getItem('kubejs:dried_clay_ball'), BracketHandlers.getItem('minecraft:clay_ball') as IIngredient, 7200, 'dried_clay_ball');
RecipeTypeBracketHandler.getRecipeManager<DryingRackManager>('stone_age:drying_rack').addRecipe('dried_wheat', BracketHandlers.getItem('kubejs:dried_clay_ball'), BracketHandlers.getItem('minecraft:wheat') as IIngredient, 7200, 'dried_clay_ball');

craftingTable.addShaped("stoneage1",  <item:kubejs:reinforced_brick>, [
    [<tag:items:forge:plates/iron>,<item:minecraft:brick>,<tag:items:forge:plates/iron>],
    [<item:minecraft:brick>,<tag:items:forge:plates/iron>,<item:minecraft:brick>],
	[<tag:items:forge:plates/iron>, <item:minecraft:brick> ,<tag:items:forge:plates/iron>]
]);

<recipetype:stone_age:drying_rack>.addRecipe("dried_wheat", <item:kubejs:dried_wheat>, <item:minecraft:wheat>, 19200, "dried_wheat");
<recipetype:stone_age:drying_rack>.addRecipe("dried_wheat_block", <item:kubejs:dried_hay_bale>, <item:minecraft:hay_block>, 28800, "dried_wheat_block");

craftingTable.removeRecipe(<item:stone_age:flint_workbench>);

<recipetype:stone_age:flint_workbench>.removeRecipe(<item:minecraft:crafting_table>);
<recipetype:stone_age:flint_workbench>.addRecipe("crafting_table", <item:minecraft:crafting_table>, [
[<tag:items:minecraft:planks>, <tag:items:minecraft:wool>, <tag:items:minecraft:planks>],
[<item:kubejs:dried_clay_ball>, <tag:items:forge:dyes/black> ,<item:kubejs:dried_clay_ball>],
[<item:minecraft:stone>, <item:stone_age:stone_chest>, <item:minecraft:stone>]
], <item:stone_age:flint_knife>);

craftingTable.addShaped("flint_workbench",  <item:stone_age:flint_workbench>, [
    [<item:minecraft:flint>,<item:minecraft:stick>],
    [<item:minecraft:stick>,<item:minecraft:clay_ball>]
]);

<recipetype:stone_age:flint_workbench>.removeRecipe(<item:minecraft:torch>);
<recipetype:stone_age:flint_workbench>.removeRecipe(<item:stone_age:dried_grass_bed>);
<recipetype:stone_age:flint_workbench>.removeRecipe(<item:minecraft:furnace>);

<recipetype:stone_age:flint_workbench>.addRecipe("dried_hay_bale", <item:kubejs:dried_hay_bale>, [
[<item:kubejs:dried_wheat>, <item:kubejs:dried_wheat>, <item:kubejs:dried_wheat>],
[<item:kubejs:dried_wheat>, <item:kubejs:dried_wheat>, <item:kubejs:dried_wheat>],
[<item:kubejs:dried_wheat>, <item:kubejs:dried_wheat>, <item:kubejs:dried_wheat>]
], <item:stone_age:flint_knife>);

<recipetype:stone_age:flint_workbench>.addRecipe("dried_wheat", <item:kubejs:dried_wheat> * 9, [
[<item:kubejs:dried_hay_bale>]
], <item:stone_age:flint_knife>);

<recipetype:stone_age:flint_workbench>.addRecipe("dried_grass_bed", <item:stone_age:dried_grass_bed>, [
[<item:stone_age:leather_strip>, <item:stone_age:grass_lead>, <item:stone_age:leather_strip>],
[<item:kubejs:dried_hay_bale>, <item:kubejs:dried_hay_bale>, <item:kubejs:dried_hay_bale>],
[<item:kubejs:dried_hay_bale>, <item:kubejs:dried_hay_bale>, <item:kubejs:dried_hay_bale>]
], <item:stone_age:flint_knife>);

campfire.addRecipe("torch", <item:minecraft:torch>, <item:stone_age:unlit_torch>, 1.0, 1200);

<recipetype:stone_age:flint_workbench>.addRecipe("stone_hammer", <item:stone_age:stone_hammer>, [
[<item:minecraft:air>, <item:minecraft:cobblestone>, <item:stone_age:leather_strip>],
[<item:minecraft:air>, <item:minecraft:stick>, <item:minecraft:cobblestone>],
[<item:minecraft:stick>, <item:minecraft:air>, <item:minecraft:air>]
], <item:stone_age:flint_knife>);

<recipetype:stone_age:flint_workbench>.addRecipe("piece_of_stone", <item:kubejs:piece_of_stone>, [
[<item:kubejs:tiny_piece_of_stone>, <item:kubejs:tiny_piece_of_stone>, <item:kubejs:tiny_piece_of_stone>],
[<item:kubejs:tiny_piece_of_stone>, <item:kubejs:tiny_piece_of_stone>, <item:kubejs:tiny_piece_of_stone>],
[<item:kubejs:tiny_piece_of_stone>, <item:kubejs:tiny_piece_of_stone>, <item:kubejs:tiny_piece_of_stone>]
], <item:stone_age:flint_knife>);
<recipetype:stone_age:flint_workbench>.addRecipe("stone", <item:minecraft:stone>, [
[<item:kubejs:piece_of_stone>, <item:kubejs:piece_of_stone>, <item:kubejs:piece_of_stone>],
[<item:kubejs:piece_of_stone>, <item:kubejs:piece_of_stone>, <item:kubejs:piece_of_stone>],
[<item:kubejs:piece_of_stone>, <item:kubejs:piece_of_stone>, <item:kubejs:piece_of_stone>]
], <item:stone_age:flint_knife>);

<recipetype:stone_age:flint_workbench>.addRecipe("furnace", <item:minecraft:furnace>, [
[<item:minecraft:stone>, <item:minecraft:stone>, <item:minecraft:stone>],
[<item:minecraft:stone>, <item:minecraft:air>, <item:minecraft:stone>],
[<item:minecraft:stone>, <item:minecraft:stone>, <item:minecraft:stone>]
], <item:stone_age:flint_knife>);

<recipetype:stone_age:flint_workbench>.addRecipe("piece_of_cobblestone", <item:kubejs:piece_of_cobblestone>, [
[<item:minecraft:cobblestone_slab>, <item:minecraft:air>, <item:minecraft:cobblestone_slab>],
[<item:minecraft:air>, <item:minecraft:cobblestone_slab>, <item:minecraft:air>],
[<item:minecraft:cobblestone_slab>, <item:minecraft:air>, <item:minecraft:cobblestone_slab>]
], <item:stone_age:stone_hammer>);

campfire.addRecipe("tiny_piece_of_stone", <item:kubejs:tiny_piece_of_stone>, <item:kubejs:tiny_piece_of_cobblestone>, 1.0, 9600);

<recipetype:stone_age:millstone>.addRecipe("ink_sac", <item:minecraft:black_dye>, <item:minecraft:air>, <item:minecraft:ink_sac>, 0.0, 4, "ink_sac");
<recipetype:stone_age:millstone>.addRecipe("tiny_piece_of_cobblestone_millstone", <item:kubejs:tiny_piece_of_cobblestone>, <item:kubejs:tiny_piece_of_cobblestone> * 2, <item:kubejs:piece_of_cobblestone>, 0.4, 12, "tiny_piece_of_cobblestone");

<recipetype:stone_age:flint_workbench>.addRecipe("piece_of_stone", <item:kubejs:piece_of_stone>, [
[<item:minecraft:stone_slab>, <item:minecraft:air>, <item:minecraft:stone_slab>],
[<item:minecraft:air>, <item:minecraft:stone_slab>, <item:minecraft:air>],
[<item:minecraft:stone_slab>, <item:minecraft:air>, <item:minecraft:stone_slab>]
], <item:stone_age:stone_hammer>);


<recipetype:stone_age:flint_workbench>.addRecipe("piece_of_stone2", <item:kubejs:piece_of_stone>, [
[<item:kubejs:tiny_piece_of_stone>, <item:kubejs:tiny_piece_of_stone>],
[<item:kubejs:tiny_piece_of_stone>, <item:kubejs:tiny_piece_of_stone>]
], <item:stone_age:flint_knife>);

<recipetype:stone_age:flint_workbench>.removeRecipe(<item:stone_age:stone_axe_head>);
<recipetype:stone_age:flint_workbench>.addRecipe("stone_axe_head", <item:stone_age:stone_axe_head>, [
[<item:minecraft:stone>, <item:minecraft:stone>],
[<item:minecraft:stone>, <item:minecraft:air>]
], <item:stone_age:flint_knife>);
<recipetype:stone_age:flint_workbench>.removeRecipe(<item:stone_age:stone_hoe_head>);
<recipetype:stone_age:flint_workbench>.addRecipe("stone_hoe_head", <item:stone_age:stone_hoe_head>, [
[<item:minecraft:stone>, <item:minecraft:stone>]
], <item:stone_age:flint_knife>);
<recipetype:stone_age:flint_workbench>.removeRecipe(<item:stone_age:stone_shovel_head>);
<recipetype:stone_age:flint_workbench>.addRecipe("stone_shovel_head", <item:stone_age:stone_shovel_head>, [
[<item:minecraft:stone>],
[<item:minecraft:stone>]
], <item:stone_age:flint_knife>);

<recipetype:stone_age:flint_workbench>.removeRecipe(<item:stone_age:stone_sword_head>);
<recipetype:stone_age:flint_workbench>.addRecipe("stone_sword_head", <item:stone_age:stone_sword_head>, [
[<item:minecraft:stone>],
[<item:minecraft:stone>],
[<item:minecraft:stone>]
], <item:stone_age:flint_knife>);


<recipetype:stone_age:flint_workbench>.removeRecipe(<item:stone_age:stone_pickaxe_head>);
<recipetype:stone_age:flint_workbench>.addRecipe("stone_pickaxe_head", <item:stone_age:stone_pickaxe_head>, [
[<item:minecraft:stone>,<item:minecraft:stone>,<item:minecraft:stone>]
], <item:stone_age:flint_knife>);

<recipetype:stone_age:millstone>.addRecipe("tiny_piece_of_cobblestone", <item:kubejs:tiny_piece_of_stone>, <item:kubejs:tiny_piece_of_stone> * 2, <item:kubejs:piece_of_stone>, 0.2, 8, "tiny_piece_of_cobblestone");

<recipetype:stone_age:flint_workbench>.removeRecipe(<item:stone_age:millstone>);

<recipetype:stone_age:flint_workbench>.addRecipe("millstone", <item:stone_age:millstone>, [
[<item:minecraft:andesite>, <item:minecraft:stick>,<item:minecraft:andesite>],
[<item:minecraft:granite>, <item:minecraft:stick>, <item:minecraft:granite>],
[<item:quark:cobblestone_bricks>, <item:quark:cobblestone_bricks>, <item:quark:cobblestone_bricks>]
], <item:stone_age:flint_knife>);

<recipetype:stone_age:flint_workbench>.addRecipe("cobblestone_bricks", <item:quark:cobblestone_bricks> * 2, [
[<item:minecraft:cobblestone>, <item:minecraft:cobblestone>],
[<item:minecraft:cobblestone>, <item:minecraft:cobblestone>]
], <item:stone_age:flint_knife>);

craftingTable.addShaped("compressed_sandstone",  <item:kubejs:compressed_sandstone>, [
    [<item:minecraft:sand>,<item:minecraft:sand>,<item:minecraft:sand>],
    [<item:minecraft:sand>,<item:minecraft:sand>,<item:minecraft:sand>],
	[<item:minecraft:sand>,<item:minecraft:sand>,<item:minecraft:sand>]
]);

craftingTable.addShaped("compressed_red_sandstone",  <item:kubejs:compressed_red_sandstone>, [
    [<item:minecraft:red_sand>,<item:minecraft:red_sand>,<item:minecraft:red_sand>],
    [<item:minecraft:red_sand>,<item:minecraft:red_sand>,<item:minecraft:red_sand>],
	[<item:minecraft:red_sand>,<item:minecraft:red_sand>,<item:minecraft:red_sand>]
]);

craftingTable.addShaped("blast_furnace", <item:minecraft:blast_furnace>, [
    [<tag:items:forge:plates/iron>,<tag:items:forge:plates/iron>,<tag:items:forge:plates/iron>],
    [<tag:items:forge:plates/iron>,<item:minecraft:furnace>,<tag:items:forge:plates/iron>],
	[<item:minecraft:smooth_stone>,<item:minecraft:smooth_stone>,<item:minecraft:smooth_stone>]
]);

craftingTable.addShaped("furnace", <item:minecraft:furnace>, [
    [<item:minecraft:stone>,<item:minecraft:stone>,<item:minecraft:stone>],
    [<item:minecraft:stone>,<item:minecraft:air>,<item:minecraft:stone>],
	[<item:minecraft:stone>,<item:minecraft:stone>,<item:minecraft:stone>]
]);

craftingTable.addShaped("millstonecraftingtable", <item:stone_age:millstone>, [
[<item:minecraft:andesite>, <item:minecraft:stick>,<item:minecraft:andesite>],
[<item:minecraft:granite>, <item:minecraft:stick>, <item:minecraft:granite>],
[<item:quark:cobblestone_bricks>, <item:quark:cobblestone_bricks>, <item:quark:cobblestone_bricks>]
]);

craftingTable.addShaped("crafting_table", <item:minecraft:crafting_table>, [
[<tag:items:minecraft:planks>, <tag:items:minecraft:wool>, <tag:items:minecraft:planks>],
[<item:kubejs:dried_clay_ball>, <tag:items:forge:dyes/black> ,<item:kubejs:dried_clay_ball>],
[<item:minecraft:stone>, <item:stone_age:stone_chest>, <item:minecraft:stone>]
]);

craftingTable.addShaped("bone_arrow_head", <item:stone_age:bone_arrow_head>, [
[<tag:items:ages_api:bones>]
]);

craftingTable.addShaped("arrowcraftingtable", <item:minecraft:arrow> * 2, [
[<item:stone_age:bone_arrow_head>],
[<item:minecraft:stick>],
[<item:minecraft:feather>]
]);

craftingTable.addShaped("stone_chescraftingtablet", <item:stone_age:stone_chest>, [
[<item:minecraft:smooth_stone_slab>, <item:minecraft:smooth_stone_slab>, <item:minecraft:smooth_stone_slab>],
[<item:minecraft:stone>, <item:minecraft:clay_ball>,<item:minecraft:stone>],
[<item:minecraft:stone>, <item:minecraft:stone>, <item:minecraft:stone>]
]);

craftingTable.addShaped("oak_boat", <item:minecraft:oak_boat>, [
[<item:minecraft:oak_planks>, <item:minecraft:air>,<item:minecraft:oak_planks>],
[<item:minecraft:oak_planks>, <item:minecraft:oak_planks>, <item:minecraft:oak_planks>]
]);
craftingTable.addShaped("spruce_boat", <item:minecraft:spruce_boat>, [
[<item:minecraft:spruce_planks>, <item:minecraft:air>,<item:minecraft:spruce_planks>],
[<item:minecraft:spruce_planks>, <item:minecraft:spruce_planks>, <item:minecraft:spruce_planks>]
]);
craftingTable.addShaped("birch_boat", <item:minecraft:birch_boat>, [
[<item:minecraft:birch_planks>, <item:minecraft:air>,<item:minecraft:birch_planks>],
[<item:minecraft:birch_planks>, <item:minecraft:birch_planks>,<item:minecraft:birch_planks>]
]);
craftingTable.addShaped("jungle_boat", <item:minecraft:jungle_boat>, [
[<item:minecraft:jungle_planks>, <item:minecraft:air>,<item:minecraft:jungle_planks>],
[<item:minecraft:jungle_planks>, <item:minecraft:jungle_planks>, <item:minecraft:jungle_planks>]
]);
craftingTable.addShaped("acacia_boat", <item:minecraft:acacia_boat>, [
[<item:minecraft:acacia_planks>, <item:minecraft:air>,<item:minecraft:acacia_planks>],
[<item:minecraft:acacia_planks>, <item:minecraft:acacia_planks>, <item:minecraft:acacia_planks>]
]);
craftingTable.addShaped("stone_chest", <item:minecraft:dark_oak_boat>, [
[<item:minecraft:dark_oak_planks>, <item:minecraft:air>,<item:minecraft:dark_oak_planks>],
[<item:minecraft:dark_oak_planks>, <item:minecraft:dark_oak_planks>, <item:minecraft:dark_oak_planks>]
]);

blastFurnace.removeRecipe(<item:minecraft:iron_ingot>);
<recipetype:minecraft:smelting>.removeRecipe(<item:minecraft:iron_ingot>);
blastFurnace.removeRecipe(<item:minecraft:gold_ingot>);
<recipetype:minecraft:smelting>.removeRecipe(<item:minecraft:gold_ingot>);

blastFurnace.addRecipe("iron_nuggetblastfurnace", <item:minecraft:iron_nugget> * 3, <tag:items:forge:ores/iron>, 0.4, 300);
<recipetype:minecraft:smelting>.addRecipe("iron_nuggetfurnace", <item:minecraft:iron_nugget>, <tag:items:forge:ores/iron>, 0.4, 600);
blastFurnace.addRecipe("gold_nuggetblastfurnace", <item:minecraft:gold_nugget> * 3, <tag:items:forge:ores/gold>, 0.5, 225);
<recipetype:minecraft:smelting>.addRecipe("gold_nuggetfurnace", <item:minecraft:gold_nugget>, <tag:items:forge:ores/gold>, 0.5, 450);

blastFurnace.addRecipe("crushed_iron_oreblastfurnace", <item:minecraft:iron_nugget> * 6, <item:create:crushed_iron_ore>, 0.7, 300);
<recipetype:minecraft:smelting>.addRecipe("crushed_iron_orefurnace", <item:minecraft:iron_nugget> * 3, <item:create:crushed_iron_ore>, 0.7, 600);
blastFurnace.addRecipe("crushed_gold_oreblastfurnace", <item:minecraft:gold_nugget> * 6, <item:create:crushed_gold_ore>, 1.0, 225);
<recipetype:minecraft:smelting>.addRecipe("crushed_gold_orefurnace", <item:minecraft:gold_nugget> * 3, <item:create:crushed_gold_ore>, 1.0, 450);

blastFurnace.addRecipe("trowelblastfurnace", <item:minecraft:iron_nugget>, <item:quark:trowel>, 1.0, 100);

blastFurnace.addRecipe("iron_dustsblastfurnace", <item:minecraft:iron_nugget> * 4, <tag:items:forge:dusts/iron>, 0.55, 300);
<recipetype:minecraft:smelting>.addRecipe("iron_dustsfurnace", <item:minecraft:iron_nugget> * 2, <tag:items:forge:dusts/iron>, 0.55, 600);
blastFurnace.addRecipe("gold_dustsblastfurnace", <item:minecraft:gold_nugget> * 4, <tag:items:forge:dusts/gold>, 0.7, 225);
<recipetype:minecraft:smelting>.addRecipe("gold_dustsfurnace", <item:minecraft:gold_nugget> * 2, <tag:items:forge:dusts/gold>, 0.7, 450);




craftingTable.removeRecipe(<item:minecraft:bucket>);

craftingTable.addShaped("bucket", <item:minecraft:bucket>, [
[<item:immersiveengineering:plate_iron>, <item:minecraft:air>,<item:immersiveengineering:plate_iron>],
[<item:minecraft:air>, <item:immersiveengineering:plate_iron>, <item:minecraft:air>]
]);






