// Crafting!

import crafttweaker.api.item.IItemStack;
import crafttweaker.api.recipe.Replacer;

// Removing Recipes.
// ---------------------------------------------------------------------------------------------------------------------------------------------

craftingTable.removeRecipe(<item:metalbushesmod:iron_bush>);
craftingTable.removeRecipe(<item:metalbushesmod:gold_bush>);
craftingTable.removeRecipe(<item:metalbushesmod:xp_bush>);
craftingTable.removeRecipe(<item:metalbushesmod:blaze_bush>);
craftingTable.removeRecipe(<item:astral:offering_brazier>);
craftingTable.removeRecipe(<item:naturesaura:dimension_rail_overworld>);
craftingTable.removeRecipe(<item:naturesaura:dimension_rail_nether>);
craftingTable.removeRecipe(<item:naturesaura:dimension_rail_end>);
craftingTable.removeRecipe(<item:prettypipes:pressurizer>);
craftingTable.removeRecipe(<item:livingchest:eye_bone>);





// ---------------------------------------------------------------------------------------------------------------------------------------------


// Brewing Stand Recipes
// ---------------------------------------------------------------------------------------------------------------------------------------------
brewing.addRecipe(<item:minecraft:experience_bottle>, <item:astral:crystal_chitin>, <item:minecraft:potion>.withTag({Potion: "minecraft:water" as string}));
// ---------------------------------------------------------------------------------------------------------------------------------------------


// Chicken Chunks Changes
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.removeRecipe(<item:chickenchunks:chunk_loader>);
craftingTable.removeRecipe(<item:chickenchunks:spot_loader>);

craftingTable.addShaped("spot_loader", <item:chickenchunks:spot_loader> * 2, [
    [<item:minecraft:ender_pearl>, <tag:items:forge:ingots/gold>, <item:minecraft:ender_pearl>],
    [<tag:items:forge:ingots/gold>, <item:minecraft:obsidian>, <tag:items:forge:ingots/gold>]]);

craftingTable.addShaped("chunk_loader", <item:chickenchunks:chunk_loader>, [
    [<item:chickenchunks:spot_loader>, <item:chickenchunks:spot_loader>, <item:chickenchunks:spot_loader>],
    [<item:chickenchunks:spot_loader>, <tag:items:forge:nether_stars>, <item:chickenchunks:spot_loader>],
    [<item:chickenchunks:spot_loader>, <item:chickenchunks:spot_loader>, <item:chickenchunks:spot_loader>]]);
// ---------------------------------------------------------------------------------------------------------------------------------------------


// Experience Bush.
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.addShaped("xp_bush_new", <item:metalbushesmod:xp_bush>, [
    [<item:minecraft:air>, <item:astral:sleepless_eye>, <item:minecraft:air>],
    [<item:astral:sleepless_eye>, <item:metalbushesmod:bush_base>, <item:astral:sleepless_eye>],
    [<item:minecraft:air>, <item:astral:sleepless_eye>, <item:minecraft:air>]]);
// ---------------------------------------------------------------------------------------------------------------------------------------------


// The Cloud in a Bottle
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.addShapeless("cloud_in_a_bottle_fluffy", <item:quark:bottled_cloud> * 4, [<item:minecraft:glass_bottle>, <item:minecraft:glass_bottle>, <item:minecraft:glass_bottle>, <item:minecraft:glass_bottle>, <item:twilightforest:fluffy_cloud>]);
craftingTable.addShapeless("cloud_in_a_bottle_wispy", <item:quark:bottled_cloud>, [<item:minecraft:glass_bottle>, <item:twilightforest:wispy_cloud>]);

// ---------------------------------------------------------------------------------------------------------------------------------------------


// Remaking Tomes
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.removeRecipe(<item:tomes:cursed_tome>);
craftingTable.removeRecipe(<item:tomes:living_tome>);
craftingTable.removeRecipe(<item:tomes:archaic_tome>);

