Adding Recipes using LibDP - Yoghurt4C/BotaniaTweakers GitHub Wiki

  1. Navigate to data/modid/diskettes/ and create a javascript file, like mycooltweaker.js;
  2. 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