From c6fe7e5c32fba09081f521991a0b2de43fc4d04d Mon Sep 17 00:00:00 2001 From: m2r1k5 <61507029+m2r1k5@users.noreply.github.com> Date: Wed, 30 Mar 2022 12:41:49 +0800 Subject: [PATCH] refactor multiblock scripts --- overrides/scripts/expertmode.zs | 452 +------------ overrides/scripts/multiblocks.zs | 819 ------------------------ overrides/scripts/multiblocks_expert.zs | 425 ++++++++++++ overrides/scripts/multiblocks_normal.zs | 25 + 4 files changed, 466 insertions(+), 1255 deletions(-) delete mode 100644 overrides/scripts/multiblocks.zs diff --git a/overrides/scripts/expertmode.zs b/overrides/scripts/expertmode.zs index 2b96c35..c0facf4 100644 --- a/overrides/scripts/expertmode.zs +++ b/overrides/scripts/expertmode.zs @@ -40,19 +40,19 @@ recipes.addShaped( * 4, [ [, , ]]); assembler.recipeBuilder().inputs([ * 3, * 4, * 2]).outputs([ * 8]).duration(80).EUt(16).buildAndRegister(); -// Hard Firebricks -recipes.removeByRecipeName("gregtech:casing_primitive_bricks"); -recipes.addShaped(, [ - [, , ], - [, .withTag({FluidName: "concrete", Amount: 1000}), ], - [, , ] -]); - -recipes.addShaped(.withTag({FluidName: "concrete", Amount: 1000}), [ - [, , ], - [, , ], - [null, , null] -]); +//// Hard Firebricks +//recipes.removeByRecipeName("gregtech:casing_primitive_bricks"); +//recipes.addShaped(, [ +// [, , ], +// [, .withTag({FluidName: "concrete", Amount: 1000}), ], +// [, , ] +//]); +// +//recipes.addShaped(.withTag({FluidName: "concrete", Amount: 1000}), [ +// [, , ], +// [, , ], +// [null, , null] +//]); // Ender Tank (Ender Storage) recipes.remove(); @@ -271,428 +271,6 @@ makeExtremeRecipe9( * 2, X : .withTag({Energy: 250000000}, false) }); -// Actualization Chamber -val actualization_chamber = Builder.start("actualization_chamber") - .withPattern(function(controller as IControllerTile) as IBlockPattern { - return FactoryBlockPattern.start() - .aisle("CCC","GGG","CCC") - .aisle("CCC","GOG","CCC") - .aisle("CSC","GGG","CCC") - .where('S', controller.self()) - .where('O', ) - .where('G', ) - .where('C', CTPredicate.states() - | controller.autoAbilities(true, false, true, true, false, false, false) - ) - .build(); - } as IPatternBuilderFunction) - .withRecipeMap( - FactoryRecipeMap.start("actualization_chamber") - .minInputs(1) - .maxInputs(2) - .minOutputs(1) - .maxOutputs(16) - .build()) - .withBaseTexture() - .buildAndRegister(); - -actualization_chamber.hasMufflerMechanics = false; -actualization_chamber.hasMaintenanceMechanics = false; - -makeExtremeRecipe5(, - ["PPPPP", - "PEFSP", - "PWGWP", - "PSFEP", - "PPPPP"], - { G : , - W : , - P : , - E : , - S : , - F : }); - -// t1 ores -actualization_chamber.recipeMap - .recipeBuilder() - .duration(780) - .EUt(30720) - .inputs() - .circuit(1) - .outputs( * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64) - .buildAndRegister(); - -// t1 gems -actualization_chamber.recipeMap - .recipeBuilder() - .duration(780) - .EUt(30720) - .inputs() - .circuit(2) - .outputs( * 64, - * 64, - * 64, - * 64) - .buildAndRegister(); - -// t1 stellar data -actualization_chamber.recipeMap - .recipeBuilder() - .duration(780) - .EUt(30720) - .inputs() - .circuit(3) - .outputs() - .buildAndRegister(); - - -// t2 ores -actualization_chamber.recipeMap - .recipeBuilder() - .duration(780) - .EUt(30720) - .inputs() - .circuit(1) - .outputs( * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64) - .buildAndRegister(); - - -// t3 gems -actualization_chamber.recipeMap - .recipeBuilder() - .duration(780) - .EUt(30720) - .inputs() - .circuit(1) - .outputs( * 64, - * 32, - * 64, - * 48, - * 32, - * 64, - * 64, - * 64) - .buildAndRegister(); - -// t3 ores -actualization_chamber.recipeMap - .recipeBuilder() - .duration(780) - .EUt(30720) - .inputs() - .circuit(2) - .outputs( * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64) - .buildAndRegister(); - -// t3 magma -actualization_chamber.recipeMap - .recipeBuilder() - .duration(780) - .EUt(30720) - .inputs() - .circuit(3) - .outputs( * 64, * 64) - .buildAndRegister(); - - - -// t4 oil and infinity -actualization_chamber.recipeMap - .recipeBuilder() - .duration(780) - .EUt(30720) - .inputs() - .circuit(1) - .outputs( * 64, - * 64, - .firstItem * 16) - .buildAndRegister(); - -// t4 ores -actualization_chamber.recipeMap - .recipeBuilder() - .duration(780) - .EUt(30720) - .inputs() - .circuit(2) - .outputs( * 64, - * 64, - * 64, - * 64, - * 32, - * 16) - .buildAndRegister(); - -// t4 pgs ores -actualization_chamber.recipeMap - .recipeBuilder() - .duration(780) - .EUt(30720) - .inputs() - .circuit(3) - .outputs( * 64, - * 64, - * 64, - * 64, - * 64, - * 20, - * 8) - .buildAndRegister(); - - -// t4.5 ow mobs -actualization_chamber.recipeMap - .recipeBuilder() - .duration(780) - .EUt(30720) - .inputs() - .circuit(1) - .outputs( * 48, - * 64, - * 64, - * 64, - * 48, - * 64, - * 64, - * 64, - * 48, - * 64, - * 64, - * 64) - .buildAndRegister(); - -// t4.5 nether mobs -actualization_chamber.recipeMap - .recipeBuilder() - .duration(780) - .EUt(30720) - .inputs() - .circuit(2) - .outputs( * 64, - * 64, - * 64, - * 48, - * 64, - * 64, - * 64, - * 4) - .buildAndRegister(); - -// t4.5 end mobs -actualization_chamber.recipeMap - .recipeBuilder() - .duration(780) - .EUt(30720) - .inputs() - .circuit(3) - .outputs( * 48, - * 16, - * 64, - * 64, - * 64) - .buildAndRegister(); - -// t4.5 dragon -actualization_chamber.recipeMap - .recipeBuilder() - .duration(780) - .EUt(30720) - .inputs() - .circuit(4) - .outputs( * 64, - * 64, - * 64, - * 64, - ) - .buildAndRegister(); - -// t4.5 wither -actualization_chamber.recipeMap - .recipeBuilder() - .duration(780) - .EUt(30720) - .inputs() - .circuit(5) - .outputs( * 64, - * 64, - * 48) - .buildAndRegister(); - - -// t5 ores -actualization_chamber.recipeMap - .recipeBuilder() - .duration(780) - .EUt(30720) - .inputs() - .circuit(1) - .outputs( * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, //Ender Pearl Block - * 16, - * 64, - * 64, - * 64, - * 64) - .buildAndRegister(); - -// t5 nq ke -actualization_chamber.recipeMap - .recipeBuilder() - .duration(780) - .EUt(30720) - .inputs() - .circuit(2) - .outputs( * 24, - * 48) - .buildAndRegister(); - - -// t6 u/pgs -actualization_chamber.recipeMap - .recipeBuilder() - .duration(780) - .EUt(30720) - .inputs() - .circuit(1) - .outputs( * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 32) - .buildAndRegister(); - -// t6 es -actualization_chamber.recipeMap - .recipeBuilder() - .duration(780) - .EUt(30720) - .inputs() - .circuit(2) - .outputs( * 32) - .buildAndRegister(); - -// t6 eggs -actualization_chamber.recipeMap - .recipeBuilder() - .duration(780) - .EUt(30720) - .inputs() - .circuit(3) - .outputs( * 32) - .buildAndRegister(); - - -// t7 hearts -actualization_chamber.recipeMap - .recipeBuilder() - .duration(780) - .EUt(30720) - .inputs() - .circuit(1) - .outputs( * 4, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, //Silver block - * 64, //Silver Block - * 64, - * 64, - * 64, //Platinum Block - * 16) - .buildAndRegister(); - -// t7 chaos -actualization_chamber.recipeMap - .recipeBuilder() - .duration(780) - .EUt(30720) - .inputs() - .circuit(2) - .outputs() - .buildAndRegister(); - - - -// t8 nt -actualization_chamber.recipeMap - .recipeBuilder() - .duration(780) - .EUt(30720) - .inputs() - .circuit(1) - .outputs( * 32, - * 64, - * 64, - * 64, - ) - .buildAndRegister(); - -// t8 eggs -actualization_chamber.recipeMap - .recipeBuilder() - .duration(780) - .EUt(30720) - .inputs() - .circuit(2) - .outputs( * 4, - * 64, - * 64, - * 64, - * 64) - .buildAndRegister(); - // Ported Hard Recipe Configs //// Harder Glass //recipes.addShaped(, [ @@ -932,7 +510,9 @@ assembly_line.recipeBuilder() .duration(800).EUt(1966080).buildAndRegister(); // Remove shortcut recipes - +recipes.remove( * 16); +recipes.removeByRecipeName("appliedenergistics2:misc/vanilla_comparator"); +recipes.remove( * 4); // Removals mods.jei.JEI.removeAndHide(); diff --git a/overrides/scripts/multiblocks.zs b/overrides/scripts/multiblocks.zs deleted file mode 100644 index b959c14..0000000 --- a/overrides/scripts/multiblocks.zs +++ /dev/null @@ -1,819 +0,0 @@ -import mods.gregtech.multiblock.Builder; -import mods.gregtech.multiblock.FactoryBlockPattern; -import mods.gregtech.multiblock.RelativeDirection; -import mods.gregtech.multiblock.functions.IPatternBuilderFunction; -import mods.gregtech.IControllerTile; -import mods.gregtech.multiblock.CTPredicate; -import mods.gregtech.multiblock.IBlockPattern; -import mods.gregtech.recipe.FactoryRecipeMap; -import mods.gregtech.recipe.RecipeMap; -import mods.gregtech.recipe.functions.IRunOverclockingLogicFunction; -import mods.gregtech.recipe.IRecipeLogic; -import mods.gregtech.recipe.IRecipe; - -import scripts.common.makeShaped as makeShaped; -import scripts.common.absolute_int as absolute_int; - -//val ROCKET_ARROW as ITextureArea = ITextureArea.fullImage("multiblocktweaker:textures/gui/progress_bar/rocket.png"); - -// multiblock stuctures -// Basic Microverse Projector - -val microverse_projector_basic = Builder.start("mbt:microverse_projector_basic") // automatic allocation ID - .withPattern(function(controller as IControllerTile) as IBlockPattern { - return FactoryBlockPattern.start() - .aisle("CCC", "CVC", "CCC") - .aisle("CCC", "GDG", "CMC") - .aisle("CSC", "CGC", "CCC") - .where('S', controller.self()) - .where('G', ) - .where('V', ) - .where('D', ) - .where("C", CTPredicate.states() | controller.autoAbilities(true, true, true, true, true, false, false)) - .where('M', controller.autoAbilities(false, false, false, false, false, false, true)) // same as CTPredicate.abilities() - .build(); - } as IPatternBuilderFunction) - .withRecipeMap( - FactoryRecipeMap.start("microverse_projector_basic") // create a RecipeMap. - .minInputs(2) - .maxInputs(4) - .minOutputs(1) - .maxOutputs(16) - .maxFluidInputs(2) - //.setProgressBar(ROCKET_ARROW, MoveType.HORIZONTAL) - .build()) - .withBaseTexture() // Looking for existing renderers in CEu. but yeah, you can also use here - .buildAndRegister(); - -microverse_projector_basic.hasMufflerMechanics = true; -microverse_projector_basic.hasMaintenanceMechanics = true; - -// Advanced Microverse Projector -val microverse_projector_advanced = Builder.start("mbt:microverse_projector_advanced") - .withPattern(function(controller as IControllerTile) as IBlockPattern { - return FactoryBlockPattern.start() - .aisle( - "CCMCC", - "CGGGC", - "CGGGC", - "CGGGC", - "CCCCC") - .aisle( - "CVCVC", - "GDDDG", - "GDDDG", - "GDDDG", - "CVCVC") - .aisle( - "CCCCC", - "GDDDG", - "GD DG", - "GDDDG", - "CCCCC") - .aisle( - "CVCVC", - "GDDDG", - "GDDDG", - "GDDDG", - "CVCVC") - .aisle( - "CCSCC", - "CGGGC", - "CGGGC", - "CGGGC", - "CCCCC") - .where('S', controller.self()) - .where('G', ) - .where('D', ) - .where('V', ) - .where(' ', CTPredicate.getAir()) - .where("C", CTPredicate.states() | controller.autoAbilities(true, true, true, true, true, false, false)) - .where('M', controller.autoAbilities(false, false, false, false, false, false, true)) // same as CTPredicate.abilities() - .build(); - } as IPatternBuilderFunction) - .withRecipeMap( - FactoryRecipeMap.start("microverse_projector_advanced") // create a RecipeMap. - .minInputs(2) - .maxInputs(4) - .minOutputs(1) - .maxOutputs(16) - .maxFluidInputs(1) - //.setProgressBar(ROCKET_ARROW, MoveType.HORIZONTAL) - .build()) - .withBaseTexture() // Looking for existing renderers in CEu. but yeah, you can also use here - .buildAndRegister(); - -microverse_projector_advanced.hasMufflerMechanics = true; -microverse_projector_advanced.hasMaintenanceMechanics = true; - -// Advanced Microverse Projector II -val microverse_projector_advanced_ii = Builder.start("mbt:microverse_projector_advanced_ii") - .withPattern(function(controller as IControllerTile) as IBlockPattern { - return FactoryBlockPattern.start() - .aisle( - " ", - " ", - " CCCCC ", - " CVCVC ", - " CCMCC ", - " CVCVC ", - " CCCCC ", - " ", - " ") - .aisle( - " ", - " CGGGC ", - " CDDDDDC ", - " GDDDDDG ", - " GDDDDDG ", - " GDDDDDG ", - " CDDDDDC ", - " CGGGC ", - " ") - .aisle( - " CCCCC ", - " CDDDDDC ", - "CDDDDDDDC", - "CDDDDDDDC", - "CDDDDDDDC", - "CDDDDDDDC", - "CDDDDDDDC", - " CDDDDDC ", - " CCCCC ") - .aisle( - " CGGGC ", - " GDDDDDG ", - "CDDDDDDDC", - "GDD DDG", - "GDD DDG", - "GDD DDG", - "CDDDDDDDC", - " GDDDDDG ", - " CGGGC ").setRepeatable(3) - .aisle( - " CCCCC ", - " CDDDDDC ", - "CDDDDDDDC", - "CDDDDDDDC", - "CDDDDDDDC", - "CDDDDDDDC", - "CDDDDDDDC", - " CDDDDDC ", - " CCCCC ") - .aisle( - " ", - " CGGGC ", - " CDDDDDC ", - " GDDDDDG ", - " GDDDDDG ", - " GDDDDDG ", - " CDDDDDC ", - " CGGGC ", - " ") - .aisle( - " ", - " ", - " CCSCC ", - " CGGGC ", - " CGGGC ", - " CGGGC ", - " CCCCC ", - " ", - " ") - - .where('S', controller.self()) - .where('G', ) - .where('V', ) - .where(' ', CTPredicate.getAir()) - .where('D', ) - .where("C", CTPredicate.states() | controller.autoAbilities(true, true, true, true, true, false, false)) - .where('M', controller.autoAbilities(false, false, false, false, false, false, true)) // same as CTPredicate.abilities() - .build(); - } as IPatternBuilderFunction) - .withRecipeMap( - FactoryRecipeMap.start("microverse_projector_advanced_ii") // create a RecipeMap. - .minInputs(2) - .maxInputs(8) - .minOutputs(1) - .maxOutputs(16) - //.setProgressBar(ROCKET_ARROW, MoveType.HORIZONTAL) - .build()) - .withBaseTexture() // Looking for existing renderers in CEu. but yeah, you can also use here - .buildAndRegister(); - -microverse_projector_advanced_ii.hasMufflerMechanics = true; -microverse_projector_advanced_ii.hasMaintenanceMechanics = true; - -// Creative Tank Provider -val creative_tank_provider = Builder.start("mbt:creative_tank_provider") - .withPattern(function(controller as IControllerTile) as IBlockPattern { - return FactoryBlockPattern.start() - .aisle("CCC", "CCC", "CCC") - .aisle("CCC", "CFC", "CCC") - .aisle("CCC", "CSC", "CCC") - .where('S', controller.self()) - .where('F', ) // Tungstencarbide Frame Box - .where("C", CTPredicate.states() | controller.autoAbilities(true, false, true, true, false, false, false)) - .build(); - } as IPatternBuilderFunction) - .withRecipeMap( - FactoryRecipeMap.start("creative_tank_provider") - .minInputs(2) - .maxInputs(2) - .minOutputs(1) - .maxOutputs(1) - .build()) - .withBaseTexture() - .buildAndRegister(); - -creative_tank_provider.hasMufflerMechanics = false; -creative_tank_provider.hasMaintenanceMechanics = false; - -// Naquadah Reactor 1 -.displayName = "Reaction-Safe Casing"; -val naquadah_reactor_1 = Builder.start("naquadah_reactor_1") - .withPattern(function(controller as IControllerTile) as IBlockPattern { - return FactoryBlockPattern.start() - .aisle( - "CCC", - "PGP", - "PGP", - "PGP", - "CCC" - ) - .aisle( - "CCC", - "GOG", - "GOG", - "GOG", - "CCC" - ) - .aisle( - "CSC", - "PGP", - "PGP", - "PGP", - "CCC" - ) - .where('S', controller.self()) - .where('G', ) - .where('P', ) - .where('O', ) - .where('C', CTPredicate.states() - | CTPredicate.abilities().setMinGlobalLimited(1).setPreviewCount(1) - | CTPredicate.abilities().setMinGlobalLimited(1).setMaxGlobalLimited(3).setPreviewCount(1) - ) - .build(); - } as IPatternBuilderFunction) - .withRecipeMap( - FactoryRecipeMap.start("naquadah_reactor_1") - .minInputs(1) - .maxInputs(1) - .minOutputs(1) - .maxOutputs(1) - .build()) - .withBaseTexture() - .buildAndRegister(); -naquadah_reactor_1.hasMufflerMechanics = false; -naquadah_reactor_1.hasMaintenanceMechanics = false; - -naquadah_reactor_1.runOverclockingLogic = function(recipelogic as IRecipeLogic, recipe as IRecipe, negativeEU as bool, maxOverclocks as int) as int[] { - return [recipe.getEUt(), recipe.getDuration()]; -} as IRunOverclockingLogicFunction; - -// Naquadah Reactor 2 -val naquadah_reactor_2 = Builder.start("naquadah_reactor_2") - .withPattern(function(controller as IControllerTile) as IBlockPattern { - return FactoryBlockPattern.start() - .aisle( - "CCC", - "PGP", - "PGP", - "PGP", - "PGP", - "CCC" - ) - .aisle( - "CCC", - "GOG", - "GOG", - "GOG", - "GOG", - "CCC" - ) - .aisle( - "CSC", - "PGP", - "PGP", - "PGP", - "PGP", - "CCC" - ) - .where('S', controller.self()) - .where('G', ) - .where('P', ) - .where('O', ) - .where('C', CTPredicate.states() - | CTPredicate.abilities().setMinGlobalLimited(1).setPreviewCount(1) - | CTPredicate.abilities().setMinGlobalLimited(1).setMaxGlobalLimited(3).setPreviewCount(1) - ) - .build(); - } as IPatternBuilderFunction) - .withRecipeMap( - FactoryRecipeMap.start("naquadah_reactor_2") - .minInputs(1) - .maxInputs(1) - .minOutputs(1) - .maxOutputs(1) - .build()) - .withBaseTexture() - .buildAndRegister(); - -naquadah_reactor_2.hasMufflerMechanics = false; -naquadah_reactor_2.hasMaintenanceMechanics = false; - -naquadah_reactor_2.runOverclockingLogic = function(recipelogic as IRecipeLogic, recipe as IRecipe, negativeEU as bool, maxOverclocks as int) as int[] { - return [recipe.getEUt(), recipe.getDuration()]; -} as IRunOverclockingLogicFunction; - - -// multiblock controller recipes -recipes.addShaped("microverse_projector_basic", , [ - [, , ], - [, , ], - [, , ] -]); - -recipes.addShaped("microverse_projector_advanced", , [ - [, , ], - [, , ], - [, , ] -]); - -recipes.addShaped("microverse_projector_advanced_ii", , [ - [, , ], - [, , ], - [, , ] -]); - -recipes.addShaped("creative_tank_provider", , [ - [, , ], - [, , ], - [, , ] -]); - -makeShaped("naquadah_reactor_1", , - ["NCN", - "GSG", - "PPP"], - { C : , //T5 - G : , - S : , - P : , - N : }); //Omnium Nugget - -makeShaped("naquadah_reactor_2", , - ["NCN", - "GSG", - "PPP"], - { C : , //T6 - G : , - S : , - P : , - N : }); //Omnium Ingot - -// multiblock recipemap recipes -// basic projector -// t1 ores -microverse_projector_basic.recipeMap - .recipeBuilder() - .duration(500) - .EUt(500) - .inputs(, - , - ) - .fluidInputs( * 8000) - .outputs( * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64) - .buildAndRegister(); - -// t1 gems -microverse_projector_basic.recipeMap - .recipeBuilder() - .duration(500) - .EUt(500) - .inputs(, - , - ) - .fluidInputs( * 8000) - .outputs( * 64, - * 64, - * 64, - * 64) - .buildAndRegister(); - -// t1 stellar creation data 1 -microverse_projector_basic.recipeMap - .recipeBuilder() - .duration(100) - .EUt(500) - .inputs(, - ) - .fluidInputs( * 2000) - .outputs() - .buildAndRegister(); - - -// t2 radium + ores -microverse_projector_basic.recipeMap - .recipeBuilder() - .duration(600) - .EUt(1000) - .inputs(, - * 2) - .fluidInputs( * 12000) - .outputs( * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64) - .buildAndRegister(); - -// t2 stellar creation data -microverse_projector_basic.recipeMap - .recipeBuilder() - .duration(120) - .EUt(1000) - .inputs(, - * 4) - .fluidInputs( * 3000) - .outputs( * 4) - .buildAndRegister(); - -// t3 gems -microverse_projector_basic.recipeMap - .recipeBuilder() - .duration(700) - .EUt(2000) - .inputs(, - * 4, - ) - .fluidInputs( * 20000) - .outputs( * 64, - * 32, - * 64, - * 48, - * 32, - * 64, - * 64, - * 64) - .buildAndRegister(); - -// t3 ores -microverse_projector_basic.recipeMap - .recipeBuilder() - .duration(700) - .EUt(2000) - .inputs(, - * 4, - ) - .fluidInputs( * 20000) - .outputs( * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64) - .buildAndRegister(); - -// advanced projector -// t4 oil and infinity -microverse_projector_advanced.recipeMap - .recipeBuilder() - .duration(800) - .EUt(3750) - .inputs(, - * 8, - , - * 64) - .outputs( * 64, - * 64, - .firstItem * 16) - .buildAndRegister(); - -// t4 dense gem ores -microverse_projector_advanced.recipeMap - .recipeBuilder() - .duration(800) - .EUt(3750) - .inputs(, - * 8, - , - * 64) - .outputs( * 64, - * 64, - * 64, - * 64, - * 32, - * 16) - .buildAndRegister(); - -// t4 osmium iridium -microverse_projector_advanced.recipeMap - .recipeBuilder() - .duration(800) - .EUt(3750) - .inputs(, - * 8, - * 4, - * 64) - .outputs( * 64, - * 64, - * 16) - .buildAndRegister(); - -// t5 ores -microverse_projector_advanced.recipeMap - .recipeBuilder() - .duration(1000) - .EUt(7500) - .inputs(, - * 16, - * 32) - .outputs( * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, //Ender Pearl Block - * 16, - * 64, - * 64, - * 64, - * 64) - .buildAndRegister(); - -// t5 naquadah sheldonite trinium -microverse_projector_advanced.recipeMap - .recipeBuilder() - .duration(1000) - .EUt(7500) - .inputs(, - * 16, - * 32) - .outputs( * 64, - * 64, - * 48, - * 64, - * 64, - * 64) - - .buildAndRegister(); - -// t6 u/os/ir -microverse_projector_advanced.recipeMap - .recipeBuilder() - .duration(1250) - .EUt(18750) - .inputs(, - * 16, - * 32, - * 16) - .outputs( * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64) - .buildAndRegister(); - -// t6 einsteinium -microverse_projector_advanced.recipeMap - .recipeBuilder() - .duration(1250) - .EUt(18750) - .inputs(, - * 16, - * 32, - * 64) - .outputs( * 32) - .buildAndRegister(); - -// t6 eggs -microverse_projector_advanced.recipeMap - .recipeBuilder() - .duration(1250) - .EUt(18750) - .inputs(, - * 16, - * 32, - * 16) - .outputs( * 32) - .buildAndRegister(); - -// advanced projector 2 -// t7 hearts -microverse_projector_advanced_ii.recipeMap - .recipeBuilder() - .duration(1500) - .EUt(31250) - .inputs(, - * 32, - .firstItem * 64, - .firstItem * 64, - * 32) - .outputs( * 32, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, - * 64, //Silver block - * 64, //Silver Block - * 64, - * 64, - * 64, //Platinum Block - * 16) - .buildAndRegister(); - -// t7 chaos lair data -microverse_projector_advanced_ii.recipeMap - .recipeBuilder() - .duration(1500) - .EUt(31250) - .inputs(, - .firstItem * 64, - .firstItem * 64, - , - * 64, - * 64, - * 64, - * 64) - .outputs() - .buildAndRegister(); - -// t8 gravistar nt -microverse_projector_advanced_ii.recipeMap - .recipeBuilder() - .duration(2000) - .EUt(62500) - .inputs(, - * 64, - .firstItem * 64, - .firstItem * 64, - .firstItem * 64, - .firstItem * 64, - * 64, - * 64) - .outputs( * 32, - * 64, - .firstItem * 16, - ) - .buildAndRegister(); - -// t8 shards eggs -microverse_projector_advanced_ii.recipeMap - .recipeBuilder() - .duration(1500) - .EUt(62500) - .inputs(, - * 64, - .firstItem * 64, - .firstItem * 64, - .firstItem * 64, - .firstItem * 64, - ) - .outputs( * 4, - * 64, - * 64, - * 64, - * 64) - .buildAndRegister(); - -// t9 nt -microverse_projector_advanced_ii.recipeMap - .recipeBuilder() - .duration(3000) - .EUt(250000) - .inputs(, - * 8, - * 4, - ) - .outputs(.firstItem * 64, - .firstItem * 64, - .firstItem * 64, - .firstItem * 64, - .firstItem * 64, - .firstItem * 64, - .firstItem * 64, - .firstItem * 64, - .firstItem * 64) - .buildAndRegister(); - -// t9 universe creation data -microverse_projector_advanced_ii.recipeMap - .recipeBuilder() - .duration(3000) - .EUt(250000) - .inputs(, - * 4, - * 64, - * 64, - * 64, - * 64) - .outputs() - .buildAndRegister(); - -// t10 hotu -microverse_projector_advanced_ii.recipeMap - .recipeBuilder() - .duration(6000) - .EUt(1000000) - .inputs(, - , - * 8) - .outputs() - .buildAndRegister(); - - -// creative tank provider -// creative tank -creative_tank_provider.recipeMap - .recipeBuilder() - .notConsumable() - .inputs() - .outputs() - .duration(500) - .EUt(100000) - .buildAndRegister(); - -// Naquadah Reactor Mk1 Recipes -naquadah_reactor_1.recipeMap - .recipeBuilder() - .duration(938) - .EUt(-262144) - .inputs() - .outputs() - .buildAndRegister(); - -naquadah_reactor_1.recipeMap - .recipeBuilder() - .duration(3750) - .EUt(-262144) - .inputs() - .outputs() - .buildAndRegister(); - -// Naquadah Reactor Mk2 Recipes -naquadah_reactor_2.recipeMap - .recipeBuilder() - .duration(1875) - .EUt(-1048576) - .inputs() - .outputs() - .buildAndRegister(); - -naquadah_reactor_2.recipeMap - .recipeBuilder() - .duration(7500) - .EUt(-1048576) - .inputs() - .outputs() - .buildAndRegister(); diff --git a/overrides/scripts/multiblocks_expert.zs b/overrides/scripts/multiblocks_expert.zs index 91c17f6..f512a8e 100644 --- a/overrides/scripts/multiblocks_expert.zs +++ b/overrides/scripts/multiblocks_expert.zs @@ -316,6 +316,34 @@ naquadah_reactor_2.runOverclockingLogic = function(recipelogic as IRecipeLogic, } as IRunOverclockingLogicFunction; +// Actualization Chamber +val actualization_chamber = Builder.start("actualization_chamber") + .withPattern(function(controller as IControllerTile) as IBlockPattern { + return FactoryBlockPattern.start() + .aisle("CCC","GGG","CCC") + .aisle("CCC","GOG","CCC") + .aisle("CSC","GGG","CCC") + .where('S', controller.self()) + .where('O', ) + .where('G', ) + .where('C', CTPredicate.states() + | controller.autoAbilities(true, false, true, true, false, false, false) + ) + .build(); + } as IPatternBuilderFunction) + .withRecipeMap( + FactoryRecipeMap.start("actualization_chamber") + .minInputs(1) + .maxInputs(2) + .minOutputs(1) + .maxOutputs(16) + .build()) + .withBaseTexture() + .buildAndRegister(); + +actualization_chamber.hasMufflerMechanics = false; +actualization_chamber.hasMaintenanceMechanics = false; + // multiblock controller recipes recipes.addShaped("microverse_projector_basic", , [ [, , ], @@ -356,6 +384,20 @@ makeShaped("naquadah_reactor_2", P : , N : }); //Omnium Ingot + +makeExtremeRecipe5(, + ["PPPPP", + "PEFSP", + "PWGWP", + "PSFEP", + "PPPPP"], + { G : , + W : , + P : , + E : , + S : , + F : }); + // multiblock recipemap recipes // basic projector // t1 ores @@ -970,6 +1012,389 @@ microverse_projector_advanced_ii.recipeMap .buildAndRegister(); +// actualization +// t1 ores +actualization_chamber.recipeMap + .recipeBuilder() + .duration(780) + .EUt(30720) + .inputs() + .circuit(1) + .outputs( * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64) + .buildAndRegister(); + +// t1 gems +actualization_chamber.recipeMap + .recipeBuilder() + .duration(780) + .EUt(30720) + .inputs() + .circuit(2) + .outputs( * 64, + * 64, + * 64, + * 64) + .buildAndRegister(); + +// t1 stellar data +actualization_chamber.recipeMap + .recipeBuilder() + .duration(780) + .EUt(30720) + .inputs() + .circuit(3) + .outputs() + .buildAndRegister(); + + +// t2 ores +actualization_chamber.recipeMap + .recipeBuilder() + .duration(780) + .EUt(30720) + .inputs() + .circuit(1) + .outputs( * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64) + .buildAndRegister(); + + +// t3 gems +actualization_chamber.recipeMap + .recipeBuilder() + .duration(780) + .EUt(30720) + .inputs() + .circuit(1) + .outputs( * 64, + * 32, + * 64, + * 48, + * 32, + * 64, + * 64, + * 64) + .buildAndRegister(); + +// t3 ores +actualization_chamber.recipeMap + .recipeBuilder() + .duration(780) + .EUt(30720) + .inputs() + .circuit(2) + .outputs( * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64) + .buildAndRegister(); + +// t3 magma +actualization_chamber.recipeMap + .recipeBuilder() + .duration(780) + .EUt(30720) + .inputs() + .circuit(3) + .outputs( * 64, * 64) + .buildAndRegister(); + + + +// t4 oil and infinity +actualization_chamber.recipeMap + .recipeBuilder() + .duration(780) + .EUt(30720) + .inputs() + .circuit(1) + .outputs( * 64, + * 64, + .firstItem * 16) + .buildAndRegister(); + +// t4 ores +actualization_chamber.recipeMap + .recipeBuilder() + .duration(780) + .EUt(30720) + .inputs() + .circuit(2) + .outputs( * 64, + * 64, + * 64, + * 64, + * 32, + * 16) + .buildAndRegister(); + +// t4 pgs ores +actualization_chamber.recipeMap + .recipeBuilder() + .duration(780) + .EUt(30720) + .inputs() + .circuit(3) + .outputs( * 64, + * 64, + * 64, + * 64, + * 64, + * 20, + * 8) + .buildAndRegister(); + + +// t4.5 ow mobs +actualization_chamber.recipeMap + .recipeBuilder() + .duration(780) + .EUt(30720) + .inputs() + .circuit(1) + .outputs( * 48, + * 64, + * 64, + * 64, + * 48, + * 64, + * 64, + * 64, + * 48, + * 64, + * 64, + * 64) + .buildAndRegister(); + +// t4.5 nether mobs +actualization_chamber.recipeMap + .recipeBuilder() + .duration(780) + .EUt(30720) + .inputs() + .circuit(2) + .outputs( * 64, + * 64, + * 64, + * 48, + * 64, + * 64, + * 64, + * 4) + .buildAndRegister(); + +// t4.5 end mobs +actualization_chamber.recipeMap + .recipeBuilder() + .duration(780) + .EUt(30720) + .inputs() + .circuit(3) + .outputs( * 48, + * 16, + * 64, + * 64, + * 64) + .buildAndRegister(); + +// t4.5 dragon +actualization_chamber.recipeMap + .recipeBuilder() + .duration(780) + .EUt(30720) + .inputs() + .circuit(4) + .outputs( * 64, + * 64, + * 64, + * 64, + ) + .buildAndRegister(); + +// t4.5 wither +actualization_chamber.recipeMap + .recipeBuilder() + .duration(780) + .EUt(30720) + .inputs() + .circuit(5) + .outputs( * 64, + * 64, + * 48) + .buildAndRegister(); + + +// t5 ores +actualization_chamber.recipeMap + .recipeBuilder() + .duration(780) + .EUt(30720) + .inputs() + .circuit(1) + .outputs( * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, //Ender Pearl Block + * 16, + * 64, + * 64, + * 64, + * 64) + .buildAndRegister(); + +// t5 nq ke +actualization_chamber.recipeMap + .recipeBuilder() + .duration(780) + .EUt(30720) + .inputs() + .circuit(2) + .outputs( * 24, + * 48) + .buildAndRegister(); + + +// t6 u/pgs +actualization_chamber.recipeMap + .recipeBuilder() + .duration(780) + .EUt(30720) + .inputs() + .circuit(1) + .outputs( * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 32) + .buildAndRegister(); + +// t6 es +actualization_chamber.recipeMap + .recipeBuilder() + .duration(780) + .EUt(30720) + .inputs() + .circuit(2) + .outputs( * 32) + .buildAndRegister(); + +// t6 eggs +actualization_chamber.recipeMap + .recipeBuilder() + .duration(780) + .EUt(30720) + .inputs() + .circuit(3) + .outputs( * 32) + .buildAndRegister(); + + +// t7 hearts +actualization_chamber.recipeMap + .recipeBuilder() + .duration(780) + .EUt(30720) + .inputs() + .circuit(1) + .outputs( * 4, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, + * 64, //Silver block + * 64, //Silver Block + * 64, + * 64, + * 64, //Platinum Block + * 16) + .buildAndRegister(); + +// t7 chaos +actualization_chamber.recipeMap + .recipeBuilder() + .duration(780) + .EUt(30720) + .inputs() + .circuit(2) + .outputs() + .buildAndRegister(); + + + +// t8 nt +actualization_chamber.recipeMap + .recipeBuilder() + .duration(780) + .EUt(30720) + .inputs() + .circuit(1) + .outputs( * 32, + * 64, + * 64, + * 64, + ) + .buildAndRegister(); + +// t8 eggs +actualization_chamber.recipeMap + .recipeBuilder() + .duration(780) + .EUt(30720) + .inputs() + .circuit(2) + .outputs( * 4, + * 64, + * 64, + * 64, + * 64) + .buildAndRegister(); + + // Naquadah Reactor Mk1 Recipes naquadah_reactor_1.recipeMap .recipeBuilder() diff --git a/overrides/scripts/multiblocks_normal.zs b/overrides/scripts/multiblocks_normal.zs index 7b4a785..2d519d3 100644 --- a/overrides/scripts/multiblocks_normal.zs +++ b/overrides/scripts/multiblocks_normal.zs @@ -206,6 +206,31 @@ val microverse_projector_advanced_ii = Builder.start("mbt:microverse_projector_a microverse_projector_advanced_ii.hasMufflerMechanics = true; microverse_projector_advanced_ii.hasMaintenanceMechanics = true; +// Creative Tank Provider +val creative_tank_provider = Builder.start("mbt:creative_tank_provider") + .withPattern(function(controller as IControllerTile) as IBlockPattern { + return FactoryBlockPattern.start() + .aisle("CCC", "CCC", "CCC") + .aisle("CCC", "CFC", "CCC") + .aisle("CCC", "CSC", "CCC") + .where('S', controller.self()) + .where('F', ) // Tungstencarbide Frame Box + .where("C", CTPredicate.states() | controller.autoAbilities(true, false, true, true, false, false, false)) + .build(); + } as IPatternBuilderFunction) + .withRecipeMap( + FactoryRecipeMap.start("creative_tank_provider") + .minInputs(2) + .maxInputs(2) + .minOutputs(1) + .maxOutputs(1) + .build()) + .withBaseTexture() + .buildAndRegister(); + +creative_tank_provider.hasMufflerMechanics = false; +creative_tank_provider.hasMaintenanceMechanics = false; + // Naquadah Reactor 1 .displayName = "Reaction-Safe Casing";