craftingTable.addShaped("new_cursed_tome", <item:tomes:cursed_tome>, [
    [<item:minecraft:air>, <item:tomes:sweet_heart>, <item:minecraft:air>],
    [<item:bloodmagic:blankslate>, <item:minecraft:book>, <item:eidolon:soul_shard>],
    [<item:minecraft:air>, <item:occultism:spirit_attuned_gem>, <item:minecraft:air>]]);

craftingTable.addShaped("new_living_tome", <item:tomes:living_tome>, [
    [<item:minecraft:air>, <item:tomes:beating_heart>, <item:minecraft:air>],
    [<item:botania:fertilizer>, <item:minecraft:book>, <item:naturesaura:gold_leaf>],
    [<item:minecraft:air>, <item:rootsclassic:verdant_sprig>, <item:minecraft:air>]]);

craftingTable.addShaped("new_archaic_tome", <item:tomes:archaic_tome>, [
    [<item:minecraft:air>, <item:tomes:ancient_heart>, <item:minecraft:air>],
    [<item:astralsorcery:aquamarine>, <item:minecraft:book>, <item:elementalcraft:containedcrystal>],
    [<item:minecraft:air>, <item:ars_nouveau:mana_gem>, <item:minecraft:air>]]);
// ---------------------------------------------------------------------------------------------------------------------------------------------


// Making Waystones Better.
// I decided to not make them exclusive to Eidolon, because people might want to use a lot of waystones, and may not want to get into Eidolon.
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.removeRecipe(<item:waystones:warp_stone>);

craftingTable.addShapeless("new_warp_stone", <item:waystones:warp_stone>, [<item:minecraft:redstone>, <item:minecraft:ender_pearl>, <item:minecraft:lapis_lazuli>, <item:twilightforest:transformation_powder>]);
// ---------------------------------------------------------------------------------------------------------------------------------------------


// Making Carapace and Chitin interchangeable.
// Meet the Beetles
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.addShapeless("carapace_from_chitin", <item:mysticalworld:carapace> * 4, [<item:druidcraft:chitin>]);

craftingTable.addShapeless("chitin_from_carapace", <item:druidcraft:chitin>, 
[<item:mysticalworld:carapace>, <item:mysticalworld:carapace>, 
<item:mysticalworld:carapace>, <item:mysticalworld:carapace>]);
// ---------------------------------------------------------------------------------------------------------------------------------------------


// Gilded Blackstone
// Yes, this has one use. Two if you count decoration.
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.addShapeless("gilded_blackstone", <item:minecraft:gilded_blackstone>, [<item:minecraft:blackstone>, <item:minecraft:gold_ingot>]);
// ---------------------------------------------------------------------------------------------------------------------------------------------


// Nyliums
// Because how else are you supposed to farm mushrooms for their niche use as ingredients?
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.addShapeless("crimson_nylium", <item:minecraft:crimson_nylium>, [<item:minecraft:netherrack>, <item:eidolon:crimson_essence>]);
craftingTable.addShapeless("warped_nylium", <item:minecraft:warped_nylium>, [<item:minecraft:netherrack>, <item:eidolon:warped_sprouts>]);
// ---------------------------------------------------------------------------------------------------------------------------------------------


// Adding Astral's Artifacts. 
// Miner Arcana - Astral, not Astral Sorcery.
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.addShaped("night_vision_goggles", <item:artifacts:night_vision_goggles>, [
    [<item:minecraft:string>, <item:minecraft:diamond>, <item:minecraft:string>],
    [<item:astral:sleepless_eye>, <item:minecraft:diamond>, <item:astral:sleepless_eye>]]);

craftingTable.addShaped("invisibility_scarf", <item:artifacts:scarf_of_invisibility>, [
    [<item:minecraft:blue_wool>, <item:minecraft:air>, <item:minecraft:air>],
    [<item:minecraft:blue_wool>, <item:astral:dreamweave>, <item:minecraft:blue_wool>],
    [<item:minecraft:air>, <item:minecraft:air>, <item:minecraft:blue_wool>]]);
