/* SevTech: Ages Minecraft Recipe Script This script handles the recipes for Minecraft. Note: These scripts are created and for the usage in SevTech: Ages and other modpacks curated by DarkPacks. You can use these scripts for reference and for learning but not for copying and pasting and claiming as your own. */ import crafttweaker.item.IItemStack; import crafttweaker.item.IIngredient; import mods.zenstages.Utils; import scripts.crafttweaker.utils; import scripts.crafttweaker.craftingUtils; import scripts.crafttweaker.stages.stageTwo; import scripts.crafttweaker.stages.stageThree; import scripts.crafttweaker.stages.stageFive; /* Shaped Recipes */ static shapedRecipes as IIngredient[][][][IItemStack] = { : [ [ [, , ], [, null, ], [, , ] ] ], : [ [ [, , ], [, , ] ] ], : [ [ [, , ], [, , ], [, , ] ] ], : [ [ [, , ], [, , ], [, , ] ] ], : [ [ [, ], [, ] ] ], : [ [ [, , ], [, , ] ] ], : [ [ [, , ], [, null, ] ] ], : [ [ [, null, ], [, , ], [, , ] ] ], : [ [ [, , ], [, null, ], [, null, ] ] ], : [ [ [, null, ], [, null, ] ] ], : [ [[, ]], [[, ]], [[, ]], [[, ]], [[, ]], [[, ]], [[, ]] ], * 3: [ [[, , ]] ], * 3: [ [[, , ]] ], * 3: [ [[, , ]] ], * 3: [ [[, , ]] ], * 3: [ [[, , ]] ], * 3: [ [[, , ]] ], * 3: [ [[, , ]] ], * 3: [ [[, , ]] ], * 3: [ [[, , ]] ], * 3: [ [[, , ]] ], * 3: [ [[, , ]] ], * 3: [ [[, , ]] ], : [ [[], [], []] ], * 3: [ [ [, null, ], [, , ], [, null, ] ] ], : [ [[, ], [, ]] ], : [ [ [mouldingWood, mouldingWood, mouldingWood], [mouldingWood, , mouldingWood], [mouldingWood, mouldingWood, mouldingWood] ] ], : [ [ [, null, ], [null, , null], [, null, ] ], [ [, , ], [, null, ], [, , ] ], [ [sidingWood, sidingWood, sidingWood], [sidingWood, null, sidingWood], [sidingWood, sidingWood, sidingWood] ] ], * 4: [ [ [, null, null], [null, , null], [null, null, ] ], [ [, null, null], [null, , null], [null, null, ] ] ], * 3: [ [[, null, ], [null, , null]] ], * 3: [ [[, , ]] ], : [ [ [, , ], [, , ] ] ], : [ [ [, , ], [, , ] ] ], : [ [ [, , ], [, , ] ] ], : [ [ [, , ], [, , ] ] ], : [ [ [, , ], [, , ] ] ], : [ [ [, , ], [, , ] ] ], : [ [ [, , ], [, , ] ] ], : [ [ [, , ], [, , ] ] ], : [ [ [, , ], [, , ] ] ], : [ [ [, , ], [, , ] ] ], : [ [ [, , ], [, , ] ] ], : [ [ [, , ], [, , ] ] ], : [ [ [, , ], [, , ] ] ], : [ [ [, , ], [, , ] ] ], : [ [ [, , ], [, , ] ] ], : [ [ [, , ], [, , ] ] ], : [ [[metals.gold.plate, metals.gold.plate]] ], : [ [[metals.iron.plate, metals.iron.plate]] ], : [ [ [, , ], [, , ], [, , ] ] ], : [ [ [metals.gold.plate, metals.gold.plate], [metals.gold.plate, ], [null, ] ] ], : [ [ [metals.gold.plate, null, metals.gold.plate], [metals.gold.plate, null, metals.gold.plate] ] ], : [ [ [metals.gold.plate, null, metals.gold.plate], [metals.gold.plate, metals.gold.plate, metals.gold.plate], [metals.gold.plate, metals.gold.plate, metals.gold.plate] ] ], : [ [ [metals.gold.plate, metals.gold.plate, metals.gold.plate], [metals.gold.plate, null, metals.gold.plate] ] ], : [ [ [metals.gold.plate, metals.gold.plate], [null, ], [null, ] ] ], : [ [ [metals.gold.plate, metals.gold.plate, metals.gold.plate], [metals.gold.plate, null, metals.gold.plate], [metals.gold.plate, null, metals.gold.plate] ] ], : [ [ [metals.gold.plate, metals.gold.plate, metals.gold.plate], [null, , null], [null, , null] ] ], : [ [ [metals.gold.plate], [], [] ] ], : [ [ [metals.gold.plate], [metals.gold.plate], [] ] ], : [ [ [metals.iron.plate, , metals.iron.plate], [metals.iron.plate, metals.bronze.gear, metals.iron.plate], [null, metals.iron.plate, null] ] ], * 16: [ [ [metals.iron.rod, metals.iron.rod, metals.iron.rod], [metals.iron.rod, metals.iron.rod, metals.iron.rod] ] ], : [ [ [metals.iron.plate, metals.iron.plate], [metals.iron.plate, ], [null, ] ] ], : [ [ [metals.iron.plate, null, metals.iron.plate], [metals.iron.plate, null, metals.iron.plate] ] ], : [ [ [metals.iron.plate, null, metals.iron.plate], [metals.iron.plate, metals.iron.plate, metals.iron.plate], [metals.iron.plate, metals.iron.plate, metals.iron.plate] ] ], : [ [ [metals.iron.plate, metals.iron.plate, metals.iron.plate], [metals.iron.plate, null, metals.iron.plate] ] ], : [ [ [metals.iron.plate, metals.iron.plate], [null, ], [null, ] ] ], : [ [ [metals.iron.plate, metals.iron.plate, metals.iron.plate], [metals.iron.plate, null, metals.iron.plate], [metals.iron.plate, null, metals.iron.plate] ] ], : [ [ [metals.iron.plate, metals.iron.plate, metals.iron.plate], [null, , null], [null, , null] ] ], : [ [ [metals.iron.plate], [], [] ] ], : [ [ [metals.iron.plate], [metals.iron.plate], [] ] ], : [ [ [null, ], [, null], [, null] ] ], : [ [ [sidingWood, sidingWood, sidingWood], [, metals.iron.plate, ], [, , ] ] ], : [ [ [null, , null], [, , ], [null, , null] ] ], : [ [ [null, , null], [, , ], [null, , null] ] ], : [ [ [null, , null], [, , ], [null, , null] ] ], : [ [ [null, , null], [, , ], [null, , null] ] ], : [ [ [null, , null], [, , ], [null, , null] ] ], : [ [ [null, , null], [, , ], [null, , null] ] ], : [ [ [null, , null], [, , ], [null, , null] ] ], : [ [ [null, , null], [, , ], [null, , null] ] ], : [ [ [null, , null], [, , ], [null, , null] ] ], : [ [ [null, , null], [, , ], [null, , null] ] ], : [ [ [null, , null], [, , ], [null, , null] ] ], : [ [ [null, , null], [, , ], [null, , null] ] ], : [ [ [null, , null], [, , ], [null, , null] ] ], : [ [ [null, , null], [, , ], [null, , null] ] ], : [ [ [null, , null], [, , ], [null, , null] ] ], : [ [ [null, , null], [, , ], [null, , null] ] ], : [ [[sidingAcacia, null, sidingAcacia], [sidingAcacia, sidingAcacia, sidingAcacia]] ], : [ [[sidingBirch, null, sidingBirch], [sidingBirch, sidingBirch, sidingBirch]] ], : [ [[sidingOak, null, sidingOak], [sidingOak, sidingOak, sidingOak]] ], : [ [[sidingDarkoak, null, sidingDarkoak], [sidingDarkoak, sidingDarkoak, sidingDarkoak]] ], : [ [[sidingJungle, null, sidingJungle], [sidingJungle, sidingJungle, sidingJungle]] ], : [ [[sidingSpruce, null, sidingSpruce], [sidingSpruce, sidingSpruce, sidingSpruce]] ], : [ [ [, metals.gold.plate, ], [metals.gold.plate, , metals.gold.plate], [, metals.gold.plate, ] ] ], : [ [ [null, metals.iron.plate, null], [metals.iron.plate, .withTag({Material: "iron"}), metals.iron.plate], [null, metals.iron.plate, null] ] ], : [ [ [, , ], [, , ], [, , ] ] ], : [ [ [ craftingUtils.getBucketAndTankIngredientFromName("milk"), craftingUtils.getBucketAndTankIngredientFromName("milk"), craftingUtils.getBucketAndTankIngredientFromName("milk") ], [, , ], [null, , null] ] ], * 2: [ [ [metals.iron.plate, , metals.iron.plate], [metals.iron.plate, , metals.iron.plate], [metals.iron.plate, , metals.iron.plate] ] ], * 2: [ [ [metals.iron.plate, , metals.iron.plate], [metals.iron.plate, , metals.iron.plate], [metals.iron.plate, , metals.iron.plate] ] ], * 4: [ [ [metals.gold.plate, , metals.gold.plate], [metals.gold.plate, , metals.gold.plate], [metals.gold.plate, , metals.gold.plate] ] ], * 8: [ [ [metals.iron.plate, , metals.iron.plate], [metals.iron.plate, , metals.iron.plate], [metals.iron.plate, , metals.iron.plate] ] ], * 3: [ [ [, ], [, null] ] ], : [ [ [, , ], [, , ], [, , ] ], [ [, , ], [, , ], [, , ] ] ], : [ [ [, , ], [, null, ] ] ], : [ [ [, null, ], [, , ], [, , ] ] ], : [ [ [, , ], [, null, ], [, null, ] ] ], : [ [ [, null, ], [, null, ] ] ] }; static namedShapedRecipes as IIngredient[][][][string][IItemStack] = { // ================================== // Stage Three // ================================== : { Utils.genRecipeName(stageThree, "piston"): [ [ [sidingWood, sidingWood, sidingWood], [, metals.iron.plate, ], [, , ] ] ] }, : { Utils.genRecipeName(stageThree, "jukebox"): [ [ [, , ], [, , ], [, , ] ] ] }, .firstItem: { Utils.genRecipeName(stageFive, .firstItem): [ [ [, , ], [null, null, null], [null, null, null] ] ] }, .firstItem: { Utils.genRecipeName(stageFive, .firstItem): [ [ [null, null, null], [, , ], [null, null, null] ] ] }, .firstItem: { Utils.genRecipeName(stageFive, .firstItem): [ [ [null, null, null], [null, null, null], [, , ] ] ] }, .firstItem: { Utils.genRecipeName(stageFive, .firstItem): [ [ [, null, null], [, null, null], [, null, null] ] ] }, .firstItem: { Utils.genRecipeName(stageFive, .firstItem): [ [ [null, , null], [null, , null], [null, , null] ] ] }, .firstItem: { Utils.genRecipeName(stageFive, .firstItem): [ [ [null, null, ], [null, null, ], [null, null, ] ] ] }, .firstItem: { Utils.genRecipeName(stageFive, .firstItem): [ [ [, null, null], [null, , null], [null, null, ] ] ] }, .firstItem: { Utils.genRecipeName(stageFive, .firstItem): [ [ [null, null, ], [null, , null], [, null, null] ] ] }, .firstItem: { Utils.genRecipeName(stageFive, .firstItem): [ [ [, null, ], [null, , null], [null, null, null] ] ] }, .firstItem: { Utils.genRecipeName(stageFive, .firstItem): [ [ [null, , null], [, null, ], [null, null, null] ] ] }, .firstItem: { Utils.genRecipeName(stageFive, .firstItem): [ [ [null, null, null], [null, , null], [, null, ] ] ] }, .firstItem: { Utils.genRecipeName(stageFive, .firstItem): [ [ [null, null, null], [, null, ], [null, , null] ] ] } }; /* Mirrored Recipes */ static mirroredRecipes as IIngredient[][][][IItemStack] = { : [ [ [, null, null], [null, , null], [null, null, ] ] ] }; static namedMirroredRecipes as IIngredient[][][][string][IItemStack] = { }; /* Shapeless Recipes */ static shapelessRecipes as IIngredient[][][IItemStack] = { * 9: [ [] ], : [ [, ], [, ] ], * 4: [ [, .transformNew(scripts.crafttweaker.transformers.shearsTransformFunction)], [, ] ], * 8: [ [] ], : [ [, , , ] ], : [ [, ] ], : [ [, , ] ], * 2: [ [, , ], [, ] ], : [ [, , , ] ], : [ [, , ] ], // Arrow Bundle -> Arrows * 8: [ [] ], : [ [] ] }; static namedShapelessRecipes as IIngredient[][][string][IItemStack] = { // ================================== // Stage Three // ================================== * 4: { Utils.genRecipeName(stageThree, "torch"): [ [, , ] ] } }; /* Furnace Recipes */ static furnaceRecipes as IIngredient[][IItemStack] = { : [] }; /* Recipe Removals */ static removeRecipes as IItemStack[] = [ , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]; static removeRegex as string[] = [ "minecraft:emerald", "minecraft:lapis_lazuli", "minecraft:redstone" ]; static removeFurnace as IIngredient[] = [ , , , // Charcoal Revamp , // Glass Revamp , , , , ]; static removeFurnaceInput as IIngredient[IIngredient] = { : , : }; function initElytraRecipe() { recipes.addShapeless("colored_elytra", .withTag({}), [.marked("elytra"), .marked("dye")], function(out, ins, cInfo) { //Get dye color var color as string = utils.getDyeColor(ins.dye); var colorId as int = utils.getDyeIdFromColor(color); var currentTag = ins.elytra.tag; var newTag = currentTag.update({"quark:elytraDye": colorId}); return ins.elytra.withTag(newTag); }, null ); } function init() { // Un-named recipes recipeUtil.process(shapedRecipes, false); recipeUtil.process(mirroredRecipes, true); recipeUtil.process(shapelessRecipes); // Named recipes recipeUtil.processNamed(namedShapedRecipes, false); recipeUtil.processNamed(namedMirroredRecipes, true); recipeUtil.processNamed(namedShapelessRecipes); // Furnace recipes recipeUtil.processFurnace(furnaceRecipes); // Removals recipeUtil.removeRecipes(removeRecipes); recipeUtil.removeRecipes(removeRegex); recipeUtil.removeFurnace(removeFurnace); recipeUtil.removeFurnace(removeFurnaceInput); // Init the Elytra recipe scripts.crafttweaker.recipes.mods.minecraft.initElytraRecipe(); /* Specific Overrides */ recipes.remove(); recipes.remove(); recipes.removeShaped( * 3); recipes.removeShapeless(, []); recipes.removeShapeless(, []); }