Adding Recipes using LibDP - Yoghurt4C/BotaniaTweakers GitHub Wiki
- Navigate to data/modid/diskettes/ and create a javascript file, like mycooltweaker.js;
- This is optional, but for convenience's sake, you can write in something like
var BT = diskette.require("botaniatweaker.BotaniaDriver");
at the top of your file if you don't want to write that require() out on every line. The variable name can be anything, not just BT
.
Before you go - this mod tries to process Ingredients and ItemStacks using its own syntax before using fallback. Here are some examples:
var coal = 'minecraft:coal'
var fourCoals = 'minecraft:coal * 4'
var fourTaggedCoals = 'minecraft:coal * 4 {tagged:1b}`
var taggedCoal = 'minecraft:coal {tagged:1b}`
var fourTaggedItemsFromTheCoalsTag = '#minecraft:coals * 4 {tagged:1b}` // when passed to an Ingredient, gets all items; when passed to an ItemStack, gets the first item from the tag
And here are the same examples, but using valid LibDP syntax:
var coal = "minecraft:coal"
var fourCoals = "minecraft:coal@4"
var fourTaggedCoals = "minecraft:coal{tagged:1b}@4"
var taggedCoal = "minecraft:coal{tagged:1b}"
var fourTaggedItemsFromTheCoalsTag = "#minecraft:coals{tagged:1b}@4" // I'm not entirely sure what happens when you pass this to an ItemStack, so this might not be 'truly' valid syntax. Call me if it breaks
Brewing
// addBrew(String id, String brew, Object[] inputs)
BT.addBrew("brew_test", "haste", ["minecraft:potato", "botania:tiny_potato"])
// addBrew(String brew, Object[] inputs)
BT.addBrew("overload", ["minecraft:carrot", "minecraft:golden_carrot", "minecraft:golden_apple"])
Elven Trade
// addElvenTrade(String id, Object[] outputs, Object[] inputs)
BT.addElvenTrade("trade_test", ["minecraft:coal * 4 {tagged:1b}"], ["minecraft:charcoal", "minecraft:charcoal"])
// addElvenTrade(Object[] outputs, Object[] inputs)
BT.addElvenTrade(["minecraft:charcoal{tagged:1b}@2"], ["minecraft:coal", "minecraft:coal"])
Mana Infusion
// addManaInfusion(String id, Object output, Object input, int mana, @Nullable String catalyst)
BT.addManaInfusion("infusion_test", "minecraft:iron_ingot{epic:1b}", "minecraft:iron_ore", 200, "minecraft:blast_furnace")
// addManaInfusion(String id, Object output, Object input, int mana)
BT.addManaInfusion("ore_quintuplication", "minecraft:gold_ingot*5", "minecraft:gold_ore", 99999)
// addManaInfusion(Object output, Object input, int mana, @Nullable String catalyst)
BT.addManaInfusion("minecraft:gold_ingot*5", "minecraft:gold_ore", 99999, null)
// addManaInfusion(Object output, Object input, int mana)
BT.addManaInfusion("minecraft:gold_ingot*5", "minecraft:gold_ore", 99999)
Petal Apothecary
// addPetalApothecary(String id, Object output, Object[] inputs)
BT.addPetalApothecary("altar_test", "minecraft:cactus@2", ["minecraft:melon_slice", "minecraft:slime_ball"])
// addPetalApothecary(Object output, Object[] inputs)
BT.addPetalApothecary("minecraft:cobblestone", ["minecraft:stone", "minecraft:flint"])
Pure Daisy
// addPureDaisy(String id, String output, String input, int time)
BT.addPureDaisy("tagged_fluid_to_obsidian", "minecraft:obsidian", "#minecraft:lava", 10)
// addPureDaisy(String id, String output, String input)
BT.addPureDaisy("tagged_planks_to_first_matched_log", "#minecraft:logs", "#minecraft:planks")
// addPureDaisy(String output, String input, int time)
BT.addPureDaisy("minecraft:oak_log", "#minecraft:planks", 150)
// addPureDaisy(String output, String input)
BT.addPureDaisy("minecraft:oak_log", "#minecraft:planks")
Runic Altar
// addRuneAltar(String id, Object output, Object[] inputs, int mana)
BT.addRuneAltar("runic_altar_test", "#minecraft:wool*25", ["minecraft:string", "minecraft:diamond"], 100)
// addRuneAltar(Object output, Object[] inputs, int mana)
BT.addRuneAltar("minecraft:diamond{display: {Name : \'{"text":"Industrial Diamond"}\'}}", ["minecraft:coal", "minecraft:coal", "minecraft:coal", "minecraft:coal"], 2000)
Terrestrial Agglomeration Plate
// addTerraPlate(String id, Object output, Object[] inputs, int mana)
BT.addTerraPlate("peak_efficiency", "minecraft:dirt", ["minecraft:diamond", "minecraft:diamond"], 1)
// addTerraPlate(Object output, Object[] inputs, int mana)
BT.addTerraPlate("#minecraft:coals", ["#minecraft:leaves", "#minecraft:beds"], 1000)
Orechid
// addOrechidOre(String ore, int weight)
BT.addOrechidOre("#c:copper_ores", 9316) // <- the '#' is unnecessary, you can *only* pass tags to this
// addOrechidIgnemOre(String ore, int weight)
BT.addOrechidIgnemOre("nether_copper_ores", 3861) // <- lack of an identifier automatically prepends 'c:' to the id