// ---------------------------------------------------------------------------------------------------------------------------------------------


// Other Bottled Auras. 
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.addShapeless("nether_aura", <item:naturesaura:aura_bottle>.withTag({stored_type: "naturesaura:nether" as string}), [<item:naturesaura:aura_bottle>.withTag({stored_type: "naturesaura:overworld" as string}), <item:rootsclassic:infernal_bulb>]);
craftingTable.addShapeless("end_aura", <item:naturesaura:aura_bottle>.withTag({stored_type: "naturesaura:end" as string}), [<item:naturesaura:aura_bottle>.withTag({stored_type: "naturesaura:overworld" as string}), <item:rootsclassic:dragons_eye>]);
// ---------------------------------------------------------------------------------------------------------------------------------------------


// Click Machine & Pretty Pipes & Portable Tank
// AKA Making Tin Useful
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.removeRecipe(<item:clickmachine:auto_clicker>);
craftingTable.addShaped("click_machine_new", <item:clickmachine:auto_clicker>, [
    [<item:minecraft:popped_chorus_fruit>, <item:mysticalworld:tin_ingot>, <item:minecraft:popped_chorus_fruit>],
    [<item:mysticalworld:tin_ingot>, <item:twilightforest:carminite>, <item:mysticalworld:tin_ingot>],
    [<item:minecraft:popped_chorus_fruit>, <item:mysticalworld:tin_ingot>, <item:minecraft:popped_chorus_fruit>]]);

craftingTable.removeRecipe(<item:prettypipes:pipe>);
craftingTable.addShaped("pretty_pipe_new", <item:prettypipes:pipe> * 8, [
    [<item:minecraft:air>, <item:minecraft:redstone>, <item:minecraft:air>],
    [<item:mysticalworld:tin_ingot>, <item:minecraft:glass>, <item:mysticalworld:tin_ingot>]]);

craftingTable.removeRecipe(<item:ppfluids:fluid_pipe>);
craftingTable.addShaped("fluid_pipe_new", <item:ppfluids:fluid_pipe> * 8, [
    [<item:minecraft:air>, <item:minecraft:lapis_lazuli>, <item:minecraft:air>],
    [<item:mysticalworld:tin_ingot>, <item:minecraft:glass>, <item:mysticalworld:tin_ingot>]]);

craftingTable.removeRecipe(<item:prettypipes:blank_module>);
craftingTable.addShaped("pretty_module_new", <item:prettypipes:blank_module> * 2, [
    [<item:minecraft:air>, <item:minecraft:redstone>, <item:minecraft:air>],
    [<item:mysticalworld:tin_ingot>, <item:prettypipes:pipe> | <item:ppfluids:fluid_pipe>, <item:mysticalworld:tin_ingot>],
    [<item:minecraft:air>, <item:minecraft:lapis_lazuli>, <item:minecraft:air>]]);

craftingTable.removeRecipe(<item:portabletanks:basic_portable_tank>);
craftingTable.addShaped("portable_tank_new", <item:portabletanks:basic_portable_tank>, [
    [<item:mysticalworld:tin_ingot>, <tag:items:forge:glass_panes>, <item:mysticalworld:tin_ingot>],
    [<tag:items:forge:glass_panes>, <item:minecraft:bucket>, <tag:items:forge:glass_panes>],
    [<item:mysticalworld:tin_ingot>, <tag:items:forge:glass_panes>, <item:mysticalworld:tin_ingot>]]);
// ---------------------------------------------------------------------------------------------------------------------------------------------


// Metaphoric Flesh. I kinda wanna add more uses for this astral stuff, we'll see if future me actually does that and remembers to delete this comment.
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.addShapeless("metaphoric_flesh", <item:astral:metaphoric_flesh> * 2, [<item:astral:rustcap_mushroom>]);
// ---------------------------------------------------------------------------------------------------------------------------------------------


