NuclearCraft CraftTweaker Recipe Addition and Removal #=====================================================# Note: The double set of brackets `([...])` is a must-have! This is basically because all NC CT methods require an array of objects, be they ingredients, strings, integers or doubles. All recipes involve five sets of information - item inputs, fluid inputs, item outputs, fluid outputs and extra info. The first four are clearly the ingredients and products involved in the recipe, and the extra info contains data such as processing time and power for machines, the base lifetime, power and heat variable of fusion combos, etc. All parts of the recipe are simply listed in the method - the internal NC code will deal with splitting it up into those five categories and packaging the information up into a recipe. Chance Ingredients #==================# Item and fluid outputs can have additional info attached to them - specifically, info that can randomise the output stack size somewhat. This additional info is simply tagged onto the end of the specified ingredient. The size of the stack produced on each process is randomly assigned from a binomial distribution specified by the chance info. The percentage and ingredient stack size play the roles of the probability and number of trials, respectively. A minimum stack size can also be specified - without this, the minimum stack size is simply 0. For ChanceFluidStacks, a 'stack difference' must also be specified, which determines the difference in size between the possible stacks (for ChanceItemStacks and ChanceOreStacks, this is effectively 1). For example, a ChanceFluidStack for an ingredient of size 500, with a stack difference of 150 and minimum stack size of 50, will produce 50, 200, 350 or 500 millibuckets of the fluid. Additional ChanceItemStack or ChanceOreStack info can be: A percentage (int), e.g. `*2, 25`, A percentage (int) and minimum stack size (int), e.g. `*3, 60, 2`. Additional ChanceFluidStack info can be: A percentage (int) and stack difference (int), e.g. `*1500, 35, 300`. A percentage (int), stack difference (int) and minimum stack size (int), e.g. `*1000, 80, 200, 400`. Note: neither the additional info nor the combination of ingredient and info should be in a set of brackets. Just write the additional info as part of the full recipe list straight after the ingredient as shown in the examples above. Recipe Addition #===============# Specifying an ingredient involves listing the item inputs, fluid inputs, item outputs, fluid outputs and extra info, in that order. Item inputs can be: An ItemStack, e.g. `*4`, An OreStack, e.g. `*2`, An empty stack, i.e. `null`. Fluid inputs can be: A FluidStack, e.g. `*1500`, An empty stack, i.e. `null`. Item outputs can be: An ItemStack, A ChanceItemStack, e.g. `*3, 50, 1`, An OreStack, A ChanceOreStack, e.g. `*4, 75`, An empty stack, i.e. `null`. Fluid outputs can be: A FluidStack, A ChanceFluidStack, e.g. `*2000, 40, 250, 500`. An empty stack, i.e. `null`. The allowed recipe extras are specified below per recipe. Be sure to use a decimal when a double is required and you want to use a whole number, e.g. `1.0` rather than just `1`. Recipe Removal #==============# When specifying a recipe to remove, all that is required is for either all input or output ingredients to be specified. Ingredient chance data is not required. Again, the items must come first, followed by the fluids. You may also want to remove all of a certain type of recipe - to do this, simply use the `removeAllRecipes()` method. ___________________________________________________________________________________________________________________________ --------------------------------------------------------------------------------------------------------------------------- Recipe Methods #==============# Note A: recipe extras in curly brackets `{...}` are optional, but must be in the order specified. For example, if you want to set a Manufactory recipe's power multiplier, you must also first set a time multiplier. Make sure to not actually include the curly brackets! Note B: input ingredients can be ORed together using CT's `<...>*x | <...>*y | ...` syntax! Manufactory: >------------< mods.nuclearcraft.manufactory.addRecipe([itemInput, itemOutput, {double timeMultiplier, double powerMultiplier, double processRadiation}]); mods.nuclearcraft.manufactory.removeRecipeWithInput([itemInput]); mods.nuclearcraft.manufactory.removeRecipeWithOutput([itemOutput]); ___________________________________________________________________________________________________________________________ Isotope Separator: >------------------< mods.nuclearcraft.isotope_separator.addRecipe([itemInput, itemOutput1, itemOutput2, {double timeMultiplier, double powerMultiplier, double processRadiation}]); mods.nuclearcraft.isotope_separator.removeRecipeWithInput([itemInput]); mods.nuclearcraft.isotope_separator.removeRecipeWithOutput([itemOutput1, itemOutput2]); ___________________________________________________________________________________________________________________________ Decay Hastener: >---------------< mods.nuclearcraft.decay_hastener.addRecipe([itemInput, itemOutput, {double timeMultiplier, double powerMultiplier, double processRadiation}]); mods.nuclearcraft.decay_hastener.removeRecipeWithInput([itemInput]); mods.nuclearcraft.decay_hastener.removeRecipeWithOutput([itemOutput]); ___________________________________________________________________________________________________________________________ Fuel Reprocessor: >-----------------< mods.nuclearcraft.fuel_reprocessor.addRecipe([itemInput, itemOutput1, itemOutput2, itemOutput3, itemOutput4, {double timeMultiplier, double powerMultiplier, double processRadiation}]); mods.nuclearcraft.fuel_reprocessor.removeRecipeWithInput([itemInput]); mods.nuclearcraft.fuel_reprocessor.removeRecipeWithOutput([itemOutput1, itemOutput2, itemOutput3, itemOutput4]); ___________________________________________________________________________________________________________________________ Alloy Furnace: >--------------< mods.nuclearcraft.alloy_furnace.addRecipe([itemInput1, itemInput2, itemOutput, {double timeMultiplier, double powerMultiplier, double processRadiation}]); mods.nuclearcraft.alloy_furnace.removeRecipeWithInput([itemInput1, itemInput2]); mods.nuclearcraft.alloy_furnace.removeRecipeWithOutput([itemOutput]); ___________________________________________________________________________________________________________________________ Infuser: >--------< mods.nuclearcraft.infuser.addRecipe([itemInput, fluidInput, itemOutput, {double timeMultiplier, double powerMultiplier, double processRadiation}]); mods.nuclearcraft.infuser.removeRecipeWithInput([itemInput, fluidInput]); mods.nuclearcraft.infuser.removeRecipeWithOutput([itemOutput]); ___________________________________________________________________________________________________________________________ Melter: >-------< mods.nuclearcraft.melter.addRecipe([itemInput, fluidOutput, {double timeMultiplier, double powerMultiplier, double processRadiation}]); mods.nuclearcraft.melter.removeRecipeWithInput([itemInput]); mods.nuclearcraft.melter.removeRecipeWithOutput([fluidOutput]); ___________________________________________________________________________________________________________________________ Supercooler: >------------< mods.nuclearcraft.supercooler.addRecipe([fluidInput, fluidOutput, {double timeMultiplier, double powerMultiplier, double processRadiation}]); mods.nuclearcraft.supercooler.removeRecipeWithInput([fluidInput]); mods.nuclearcraft.supercooler.removeRecipeWithOutput([fluidOutput]); ___________________________________________________________________________________________________________________________ Electrolyzer: >-------------< mods.nuclearcraft.electrolyser.addRecipe([fluidInput, fluidOutput1, fluidOutput2, fluidOutput3, fluidOutput4, {double timeMultiplier, double powerMultiplier, double processRadiation}]); mods.nuclearcraft.electrolyser.removeRecipeWithInput([fluidInput]); mods.nuclearcraft.electrolyser.removeRecipeWithOutput([fluidOutput1, fluidOutput2, fluidOutput3, fluidOutput4]); ___________________________________________________________________________________________________________________________ Irradiator: >-----------< mods.nuclearcraft.irradiator.addRecipe([fluidInput1, fluidInput2, fluidOutput1, fluidOutput2, {double timeMultiplier, double powerMultiplier, double processRadiation}]); mods.nuclearcraft.irradiator.removeRecipeWithInput([fluidInput1, fluidInput2]); mods.nuclearcraft.irradiator.removeRecipeWithOutput([fluidOutput1, fluidOutput2]); ___________________________________________________________________________________________________________________________ Ingot Former: >-------------< mods.nuclearcraft.ingot_former.addRecipe([fluidInput, itemOutput, {double timeMultiplier, double powerMultiplier, double processRadiation}]); mods.nuclearcraft.ingot_former.removeRecipeWithInput([fluidInput]); mods.nuclearcraft.ingot_former.removeRecipeWithOutput([itemOutput]); ___________________________________________________________________________________________________________________________ Pressurizer: >------------< mods.nuclearcraft.pressurizer.addRecipe([itemInput, itemOutput, {double timeMultiplier, double powerMultiplier, double processRadiation}]); mods.nuclearcraft.pressurizer.removeRecipeWithInput([itemInput]); mods.nuclearcraft.pressurizer.removeRecipeWithOutput([itemOutput]); ___________________________________________________________________________________________________________________________ Chemical Reactor: >-----------------< mods.nuclearcraft.chemical_reactor.addRecipe([fluidInput1, fluidInput2, fluidOutput1, fluidOutput2, {double timeMultiplier, double powerMultiplier, double processRadiation}]); mods.nuclearcraft.chemical_reactor.removeRecipeWithInput([fluidInput1, fluidInput2]); mods.nuclearcraft.chemical_reactor.removeRecipeWithOutput([fluidOutput1, fluidOutput2]); ___________________________________________________________________________________________________________________________ Salt Mixer: >-----------< mods.nuclearcraft.salt_mixer.addRecipe([fluidInput1, fluidInput2, fluidOutput, {double timeMultiplier, double powerMultiplier, double processRadiation}]); mods.nuclearcraft.salt_mixer.removeRecipeWithInput([fluidInput1, fluidInput2]); mods.nuclearcraft.salt_mixer.removeRecipeWithOutput([fluidOutput]); ___________________________________________________________________________________________________________________________ Crystallizer: >-------------< mods.nuclearcraft.crystallizer.addRecipe([fluidInput, itemOutput, {double timeMultiplier, double powerMultiplier, double processRadiation}]); mods.nuclearcraft.crystallizer.removeRecipeWithInput([fluidInput]); mods.nuclearcraft.crystallizer.removeRecipeWithOutput([itemOutput]); ___________________________________________________________________________________________________________________________ Fluid Enricher: >---------------< mods.nuclearcraft.dissolver.addRecipe([itemInput, fluidInput, fluidOutput, {double timeMultiplier, double powerMultiplier, double processRadiation}]); mods.nuclearcraft.dissolver.removeRecipeWithInput([itemInput, fluidInput]); mods.nuclearcraft.dissolver.removeRecipeWithOutput([fluidOutput]); ___________________________________________________________________________________________________________________________ Fluid Extractor: >----------------< mods.nuclearcraft.extractor.addRecipe([itemInput, itemOutput, fluidOutput, {double timeMultiplier, double powerMultiplier, double processRadiation}]); mods.nuclearcraft.extractor.removeRecipeWithInput([itemInput]); mods.nuclearcraft.extractor.removeRecipeWithOutput([itemOutput, fluidOutput]); ___________________________________________________________________________________________________________________________ Centrifuge: >-----------< mods.nuclearcraft.centrifuge.addRecipe([fluidInput, fluidOutput1, fluidOutput2, fluidOutput3, fluidOutput4, {double timeMultiplier, double powerMultiplier, double processRadiation}]); mods.nuclearcraft.centrifuge.removeRecipeWithInput([fluidInput]); mods.nuclearcraft.centrifuge.removeRecipeWithOutput([fluidOutput1, fluidOutput2, fluidOutput3, fluidOutput4]); ___________________________________________________________________________________________________________________________ Rock Crusher: >-------------< mods.nuclearcraft.rock_crusher.addRecipe([itemInput, itemOutput1, itemOutput2, itemOutput3, {double timeMultiplier, double powerMultiplier, double processRadiation}]); mods.nuclearcraft.rock_crusher.removeRecipeWithInput([itemInput]); mods.nuclearcraft.rock_crusher.removeRecipeWithOutput([itemOutput1, itemOutput2, itemOutput3]); ___________________________________________________________________________________________________________________________ Decay Generator: >----------------< mods.nuclearcraft.decay_generator.addRecipe([blockInput, blockOutput, double lifetimeTicks, double energyPerSecond, {double processRadiation}]); mods.nuclearcraft.decay_generator.removeRecipeWithInput([blockInput]); mods.nuclearcraft.decay_generator.removeRecipeWithOutput([blockOutput]); ___________________________________________________________________________________________________________________________ Fission: >--------< mods.nuclearcraft.fission.addRecipe([itemInput, itemOutput, double baseTime, double basePower, double baseHeat, String guiName, {double processRadiation}]); mods.nuclearcraft.fission.removeRecipeWithInput([itemInput]); mods.nuclearcraft.fission.removeRecipeWithOutput([itemOutput]); ___________________________________________________________________________________________________________________________ Fusion: >-------< mods.nuclearcraft.fusion.addRecipe([fluidInput1, fluidInput2, fluidOutput1, fluidOutput2, fluidOutput3, fluidOutput4, double comboTime, double comboPower, double comboHeatVar, {double processRadiation}]); mods.nuclearcraft.fusion.removeRecipeWithInput([fluidInput1, fluidInput2]); mods.nuclearcraft.fusion.removeRecipeWithOutput([fluidOutput1, fluidOutput2, fluidOutput3, fluidOutput4]); ___________________________________________________________________________________________________________________________ Salt Fission: >-------------< mods.nuclearcraft.salt_fission.addRecipe([fluidInput, fluidOutput, double baseTime, double basePower, {double processRadiation}]); mods.nuclearcraft.salt_fission.removeRecipeWithInput([fluidInput]); mods.nuclearcraft.salt_fission.removeRecipeWithOutput([fluidOutput]); ___________________________________________________________________________________________________________________________ Heat Exchanger: >---------------< mods.nuclearcraft.heat_exchanger.addRecipe([fluidInput, fluidOutput, double heatRequired, int temperatureIn, int temperatureOut]); mods.nuclearcraft.heat_exchanger.removeRecipeWithInput([fluidInput]); mods.nuclearcraft.heat_exchanger.removeRecipeWithOutput([fluidOutput]); ___________________________________________________________________________________________________________________________ Steam Turbine: >--------------< mods.nuclearcraft.turbine.addRecipe([fluidInput, fluidOutput, double powerPerMB, double expansionLevel]); mods.nuclearcraft.turbine.removeRecipeWithInput([fluidInput]); mods.nuclearcraft.turbine.removeRecipeWithOutput([fluidOutput]); ___________________________________________________________________________________________________________________________ Condenser: >----------< mods.nuclearcraft.condenser.addRecipe([fluidInput, fluidOutput, {double coolingRequired, int condensingTemperature}]); mods.nuclearcraft.condenser.removeRecipeWithInput([fluidInput]); mods.nuclearcraft.condenser.removeRecipeWithOutput([fluidOutput]); ___________________________________________________________________________________________________________________________ --------------------------------------------------------------------------------------------------------------------------- Radiation: >----------< Note: The double set of brackets `([...])` is not required here! mods.nuclearcraft.radiation.getRadiationLevel(itemInput); mods.nuclearcraft.radiation.addBlockMutation(blockInput, blockOutput, double radiationThreshold); mods.nuclearcraft.radiation.setRadiationImmunityGameStages(boolean defaultImmunity, String... stageNames); IEntityLivingBase.addRadiation(double amount, {boolean useImmunity}); IEntityLivingBase.setRadiation(double amount, {boolean useImmunity}); IEntityLivingBase.getRadiation(); IEntityLivingBase.addRadawayBuffer(double amount, {boolean slowBuffer}); IEntityLivingBase.setRadawayBuffer(double amount, {boolean slowBuffer}); IEntityLivingBase.getRadawayBuffer({boolean slowBuffer}); IEntityLivingBase.addPoisonBuffer(double amount); IEntityLivingBase.setPoisonBuffer(double amount); IEntityLivingBase.getPoisonBuffer(); IEntityLivingBase.addRadiationResistance(double amount); IEntityLivingBase.setRadiationResistance(double amount); IEntityLivingBase.getRadiationResistance(); IEntityLivingBase.getRawRadiationLevel(); IEntityLivingBase.getRadiationLevel(); ___________________________________________________________________________________________________________________________