-
Notifications
You must be signed in to change notification settings - Fork 40
CraftTweaker Support
Rustic now includes CraftTweaker Integration so that modpack makers can add and remove recipes for my custom crafting systems.
To add recipes, use
mods.rustic.CrushingTub.addRecipe(output, byproduct, input);
where output is a fluidstack, and byproduct and input are both itemstacks. byproduct can be null.
To remove recipes, use any of the following methods:
mods.rustic.CrushingTub.removeRecipe(output, input);
mods.rustic.CrushingTub.removeRecipe(output);
mods.rustic.CrushingTub.removeRecipe(input);
where output is a fluidstack, and input is an itemstack.
To add recipes, use either of the following methods:
mods.rustic.EvaporatingBasin.addRecipe(output, input);
mods.rustic.EvaporatingBasin.addRecipe(output, input, time);
where output is an itemstack, and input is a fluidstack, and time is the number of ticks it takes for the input to evaporate.
To remove recipes, use either of the following methods:
mods.rustic.EvaporatingBasin.removeRecipe(output);
mods.rustic.EvaporatingBasin.removeRecipe(input);
where output is a fluidstack, and input is a fluidstack.
As of version 0.3.12, in order to use elixir itemstacks with custom effects in your scripts, you need to use the new format for elixirs. The format is:
{ElixirEffects:[{Effect:"[effect registry name]", Duration:[insert duration here], Amplifier:[insert amplifier here]}]}
Alchemy recipes are divided in simple recipe and advanced recipe. A simple recipe can be performed in the standard condenser, while an advanced recipe requires the advanced condenser.
In all the following methods, a recipe is simple if it has two ingredients or less and no modifier.
If you wish to force a 2-ingredient modifier-less recipe to require the advanced condenser, you can add a first ingredients as
nullto have a 3-ingredients recipe, where one ingredient is ignored.
To add simple alchemy recipes (2 ingredients or fewer, no modifier), you can use the simple method:
mods.rustic.Condenser.addRecipe(IItemStack output, IIngredient input1, IIngredient input2);
where:
-
outputis the output of the recipe -
input1is the first input -
input2is the second input
Recipes added that way automatically fulfill the simple recipe criteria, though you have less control.
Before version 1.1.3, the inputs must be
IItemStackIn version 1.1.3, fullIIngredientsupport was added
For more control over the modifier, bottle, the cooking time and the fluid required, the full method is:
This method is only available on version 1.1.3+
mods.rustic.Condenser.addRecipe(IItemStack output, IIngredients[] inputs, @optional IIngredient modifier, @option IIngredient bottle,@optional ILiquidStack fluid, @optional int time);
where
-
outputis the recipe output -
inputsis an array of at most 3 inputs -
modifieris the modifier required, can benullor left-out (in which case it'snull) -
bottleis the bottle required in the bottle slot. If left out, it defaults to a vanilla glass bottle. Ifnull, no bottle is required. (WARNING: do not use items that can be used as fuel in a furnace as bottles, otherwise the recipe cannot be automated. See the Alchemy page for details) -
fluidis the fluid and amount to consume. Ifnullor left out, it defaults to 125mb of water (that is,<liquid:water> * 125in CrT syntax) -
timeis the time in ticks that the recipe takes to complete, defaults to 400 if left out.
All optional parameters can be left out, but cannot be skipped. You can use null to leave an optional parameter (but not time, see also bottle) to its default.
In short, you can use the method like so:
mods.rustic.Condenser.addRecipe(output, itemstack[] inputs);
mods.rustic.Condenser.addRecipe(output, itemstack[] inputs, modifier);
mods.rustic.Condenser.addRecipe(output, itemstack[] inputs, modifier, bottle);
mods.rustic.Condenser.addRecipe(output, itemstack[] inputs, modifier, bottle, fluid);
mods.rustic.Condenser.addRecipe(output, itemstack[] inputs, modifier, bottle, fluid, time);
To remove recipes, use
mods.rustic.Condenser.removeRecipe(IItemStack output);
where output is the output for which to remove recipes.
mods.rustic.CrushingTub.addRecipe(<liquid:water> * 125, null, <minecraft:melon> * 1);
mods.rustic.EvaporatingBasin.addRecipe(<minecraft:sugar> * 1, <liquid:oliveoil> * 750);
val slownessElixir = <rustic:elixir>.withTag({ElixirEffects: [{Effect: "minecraft:slowness", Duration: 1800, Amplifier: 0}]});
val slownessExtendedElixir = <rustic:elixir>.withTag({ElixirEffects: [{Effect: "minecraft:slowness", Duration: 4800, Amplifier: 0}]});
mods.rustic.Condenser.addRecipe(slownessElixir, <minecraft:web>, <minecraft:vine>);
mods.rustic.Condenser.addRecipe(slownessExtendedElixir, [<minecraft:web>, <minecraft:vine>], <rustic:horsetail>);