// Myalite
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.addShaped("dusky_myalite", <item:quark:dusky_myalite> * 8, [
    [<item:quark:myalite>, <item:quark:myalite>, <item:quark:myalite>],
    [<item:quark:myalite>, <item:quark:biotite>, <item:quark:myalite>],
    [<item:quark:myalite>, <item:quark:myalite>, <item:quark:myalite>]]);

craftingTable.addShaped("myalite_crystal", <item:quark:myalite_crystal> * 8, [
    [<item:quark:myalite>, <item:quark:myalite>, <item:quark:myalite>],
    [<item:quark:myalite>, <item:druidcraft:brightstone>, <item:quark:myalite>],
    [<item:quark:myalite>, <item:quark:myalite>, <item:quark:myalite>]]);
// ---------------------------------------------------------------------------------------------------------------------------------------------


// Dragon Head
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.addShaped("dragon_head", <item:minecraft:dragon_head>.withTag({display: {Lore: ["{\"text\":\"The trophy isn't used up in the recipe;\"}" as string, "{\"text\":\"It merely acts as a template.\"}" as string]}}), [
    [<item:quark:biotite>, <item:quark:biotite>, <item:quark:biotite>],
    [<item:quark:biotite>, <item:twilightforest:hydra_trophy>.reuse(), <item:quark:biotite>],
    [<item:quark:biotite>, <item:quark:biotite>, <item:quark:biotite>]], (usualOut as IItemStack, inputs as IItemStack[][]) => {
        return <item:minecraft:dragon_head>;
});
// ---------------------------------------------------------------------------------------------------------------------------------------------


// Blank Rune
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.addShaped("blank_rune", <item:quark:blank_rune> * 4, [
    [<item:twilightforest:trollsteinn>, <item:twilightforest:trollsteinn>, <item:twilightforest:trollsteinn>],
    [<item:twilightforest:trollsteinn>, <item:twilightforest:torchberries>, <item:twilightforest:trollsteinn>],
    [<item:twilightforest:trollsteinn>, <item:twilightforest:trollsteinn>, <item:twilightforest:trollsteinn>]]);
// ---------------------------------------------------------------------------------------------------------------------------------------------


// Rockroot to Liveroots
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.addShapeless("rockroot_to_liveroots", <item:twilightforest:liveroot> * 8, [<item:druidcraft:rockroot>]);
// ---------------------------------------------------------------------------------------------------------------------------------------------


// Amber to Bee Nest
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.addShaped("bee_nest_amber", <item:minecraft:bee_nest>.withTag({BlockEntityTag: {Bees: [{EntityData: {id: "minecraft:bee" as string}}, {EntityData: {id: "minecraft:bee" as string}}, {EntityData: {id: "minecraft:bee" as string}}]}, display: {Lore: ["{\"text\":\"Pre-Loaded with Bees!\",\"color\":\"yellow\"}" as string]}}), [
    [<tag:items:minecraft:planks>, <tag:items:minecraft:planks>, <tag:items:minecraft:planks>],
    [<item:druidcraft:amber>, <item:twilightforest:transformation_powder>, <item:druidcraft:amber>],
    [<tag:items:minecraft:planks>, <tag:items:minecraft:planks>, <tag:items:minecraft:planks>]]);
// ---------------------------------------------------------------------------------------------------------------------------------------------


// Scepter Cycling
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.addShapeless("shield_scepter", <item:twilightforest:shield_scepter>, [<item:twilightforest:lifedrain_scepter> | <item:twilightforest:twilight_scepter> | <item:twilightforest:zombie_scepter>, <item:druidcraft:amber>]);
craftingTable.addShapeless("lifedrain_scepter", <item:twilightforest:lifedrain_scepter>, [<item:twilightforest:shield_scepter> | <item:twilightforest:twilight_scepter> | <item:twilightforest:zombie_scepter>, <item:eidolon:zombie_heart>]);
craftingTable.addShapeless("twilight_scepter", <item:twilightforest:twilight_scepter>, [<item:twilightforest:lifedrain_scepter> | <item:twilightforest:shield_scepter> | <item:twilightforest:zombie_scepter>, <item:minecraft:ender_eye>]);
craftingTable.addShapeless("zombie_scepter", <item:twilightforest:zombie_scepter>, [<item:twilightforest:lifedrain_scepter> | <item:twilightforest:twilight_scepter> | <item:twilightforest:shield_scepter>, <item:minecraft:poisonous_potato>]);
// ---------------------------------------------------------------------------------------------------------------------------------------------


