import mods.gregtech.recipe.RecipeMap; import crafttweaker.recipes.IRecipeFunction; import crafttweaker.data.IData; import crafttweaker.item.IItemStack; import crafttweaker.recipes.ICraftingInfo; import scripts.common.makeShaped as makeShaped; //Conductive Iron Thruster recipes.remove(); recipes.addShaped(, [ [, , ], [, , ], [,,]]); //Leadstone Thruster recipes.remove(); recipes.addShaped(, [ [, , ], [, , ], [,,]]); //Electrical Steel Thruster recipes.remove(); recipes.addShaped(, [ [, , ], [, , ], [,,]]); //Hardened Thruster recipes.remove(); recipes.addShaped(, [ [, , ], [, , ], [,,]]); //Energetic Alloy Thruster recipes.remove(); recipes.addShaped(, [ [, , ], [, , ], [,,]]); //Reinforced Thruster recipes.remove(); recipes.addShaped(, [ [, , ], [, , ], [,,]]); //Vibrant Alloy Thruster recipes.remove(); recipes.addShaped(, [ [, , ], [, , ], [,,]]); //Dark Soularium Thruster recipes.remove(); recipes.addShaped(, [ [,,], [,,], [, , ]]); //Resonant Thruster recipes.remove(); recipes.addShaped(, [ [, , ], [, , ], [,,]]); recipes.remove(); recipes.addShaped(, [ [null, , null], [, , ], [, , ]]); recipes.remove(); recipes.addShaped( * 4, [ [null, , null], [, , ], [null, , null]]); recipes.remove(); recipes.addShaped(, [ [, , ], [, , ], [, , ]]); recipes.remove(); recipes.addShaped(, [ [, , ], [, , ], [, , ]]); recipes.remove(); recipes.addShaped(, [ [, , ], [, , ], [, , ]]); // fluxed electrum blend recipes.remove(); //crafter recipes.remove(); recipes.addShaped(, [ [,,], [, , ], [,,]]); // buffer recipes.remove(); recipes.addShaped(, [ [, , ], [, , ], [, , ]]); // basic capacitor bank recipes.remove(); recipes.addShaped(, [ [, , ], [, , ], [, , ]]); // adds the existing power of both recipe ingredient capacitor banks to be placed into the resulting craft val sumCapacitorBankPower as IRecipeFunction = function(out, ins, cInfo) { var energy = 0; if (ins.left.tag.memberGet("enderio:energy")) { energy += ins.left.tag.memberGet("enderio:energy"); } if (ins.right.tag.memberGet("enderio:energy")) { energy += ins.right.tag.memberGet("enderio:energy"); } return out.updateTag({"enderio:energy": energy}); }; // advanced capacitor bank recipes.remove(); recipes.addShaped(, [ [,,], [.marked("left"), , .marked("right")], [,,]], sumCapacitorBankPower); .displayName = "Advanced Capacitor Bank"; // vibrant capacitor bank recipes.remove(); recipes.addShaped(, [ [,,], [.marked("left"), , .marked("right")], [,,]], sumCapacitorBankPower); //slice and splice recipes.remove(); recipes.addShaped(, [ [, , ], [, , ], [, , ]]); // replaces default flux crystal recipe with one for autoclave recipes.remove(); autoclave.recipeBuilder() .inputs([]) .fluidInputs([ * 720]) .outputs([]) .duration(200).EUt(400).buildAndRegister(); //Conductive Iron Jetpack recipes.removeByRecipeName("simplyjetpacks:upgraderecipe1"); recipes.addShaped(conductiveironjetpack, [ [, , ], [, , ], [, null, ]]); //Leadstone Jetpack recipes.removeByRecipeName("simplyjetpacks:upgraderecipe30"); recipes.addShaped(leadstonejetpack, [ [, , ], [, , ], [, null, ]]); val transferTag as IRecipeFunction = function(out as IItemStack, ins as IItemStack[string], cInfo as ICraftingInfo) as IItemStack { return out.withTag(ins.jetpack.tag); }; //Electrical Steel Jetpack recipes.removeByRecipeName("simplyjetpacks:upgraderecipe2"); recipes.addShaped(electricalsteeljetpack, [ [, , ], [, conductiveironjetpack.marked("jetpack"), ], [, null, ]], transferTag); //Hardened Jetpack recipes.removeByRecipeName("simplyjetpacks:upgraderecipe31"); recipes.addShaped(hardenedjetpack, [ [, , ], [, leadstonejetpack.marked("jetpack"), ], [, null, ]], transferTag); //Energetic Alloy Jetpack recipes.removeByRecipeName("simplyjetpacks:upgraderecipe3"); recipes.addShaped(energeticjetpack, [ [, , ], [, electricalsteeljetpack.marked("jetpack"), ], [, null, ]], transferTag); //Reinforced Jetpack recipes.removeByRecipeName("simplyjetpacks:upgraderecipe32"); recipes.addShaped(reinforcedjetpack, [ [, , ], [, hardenedjetpack.marked("jetpack"), ], [, null, ]], transferTag); //Vibrant Alloy Jetpack recipes.removeByRecipeName("simplyjetpacks:upgraderecipe4"); recipes.addShaped(vibrantjetpack, [ [, compressedoctadiccap, ], [, energeticjetpack.marked("jetpack"), ], [, null, ]], transferTag); //Resonant Jetpack recipes.removeByRecipeName("simplyjetpacks:upgraderecipe33"); recipes.addShaped(resonantjetpack, [ [, , ], [, reinforcedjetpack.marked("jetpack"), ], [, null, ]], transferTag); //Dark Soularium JetPlate recipes.removeByRecipeName("simplyjetpacks:upgraderecipe5"); recipes.addShaped(darksoulariumjetplate, [ [, , ], [, armoredvibrantjetpack.marked("jetpack"), ], [, doublecompressedoctadiccap, ]], transferTag); //Flux-Infused Jetplate recipes.removeByRecipeName("simplyjetpacks:upgraderecipe34"); recipes.addShaped(fluxinfusedjetplate, [ [compressedoctadiccap, , compressedoctadiccap], [, armoredresonantjetpack.marked("jetpack"), ], [, , ]], transferTag); /* Fix Armored Jetpacks */ recipes.removeByRecipeName("simplyjetpacks:upgraderecipe15"); // conductive iron recipes.removeByRecipeName("simplyjetpacks:upgraderecipe17"); // electrical steel recipes.removeByRecipeName("simplyjetpacks:upgraderecipe19"); // energetic recipes.removeByRecipeName("simplyjetpacks:upgraderecipe21"); // vibrant recipes.removeByRecipeName("simplyjetpacks:upgraderecipeshapeless0"); // leadstone recipes.removeByRecipeName("simplyjetpacks:upgraderecipeshapeless1"); // conductive recipes.removeByRecipeName("simplyjetpacks:upgraderecipeshapeless2"); // reinforced recipes.removeByRecipeName("simplyjetpacks:upgraderecipeshapeless3"); // resonant recipes.addShapeless("armored_conductive_iron_jetpack", armoredconductiveironjetpack, [conductiveironjetpack.marked("jetpack"), ], transferTag); recipes.addShapeless("armored_electrical_steel_jetpack", armoredelectricalsteeljetpack, [electricalsteeljetpack.marked("jetpack"), ], transferTag); recipes.addShapeless("armored_energetic_jetpack", armoredenergeticjetpack, [energeticjetpack.marked("jetpack"), ], transferTag); recipes.addShapeless("armored_vibrant_jetpack", armoredvibrantjetpack, [vibrantjetpack.marked("jetpack"), ], transferTag); recipes.addShapeless("armored_leadstone_jetpack", armoredleadstonejetpack, [leadstonejetpack.marked("jetpack"), ], transferTag); recipes.addShapeless("armored_hardened_jetpack", armoredhardenedjetpack, [hardenedjetpack.marked("jetpack"), ], transferTag); recipes.addShapeless("armored_reinforced_jetpack", armoredreinforcedjetpack, [reinforcedjetpack.marked("jetpack"), ], transferTag); recipes.addShapeless("armored_resonant_jetpack", armoredresonantjetpack, [resonantjetpack.marked("jetpack"), ], transferTag); //Add Jetpack Nbt Resetting recipes //Enderio Jetpacks recipes.addShapeless(conductiveironjetpack, []); recipes.addShapeless(electricalsteeljetpack, []); recipes.addShapeless(energeticjetpack, []); recipes.addShapeless(vibrantjetpack, []); //TE Jetpacks recipes.addShapeless(leadstonejetpack, []); recipes.addShapeless(hardenedjetpack, []); recipes.addShapeless(reinforcedjetpack, []); recipes.addShapeless(resonantjetpack, []); recipes.remove(); recipes.addShaped(, [ [null, , null], [, null, ], [, ,]]); //Staff of Travel recipes.remove(); recipes.addShaped(, [ [null,null,], [null,,null], [,null,null]]); //Rod of Return recipes.remove(); recipes.addShaped(, [ [null, , ], [null, , ], [, null, null]]); //Ender Generator recipes.remove(); recipes.addShaped(, [ [,, ], [, , ], [, , ]]); //Wireless Dish recipes.remove(); recipes.addShaped(, [[],[]]); recipes.remove(); // simple machine chassis recipes.remove(); // end steel chassis // simple machine chassis recipes.addShaped(, [ [, , ], [, , ], [, , ]]); // dark steel rod + grains of infinity => infinity rod alloy.recipeBuilder() .inputs([,]) .outputs([]) .duration(200).EUt(30).buildAndRegister(); // end steel + grains => stellar alloy.recipeBuilder() .inputs([, * 8]) .outputs([]) .duration(200).EUt(2000).buildAndRegister(); // simple machine chassis + grains => industrial machine chassis alloy.recipeBuilder() .inputs([, * 2]) .outputs([]) .duration(200).EUt(30).buildAndRegister(); // end steel plate + industrial machine chassis => end steel chassis alloy.recipeBuilder() .inputs([, * 8]) .outputs([]) .duration(800).EUt(30).buildAndRegister(); // fused quartz alloy.recipeBuilder() .inputs([ * 3]) .outputs([]) .duration(80).EUt(16).buildAndRegister(); //Zombie Generator recipes.remove(); recipes.addShaped(, [ [,,], [,,], [,,]]); recipes.remove(); recipes.addShaped(, [ [, , ], [, , ], [, , ]]); //The Vat recipes.remove(); recipes.addShaped(, [ [, , ], [, , ], [, , ]]); //Solar Cells recipes.remove(); recipes.addShaped( * 4, [ [,,], [,,], [,,]]); //Capacitor recipes.remove(); recipes.addShaped(, [ [null, ,null], [, , ], [,null,]]); recipes.addShaped( * 3, [ [null, ,null], [, , ], [,null,]]); recipes.addShaped( * 2, [ [null, ,null], [, , ], [,null,]]); recipes.addShaped( * 12, [ [null, ,null], [, , ], [,null,]]); //Wired Charger recipes.remove(); recipes.addShaped( , [ [, , ], [, , ], [,,]]); //Coordinate Selector recipes.remove(); recipes.addShaped( , [ [, , ], //Ender Eye Block [null, , ], [null,null,]]); recipes.remove(); // infinity bimetal gear recipes.remove(); // energized bimetal gear recipes.remove(); // vibrant bimetal gear recipes.remove(); // pulsating crystal recipes.remove(); // vibrant crystal recipes.remove(); // dark bimetal gear recipes.remove(); recipes.remove(); recipes.remove(); recipes.remove(); // polished stone // pulsating crystal autoclave.recipeBuilder() .inputs([]) .fluidInputs([ * 144]) .outputs([]) .duration(100).EUt(30).buildAndRegister(); // vibrant crystal autoclave.recipeBuilder() .inputs([]).fluidInputs([ * 144]) .outputs([]) .duration(200).EUt(30).buildAndRegister(); // polished stone autoclave.recipeBuilder() .inputs([]).fluidInputs([ * 250]) .outputs([]) .duration(100).EUt(4).buildAndRegister(); // (granite, diorite, andesite) => polished autoclave.recipeBuilder() .inputs([]).fluidInputs([ * 250]) .outputs([]) .duration(100).EUt(4).buildAndRegister(); autoclave.recipeBuilder() .inputs([]).fluidInputs([ * 250]) .outputs([]) .duration(100).EUt(4).buildAndRegister(); autoclave.recipeBuilder() .inputs([]).fluidInputs([ * 250]) .outputs([]) .duration(100).EUt(4).buildAndRegister(); // GT certus quartz autoclave.recipeBuilder() .inputs([]) .fluidInputs([ * 250]) .outputs([]) .duration(80).EUt(16).buildAndRegister(); recipes.remove(); alloy.recipeBuilder() .inputs([,]) .outputs([]) .duration(80).EUt(16).buildAndRegister(); alloy.recipeBuilder() .inputs([, * 2]) .outputs([]) .duration(100).EUt(16).buildAndRegister(); alloy.recipeBuilder() .inputs([, * 4]) .outputs([]) .duration(150).EUt(16).buildAndRegister(); alloy.recipeBuilder() .inputs([, * 4]) .outputs([]) .duration(150).EUt(16).buildAndRegister(); alloy.recipeBuilder() .inputs([, * 4]) .outputs([]) .duration(200).EUt(16).buildAndRegister(); alloy.recipeBuilder() .inputs([, * 8]) .outputs([]) .duration(200).EUt(16).buildAndRegister(); alloy.recipeBuilder() .inputs([,]) .outputs([]) .duration(2000).EUt(30).buildAndRegister(); recipes.remove(); recipes.addShaped(, [ [,,], [,,], [,,]]); recipes.remove(); recipes.addShaped(, [ [,,], [,,], [,,]]); recipes.removeByRecipeName("enderio:enhanced_combustion_generator"); recipes.removeByRecipeName("enderio:enhanced_wired_charger"); recipes.removeByRecipeName("enderio:the_enhanced_vat"); //Killer Joe recipes.remove(); recipes.addShaped(, [ [,,], [, , ], [, , ]]); recipes.remove(); recipes.addShaped(, [ [,], [,]]); recipes.remove(); recipes.addShaped(, [ [null,null,], [null,,null], [,null,null]]); recipes.remove(); recipes.addShaped(, [ [, , ], [, , ], [, , ]]); //.displayName = "Leadstone Energy Cell Frame"; //.displayName = "Leadstone Energy Cell"; .displayName = "Micro Miner Engine Frame"; .displayName = "Micro Miner Engine Core"; .displayName = "Signalum Micro Miner Engine Frame"; .displayName = "Signalum Micro Miner Engine Core"; .displayName = "Enderium Micro Miner Engine Frame"; .displayName = "Enderium Micro Miner Engine Core"; recipes.addShaped(, [ [, , ], [, null, ], [, , ]]); recipes.addShaped(, [ [, , ], [, null, ], [, , ]]); recipes.addShaped(, [ [, , ], [, null, ], [, , ]]); // redstone cell frame (filled) => "micro miner engine core" alloy.recipeBuilder() .inputs([, * 2]) .outputs([]) .duration(500).EUt(480).buildAndRegister(); // signalum cell frame (filled) => "signalum micro miner engine core" alloy.recipeBuilder() .inputs([, * 4]) .outputs([]) .duration(1000).EUt(2000).buildAndRegister(); // resonant cell frame (filled) => "enderium micro miner engine core" alloy.recipeBuilder() .inputs([, * 8]) .outputs([]) .duration(2000).EUt(8000).buildAndRegister(); // Leadstone Energy Cell Frame recipes.remove(); recipes.addShaped(, [ [, , ], [, .withTag({"enderio:energy": 0}, false), ], [, , ]]); // Leadstone Energy Cell // hide the multi-tag one from JEI so it's not confusing mods.jei.JEI.removeAndHide(.withTag({Recv: 10000, RSControl: 0 as byte, Facing: 3 as byte, Energy: 0, SideCache: [2, 1, 1, 1, 1, 1] as byte[] as byte[], Level: 0 as byte, Send: 10000})); recipes.remove(); alloy.recipeBuilder() .inputs([, ]) .outputs([basiccell]) .duration(500).EUt(30).buildAndRegister(); // Note: applying kits in-world will also update the Send & Recv tags but that's not really needed for auto-crafting. // Conversion Kit Ugrades via Crafting Table: // basic => reinforced recipes.addShapeless("basic_to_reinforced_energy_cell_conversion", reinforcedcell, [basiccellIng.marked("cell"),], function(out, ins, cInfo) { return ins.cell.updateTag({Level: 2 as byte, Creative: 0 as byte}); } as IRecipeFunction ); // basic => signalum recipes.addShapeless("basic_to_signalum_energy_cell_conversion", signalumcell, [basiccellIng.marked("cell"),], function(out, ins, cInfo) { return ins.cell.updateTag({Level: 3 as byte, Creative: 0 as byte}); } as IRecipeFunction ); // basic => resonant recipes.addShapeless("basic_to_resonant_energy_cell_conversion", resonantcell, [basiccellIng.marked("cell"),], function(out, ins, cInfo) { return ins.cell.updateTag({Level: 4 as byte, Creative: 0 as byte}); } as IRecipeFunction ); // NOTE: technically you can use conversion kits on non-basic cell tiers but it's kind of wasteful so I'm not gonna bother adding that val upgradeTierByOne as IRecipeFunction = function(out, ins, cinfo) { var level = ins.cell.tag.Level.asByte(); return ins.cell.updateTag({Level: level+1 as byte, Creative: 0 as byte}); }; // Upgrade Kit recipes.addShapeless("basic_to_hardened_energy_cell_upgrade", hardenedcell, [basiccellIng.marked("cell"), ], upgradeTierByOne ); recipes.addShapeless("hardened_to_reinforced_energy_cell_upgrade", reinforcedcell, [hardenedcellIng.marked("cell"), ], upgradeTierByOne ); recipes.addShapeless("reinforced_to_signalum_energy_cell_upgrade", signalumcell, [reinforcedcellIng.marked("cell"), ], upgradeTierByOne ); recipes.addShapeless("signalum_to_resonant_energy_cell_upgrade", resonantcell, [signalumcellIng.marked("cell"), ], upgradeTierByOne ); // Register all energy cell tiers in JEI mods.jei.JEI.addItem(basiccell); mods.jei.JEI.addItem(hardenedcell); mods.jei.JEI.addItem(reinforcedcell); mods.jei.JEI.addItem(signalumcell); mods.jei.JEI.addItem(resonantcell); .displayName = "Dark Steel Enchanter"; recipes.remove(); recipes.addShaped(, [ [, , ], [, .withTag({Type: "extrautils2:enchanter"}), ], [null, , null]]); recipes.remove(.withTag({Type: "extrautils2:enchanter"})); recipes.addShaped(.withTag({Type: "extrautils2:enchanter"}), [ [null, , null], [, , ], [,,]]); recipes.remove(); mods.extendedcrafting.TableCrafting.addShaped(, [ [, , , ,], [, , ,,], [, , , , ], [, , , ,], [, , , ,]]); // Elevation Unit canner.recipeBuilder() .inputs() .fluidInputs( * 4032) .outputs() .duration(100) .EUt(7) .buildAndRegister(); // Coolant Unit canner.recipeBuilder() .inputs() .fluidInputs( * 6000) .outputs() .duration(100) .EUt(7) .buildAndRegister();