// Crafting the Seal of Warding
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.addShapeless("ending_true", <item:contenttweaker:ending_true>, [<item:contenttweaker:ending_ancient>, <item:contenttweaker:ending_cursed>, <item:contenttweaker:ending_living>]);
// ---------------------------------------------------------------------------------------------------------------------------------------------


// Elder Prismarine. I might remove this one idk
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.addShapeless("elder_prismarine", <item:quark:elder_prismarine>, [<item:minecraft:prismarine>, <item:druidcraft:elder_sapling>]);
// ---------------------------------------------------------------------------------------------------------------------------------------------


// The Emerald Eclair
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.addShapeless("emerald_eclair", <item:contenttweaker:emerald_eclair> * 2, [<item:minecraft:emerald>, <item:minecraft:sugar>, <item:minecraft:egg>, <item:minecraft:milk_bucket>, <item:minecraft:wheat>, <item:minecraft:cocoa_beans>]);
// ---------------------------------------------------------------------------------------------------------------------------------------------


// Quark made Ladders and Chests inconvenient with Modded Woods.
// Because of Quark's changes, I also get to make Archwood Chests cheaper.
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.addShaped("vanilla_ladder", <item:minecraft:ladder> * 3, [
    [<tag:items:forge:rods/wooden>, <item:minecraft:air>, <tag:items:forge:rods/wooden>],
    [<tag:items:forge:rods/wooden>, <tag:items:forge:rods/wooden>, <tag:items:forge:rods/wooden>],
    [<tag:items:forge:rods/wooden>, <item:minecraft:air>, <tag:items:forge:rods/wooden>]]);

craftingTable.removeRecipe(<item:ars_nouveau:archwood_chest>);
craftingTable.addShaped("cheaper_archwood_chest", <item:ars_nouveau:archwood_chest>, [
    [<item:ars_nouveau:archwood_planks>, <item:ars_nouveau:archwood_planks>, <item:ars_nouveau:archwood_planks>],
    [<item:ars_nouveau:archwood_planks>, <item:minecraft:air>, <item:ars_nouveau:archwood_planks>],
    [<item:ars_nouveau:archwood_planks>, <item:ars_nouveau:archwood_planks>, <item:ars_nouveau:archwood_planks>]]);

craftingTable.addShaped("vanilla_chest", <item:minecraft:chest>, [
    [<tag:items:minecraft:non_chest_woods>, <tag:items:minecraft:non_chest_woods>, <tag:items:minecraft:non_chest_woods>],
    [<tag:items:minecraft:non_chest_woods>, <item:minecraft:air>, <tag:items:minecraft:non_chest_woods>],
    [<tag:items:minecraft:non_chest_woods>, <tag:items:minecraft:non_chest_woods>, <tag:items:minecraft:non_chest_woods>]]);

// ---------------------------------------------------------------------------------------------------------------------------------------------


// I didn't need to add this recipe, but it seems like it's something that should already be in Mystical World by default.
// It's Iron Gall Ink. I thought it was neat so I added it! Also I couldn't find any sources of black dye that weren't Mystical Flowers...
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.addShapeless("iron_gall_ink", <item:mysticalworld:ink_bottle>, [<item:mysticalworld:tannin_vial>, <item:minecraft:iron_nugget>]);
// ---------------------------------------------------------------------------------------------------------------------------------------------


// Archwood Planks craftable from Stripped Archwood Logs
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.addShapeless("stripped_archwood_planks", <item:ars_nouveau:archwood_planks> * 4, [<item:ars_nouveau:stripped_blue_archwood_log> | <item:ars_nouveau:stripped_blue_archwood_wood> | <item:ars_nouveau:stripped_green_archwood_log> | <item:ars_nouveau:stripped_green_archwood_wood> | <item:ars_nouveau:stripped_red_archwood_log> | <item:ars_nouveau:stripped_red_archwood_wood> | <item:ars_nouveau:stripped_purple_archwood_log> | <item:ars_nouveau:stripped_purple_archwood_wood>]);
// ---------------------------------------------------------------------------------------------------------------------------------------------


// Ingot Unification.
// I left Mystical World's Blocks in as decorative alternatives, just in case people like the (inferior) textures.
// Also see Forge Tags script for more changes.
// ---------------------------------------------------------------------------------------------------------------------------------------------
var replacer = Replacer.forEverything().suppressWarnings();

// Lead
craftingTable.removeRecipe(<item:mysticalworld:lead_block>);
craftingTable.removeRecipe(<item:mysticalworld:lead_ingot>);
craftingTable.removeRecipe(<item:mysticalworld:lead_nugget>);
furnace.removeRecipe(<item:mysticalworld:lead_nugget>);
blastFurnace.removeRecipe(<item:mysticalworld:lead_nugget>);
furnace.removeRecipe(<item:mysticalworld:lead_ingot>);
blastFurnace.removeRecipe(<item:mysticalworld:lead_ingot>);
furnace.addRecipe("new_lead_recycling", <item:eidolon:lead_nugget>, <tag:items:mysticalworld:lead_items>, 0.15, 200);
blastFurnace.addRecipe("new_blast_lead_recycling", <item:eidolon:lead_nugget>, <tag:items:mysticalworld:lead_items>, 0.15, 100);
stoneCutter.addRecipe("lead_to_decorative_lead", <item:mysticalworld:lead_block> * 4, <item:eidolon:lead_block>);
replacer.replace(<item:mysticalworld:lead_ingot>, <item:eidolon:lead_ingot>);
replacer.replace(<item:mysticalworld:lead_nugget>, <item:eidolon:lead_nugget>);

// Copper
craftingTable.removeRecipe(<item:mysticalworld:copper_block>);
craftingTable.removeRecipe(<item:mysticalworld:copper_ingot>);
craftingTable.removeRecipe(<item:mysticalworld:copper_nugget>);
furnace.removeRecipe(<item:mysticalworld:copper_nugget>);
blastFurnace.removeRecipe(<item:mysticalworld:copper_nugget>);
furnace.removeRecipe(<item:mysticalworld:copper_ingot>);
blastFurnace.removeRecipe(<item:mysticalworld:copper_ingot>);
furnace.addRecipe("new_copper_recycling", <item:occultism:copper_nugget>, <tag:items:mysticalworld:copper_items>, 0.15, 200);
blastFurnace.addRecipe("new_blast_copper_recycling", <item:occultism:copper_nugget>, <tag:items:mysticalworld:copper_items>, 0.15, 100);
stoneCutter.addRecipe("copper_to_decorative_copper", <item:mysticalworld:copper_block> * 4, <item:occultism:copper_block>);
replacer.replace(<item:mysticalworld:copper_ingot>, <item:occultism:copper_ingot>);
replacer.replace(<item:mysticalworld:copper_nugget>, <item:occultism:copper_nugget>);

// Silver
craftingTable.removeRecipe(<item:mysticalworld:silver_block>);
craftingTable.removeRecipe(<item:mysticalworld:silver_ingot>);
craftingTable.removeRecipe(<item:mysticalworld:silver_nugget>);
furnace.removeRecipe(<item:mysticalworld:silver_nugget>);
blastFurnace.removeRecipe(<item:mysticalworld:silver_nugget>);
furnace.removeRecipe(<item:mysticalworld:silver_ingot>);
blastFurnace.removeRecipe(<item:mysticalworld:silver_ingot>);
furnace.addRecipe("new_silver_recycling", <item:occultism:silver_nugget>, <tag:items:mysticalworld:silver_items>, 0.15, 200);
blastFurnace.addRecipe("new_blast_silver_recycling", <item:occultism:silver_nugget>, <tag:items:mysticalworld:silver_items>, 0.15, 100);
stoneCutter.addRecipe("silver_to_decorative_silver", <item:mysticalworld:silver_block> * 4, <item:occultism:silver_block>);
replacer.replace(<item:mysticalworld:silver_ingot>, <item:occultism:silver_ingot>);
replacer.replace(<item:mysticalworld:silver_nugget>, <item:occultism:silver_nugget>);

replacer.execute();
// ---------------------------------------------------------------------------------------------------------------------------------------------


// Root Strands to Blocks. Why Not?
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.addShaped("root2root", <item:twilightforest:root>, [
    [<item:twilightforest:root_strand>, <item:twilightforest:root_strand>],
    [<item:twilightforest:root_strand>, <item:twilightforest:root_strand>]]);
// ---------------------------------------------------------------------------------------------------------------------------------------------



// Misc Resources.
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.addShapeless("wild_flax", <item:supplementaries:wild_flax>, [<item:supplementaries:flax>, <item:minecraft:grass>]);
craftingTable.addShapeless("uncanny_mushroom", <item:mysticalworld:uncanny_mushroom>, [<item:minecraft:red_mushroom>, <item:minecraft:purple_dye>]);
craftingTable.addShapeless("darkwood_sapling", <item:druidcraft:darkwood_sapling>, [<item:minecraft:spruce_sapling>, <item:twilightforest:darkwood_sapling>]);
craftingTable.addShaped("glowcelium_normal", <item:quark:glowcelium>, [[<item:quark:glowshroom>], [<item:minecraft:mycelium>]]);
craftingTable.addShaped("glowcelium_botania", <item:quark:glowcelium>, [[<item:quark:glowshroom>], [<item:botania:mycelium_seeds>], [<item:minecraft:dirt>]]);
craftingTable.addShapeless("cobbedstone", <item:quark:cobbedstone> * 8, [<item:minecraft:cobblestone>, <item:minecraft:cobblestone>, <item:minecraft:cobblestone>, <item:minecraft:cobblestone>, <item:minecraft:cobweb>, <item:minecraft:cobblestone>, <item:minecraft:cobblestone>, <item:minecraft:cobblestone>, <item:minecraft:cobblestone>]);
stoneCutter.addRecipe("marble_quark", <item:quark:marble>, <item:astralsorcery:marble_raw>);
stoneCutter.addRecipe("marble_as", <item:astralsorcery:marble_raw>, <item:quark:marble>);
craftingTable.addShapeless("permafrost", <item:quark:permafrost> * 8, [<item:quark:slate>, <item:quark:slate>, <item:quark:slate>, <item:quark:slate>, <item:minecraft:packed_ice>, <item:quark:slate>, <item:quark:slate>, <item:quark:slate>, <item:quark:slate>]);
craftingTable.addShapeless("brimstone", <item:quark:brimstone> * 8, [<item:quark:jasper>, <item:quark:jasper>, <item:quark:jasper>, <item:quark:jasper>, <item:minecraft:fire_charge>, <item:quark:jasper>, <item:quark:jasper>, <item:quark:jasper>, <item:quark:jasper>]);
craftingTable.addShapeless("voidstone", <item:quark:basalt> * 8, [<item:quark:limestone>, <item:quark:limestone>, <item:quark:limestone>, <item:quark:limestone>, <item:quark:biotite>, <item:quark:limestone>, <item:quark:limestone>, <item:quark:limestone>, <item:quark:limestone>]);
craftingTable.removeRecipe(<item:mysticalworld:lustrous_pearl>);
craftingTable.removeRecipe(<item:mysticalworld:pearl_block>);
craftingTable.addShapeless("pearls_from_block", <item:mysticalworld:lustrous_pearl> * 4, [<item:mysticalworld:pearl_block>]);
craftingTable.addShaped("pearls_to_block", <item:mysticalworld:pearl_block>, [[<item:mysticalworld:lustrous_pearl>, <item:mysticalworld:lustrous_pearl>], [<item:mysticalworld:lustrous_pearl>, <item:mysticalworld:lustrous_pearl>]]);
// ---------------------------------------------------------------------------------------------------------------------------------------------


// Giant Obsidian
// ---------------------------------------------------------------------------------------------------------------------------------------------
craftingTable.addShapeless("giant_obsidian", <item:minecraft:obsidian> * 64, [<item:twilightforest:giant_obsidian>]);
// ---------------------------------------------------------------------------------------------------------------------------------------------


// The Corundum Conundrum
// ---------------------------------------------------------------------------------------------------------------------------------------------
var corundum_cluster_crafts = {
    <item:quark:red_crystal_cluster> : <item:minecraft:red_dye>,
    <item:quark:orange_crystal_cluster> : <item:minecraft:orange_dye>,
    <item:quark:yellow_crystal_cluster> : <item:minecraft:yellow_dye>,
    <item:quark:green_crystal_cluster> : <item:minecraft:lime_dye>,
    <item:quark:blue_crystal_cluster> : <item:minecraft:blue_dye>,
    <item:quark:indigo_crystal_cluster> : <item:minecraft:purple_dye>,
    <item:quark:violet_crystal_cluster> : <item:minecraft:magenta_dye>,
    <item:quark:white_crystal_cluster> : <item:minecraft:white_dye>,
    <item:quark:black_crystal_cluster> : <item:minecraft:black_dye>
} as IItemStack[IItemStack];

var count = 0;
for items in corundum_cluster_crafts {
    craftingTable.addShaped("corundum_cluster_crafting_" + count, items * 8, [
        [<item:druidcraft:brightstone>, <item:druidcraft:brightstone>, <item:druidcraft:brightstone>],
        [<item:druidcraft:brightstone>, corundum_cluster_crafts[items], <item:druidcraft:brightstone>],
        [<item:druidcraft:brightstone>, <item:druidcraft:brightstone>, <item:druidcraft:brightstone>]]);
    count++;
}

var corundum_block_crafts = {
    <item:quark:red_crystal> : <item:quark:red_crystal_cluster>,
    <item:quark:orange_crystal> : <item:quark:orange_crystal_cluster>,
    <item:quark:yellow_crystal> : <item:quark:yellow_crystal_cluster>,
    <item:quark:green_crystal> : <item:quark:green_crystal_cluster>,
    <item:quark:blue_crystal> : <item:quark:blue_crystal_cluster>,
    <item:quark:indigo_crystal> : <item:quark:indigo_crystal_cluster>,
    <item:quark:violet_crystal> : <item:quark:violet_crystal_cluster>,
    <item:quark:white_crystal> : <item:quark:white_crystal_cluster>,
    <item:quark:black_crystal> : <item:quark:black_crystal_cluster>
} as IItemStack[IItemStack];

count = 0;
for items in corundum_block_crafts {
    craftingTable.addShaped("corundum_block_crafting_" + count, items, [
        [corundum_block_crafts[items], corundum_block_crafts[items]],
        [corundum_block_crafts[items], corundum_block_crafts[items]]]);
    count++;
}
// ---------------------------------------------------------------------------------------------------------------------------------------------


// The Astral Anchor
// ---------------------------------------------------------------------------------------------------------------------------------------------

craftingTable.addShaped("astral_anchor", <item:contenttweaker:astral_anchor>, [
    [<item:psi:ivory_substance>, <item:psi:ivory_substance>, <item:psi:ebony_substance>],
    [<item:psi:ivory_substance>, <item:psi:psigem>, <item:psi:ebony_substance>],
    [<item:psi:ivory_substance>, <item:psi:ebony_substance>, <item:psi:ebony_substance>]]);

// ---------------------------------------------------------------------------------------------------------------------------------------------



// <item:minecraft:air>














