1
0
mirror of https://git.fellies.tech/minecraft/fellies.git synced 2021-02-13 10:18:48 +00:00

v0.7-1.16.5-36.0.14

This commit is contained in:
2021-02-06 12:01:02 +01:00
parent 5e60615e59
commit 3dc56febb6
278 changed files with 22789 additions and 466 deletions

View File

@ -0,0 +1,108 @@
// priority: 10
events.listen('recipes', function (event) {
// Pure Daisy Support Function
const pureDaisy = (output, input) => {
event.custom({
"type": 'botania:pure_daisy',
"input": {
"type": "block",
"block": input
},
"output": {
"name": output
}
})
}
// Alchemy Catalyst
const alchemy = (output, input, mana, group) => {
event.custom({
"type": 'botania:mana_infusion',
"input": {
"item": input
},
"output": {
"item": output
},
"mana": mana,
"group": group,
"catalyst": {
"name": "botania:alchemy_catalyst"
}
})
}
// Conjuration Catalyst
const conjuration = (output, input, mana) => {
event.custom({
"type": 'botania:mana_infusion',
"input": {
"item": input
},
"output": {
"item": output,
"count": 2
},
"mana": mana,
"group": group,
"catalyst": {
"name": "botania:conjuration_catalyst"
}
})
}
// Mana Infusion (without catalyst)
const infusion = (output, input, mana) => {
event.custom({
"type": 'botania:mana_infusion',
"input": {
"item": input
},
"output": {
"item": output,
"count": 2
},
"mana": mana,
"group": group,
"catalyst": {
"name": "botania:conjuration_catalyst"
}
})
}
// Pure Daisy Recipes
pureDaisy('forbidden_arcanus:soulless_sand', 'minecraft:soul_sand')
pureDaisy('minecraft:sand', 'forbidden_arcanus:soulless_sand')
// Alchemy Infusion Recipes
// Logs
alchemy('atmospheric:grimwood_log', 'druidcraft:darkwood_log', 40, 'botania:log_cycle')
alchemy('upgrade_aquatic:driftwood_log', 'upgrade_aquatic:river_log', 40, 'botania:log_cycle')
// Saplings
alchemy('atmospheric:grimwood_sapling', 'druidcraft:darkwood_sapling', 120, 'botania:sapling_cycle')
alchemy('atmospheric:kousa_sapling', 'atmospheric:rosewood_sapling', 120, 'botania:sapling_cycle')
alchemy('atmospheric:aspen_sapling', 'atmospheric:yucca_sapling', 120, 'botania:sapling_cycle')
alchemy('biomesoplenty:orange_autumn_sapling', 'autumnity:orange_maple_sapling', 120, 'botania:sapling_cycle')
alchemy('autumnity:orange_maple_sapling', 'biomesoplenty:orange_autumn_sapling', 120, 'botania:sapling_cycle')
alchemy('biomesoplenty:yellow_autumn_sapling', 'autumnity:yellow_maple_sapling', 120, 'botania:sapling_cycle')
alchemy('autumnity:yellow_maple_sapling', 'biomesoplenty:yellow_autumn_sapling', 120, 'botania:sapling_cycle')
alchemy('biomesoplenty:maple_sapling', 'autumnity:red_maple_sapling', 120, 'botania:sapling_cycle')
alchemy('autumnity:red_maple_sapling', 'biomesoplenty:maple_sapling', 120, 'botania:sapling_cycle')
alchemy('biomesoplenty:pink_cherry_sapling', 'forbidden_arcanus:cherrywood_sapling', 120, 'botania:sapling_cycle')
alchemy('biomesoplenty:white_cherry_sapling', 'biomesoplenty:pink_cherry_sapling', 120, 'botania:sapling_cycle')
alchemy('forbidden_arcanus:cherrywood_sapling', 'biomesoplenty:white_cherry_sapling', 120, 'botania:sapling_cycle')
// Conjuration Infusion Recipes
// Mana Infusion Recipes
})

View File

@ -0,0 +1,62 @@
// priority: 10
events.listen('recipes', function (event) {
// Add a recipe to both crushing wheels and millstone.
const crushAndMill = (output, input) => {
event.recipes.create.crushing(output, input)
event.recipes.create.milling(output, input)
}
// Atmospheric
crushAndMill([Item.of('atmospheric:arid_sand', 2), Item.of('bloodmagic:saltpeter').withChance(0.5)], '#forge:sandstone/arid')
crushAndMill([Item.of('atmospheric:red_arid_sand', 2), Item.of('bloodmagic:saltpeter').withChance(0.5)], '#forge:sandstone/red_arid')
crushAndMill([Item.of('minecraft:orange_dye', 2), Item.of('minecraft:red_dye').withChance(0.25)], 'atmospheric:hot_monkey_brush')
crushAndMill([Item.of('minecraft:light_gray_dye', 4), Item.of('minecraft:lime_dye').withChance(0.05)], 'atmospheric:tall_yucca_flower')
crushAndMill([Item.of('minecraft:purple_dye', 4), Item.of('minecraft:lime_dye').withChance(0.05)], 'atmospheric:water_hyacinth')
crushAndMill(Item.of('minecraft:yellow_dye', 2), 'atmospheric:yellow_blossoms')
// BoP
crushAndMill('biomesoplenty:white_sand', 'quark:marble')
crushAndMill('biomesoplenty:black_sand', 'minecraft:basalt')
crushAndMill([Item.of('biomesoplenty:white_sand', 2), Item.of('bloodmagic:saltpeter').withChance(0.5)], '#forge:sandstone/white')
crushAndMill([Item.of('biomesoplenty:black_sand', 2), Item.of('bloodmagic:saltpeter').withChance(0.5)], '#forge:sandstone/black')
crushAndMill([Item.of('biomesoplenty:orange_sand', 2), Item.of('bloodmagic:saltpeter').withChance(0.5)], '#forge:sandstone/orange')
// Decorative Blocks
crushAndMill('minecraft:coarse_dirt', 'decorative_blocks:rocky_dirt')
// The Endergetic Expansion
event.recipes.create.cutting('endergetic:stripped_poise_stem', 'endergetic:poise_stem')
event.recipes.create.cutting('endergetic:stripped_poise_wood', 'endergetic:poise_wood')
event.recipes.create.cutting(Item.of('endergetic:poise_planks', 5), 'endergetic:stripped_poise_stem')
event.recipes.create.cutting(Item.of('endergetic:poise_planks', 5), 'endergetic:stripped_poise_wood')
// Farmer's Delight
crushAndMill([Item.of('farmersdelight:rice', 9), Item.of('farmersdelight:straw', 9)], 'farmersdelight:rice_bale')
// Mekanism
event.recipes.create.splashing([Item.of('mekanism:nugget_copper', 10), Item.of('mekanism:nugget_copper', 5).withChance(0.5)], 'create:crushed_copper_ore')
// Minecraft
// Sandstone crushing was already in, but this gives parity with Immersive Engineering (ie. 2 sand instead of 1, and chance for saltpeter)
crushAndMill([Item.of('minecraft:sand', 2), Item.of('bloodmagic:saltpeter').withChance(0.5)], '#forge:sandstone/colorless')
crushAndMill([Item.of('minecraft:red_sand', 2), Item.of('bloodmagic:saltpeter').withChance(0.5)], '#forge:sandstone/red')
// The original Nether Wart block crushing was terribly underpowered. Now gives back exactly what was put in.
crushAndMill(Item.of('minecraft:nether_wart', 4), 'minecraft:nether_wart_block')
// Quark
crushAndMill([Item.of('minecraft:sugar', 18), Item.of('minecraft:sugar', 2).withChance(0.5), Item.of('minecraft:sugar', 2).withChance(0.25), Item.of('minecraft:sugar', 2).withChance(0.1)], 'quark:sugar_cane_block')
// Upgrade Aquatic
event.recipes.create.splashing('upgrade_aquatic:driftwood_log', 'upgrade_aquatic:river_log')
event.recipes.create.splashing('upgrade_aquatic:driftwood', 'upgrade_aquatic:river_wood')
event.recipes.create.splashing('upgrade_aquatic:stripped_driftwood_log', 'upgrade_aquatic:stripped_river_log')
event.recipes.create.splashing('upgrade_aquatic:stripped_driftwood', 'upgrade_aquatic:stripped_river_wood')
event.recipes.create.cutting('upgrade_aquatic:stripped_driftwood_log', 'upgrade_aquatic:driftwood_log')
event.recipes.create.cutting('upgrade_aquatic:stripped_driftwood', 'upgrade_aquatic:driftwood')
event.recipes.create.cutting(Item.of('upgrade_aquatic:driftwood_planks', 5), 'upgrade_aquatic:stripped_driftwood_log')
event.recipes.create.cutting(Item.of('upgrade_aquatic:driftwood_planks', 5), 'upgrade_aquatic:stripped_driftwood')
crushAndMill([Item.of('minecraft:pink_dye', 2), Item.of('minecraft:green_dye').withChance(0.1)], 'upgrade_aquatic:pink_searocket')
crushAndMill([Item.of('minecraft:white_dye', 2), Item.of('minecraft:green_dye').withChance(0.1)], 'upgrade_aquatic:white_searocket')
})

View File

@ -0,0 +1,28 @@
// priority: 10
events.listen('recipes', function (event) {
// Cutting Board Axe Recipes
const axeCutting = (output, input) => {
event.custom({
type: "farmersdelight:cutting",
ingredients: [
Ingredient.of(input).toJson()
],
tool: {
type: "axe"
},
result: [
Item.of(output).toResultJson(),
Item.of("farmersdelight:tree_bark").toResultJson()
],
sound: "minecraft:item.axe.strip"
})
}
axeCutting('druidcraft:stripped_darkwood_log', 'druidcraft:darkwood_log')
axeCutting('druidcraft:stripped_darkwood_wood', 'druidcraft:darkwood_wood')
axeCutting('druidcraft:stripped_elder_log', 'druidcraft:elder_log')
axeCutting('druidcraft:stripped_elder_wood', 'druidcraft:elder_wood')
})

View File

@ -0,0 +1,53 @@
// priority: 10
events.listen('recipes', function (event) {
// Atmospheric Compat
event.recipes.immersiveengineering.metal_press(Item.of('atmospheric:aloe_leaves', 9), 'atmospheric:aloe_bundle', 'immersiveengineering:mold_unpacking')
event.recipes.immersiveengineering.metal_press(Item.of('atmospheric:barrel_cactus', 9), 'atmospheric:barrel_cactus_batch', 'immersiveengineering:mold_unpacking')
event.recipes.immersiveengineering.metal_press(Item.of('atmospheric:passion_vine', 9), 'atmospheric:passion_vine_bundle', 'immersiveengineering:mold_unpacking')
// Autumnity Compat
event.recipes.immersiveengineering.metal_press(Item.of('autumnity:snail_slime', 9), 'autumnity:snail_slime_block', 'immersiveengineering:mold_unpacking')
// BoP Compat
event.recipes.immersiveengineering.crusher('biomesoplenty:white_sand', 'quark:marble')
event.recipes.immersiveengineering.crusher('biomesoplenty:black_sand', 'minecraft:basalt')
event.recipes.immersiveengineering.crusher(Item.of('biomesoplenty:white_sand', 2), '#forge:sandstone/white', Item.of('bloodmagic:saltpeter').withChance(0.5))
event.recipes.immersiveengineering.crusher(Item.of('biomesoplenty:black_sand', 2), '#forge:sandstone/black', Item.of('bloodmagic:saltpeter').withChance(0.5))
event.recipes.immersiveengineering.crusher(Item.of('biomesoplenty:orange_sand', 2), '#forge:sandstone/orange', Item.of('bloodmagic:saltpeter').withChance(0.5))
// Create Compat
event.recipes.immersiveengineering.metal_press('create:lapis_sheet', 'minecraft:lapis_block', 'immersiveengineering:mold_plate')
// Decorative Blocks Compat
event.recipes.immersiveengineering.crusher('minecraft:coarse_dirt', 'decorative_blocks:rocky_dirt')
// Forbidden & Arcanus Compat
event.recipes.immersiveengineering.crusher(Item.of('forbidden_arcanus:soulless_sand', 2), '#forge:sandstone/soulless')
// Industrial Foregoing Compat
event.recipes.immersiveengineering.fertilizer('industrialforegoing:fertilizer').growthModifier(1.5)
// Mekanism Compat
event.recipes.immersiveengineering.blast_furnace_fuel('#mekanism:enriched/carbon').time(600)
// MineColonies Compat
event.recipes.immersiveengineering.fertilizer('minecolonies:compost').growthModifier(1.5)
// Minecraft Tweaks
event.recipes.immersiveengineering.crusher('minecraft:red_sand', 'minecraft:granite')
// Blaze Rods are Expensive to prevent exploiting - needs to match the most dust you can get from processing them.
event.recipes.immersiveengineering.metal_press('minecraft:blaze_rod', Item.of('minecraft:blaze_powder', 6), 'immersiveengineering:mold_rod')
event.recipes.immersiveengineering.metal_press(Item.of('minecraft:dried_kelp', 9), 'minecraft:dried_kelp_block', 'immersiveengineering:mold_unpacking')
event.recipes.immersiveengineering.metal_press(Item.of('minecraft:nether_wart', 4), 'minecraft:nether_wart_block', 'immersiveengineering:mold_unpacking')
// Quark Compat
event.recipes.immersiveengineering.crusher(Item.of('minecraft:soul_sand', 2), '#forge:sandstone/soul')
// Titanium Compat (Industrial Foregoing)
event.recipes.immersiveengineering.metal_press('titanium:diamond_gear', Item.of('minecraft:diamond', 4), 'immersiveengineering:mold_gear')
// Upgrade Aquatic Compat
event.recipes.immersiveengineering.metal_press('upgrade_aquatic:prismarine_rod', Item.of('minecraft:prismarine_shard', 2), 'immersiveengineering:mold_rod')
})

View File

@ -0,0 +1,50 @@
// priority: 10
events.listen('recipes', function (event) {
// Infusion Conversion
const infusionConversion = (type, ingredient, amount) => {
event.custom({
type: 'mekanism:infusion_conversion',
input: {
ingredient: Ingredient.of(ingredient).toJson()
},
output: {
infuse_type: type,
amount: amount
}
})
}
// BoP
event.recipes.mekanism.crushing('biomesoplenty:white_sand', 'quark:marble')
event.recipes.mekanism.crushing('biomesoplenty:black_sand', 'minecraft:basalt')
// Decorative Blocks
event.recipes.mekanism.crushing('minecraft:coarse_dirt', 'decorative_blocks:rocky_dirt')
// Mekanism - Bio Fuel
event.recipes.mekanism.crushing(Item.of('mekanism:bio_fuel', 5), '#minecraft:flowers')
event.recipes.mekanism.crushing(Item.of('mekanism:bio_fuel', 2), '#minecraft:saplings')
event.recipes.mekanism.crushing(Item.of('mekanism:bio_fuel', 2), '#minecraft:leaves')
event.recipes.mekanism.crushing(Item.of('mekanism:bio_fuel', 2), '#forge:seeds')
event.recipes.mekanism.crushing(Item.of('mekanism:bio_fuel', 2), 'upgrade_aquatic:beachgrass')
event.recipes.mekanism.crushing(Item.of('mekanism:bio_fuel', 4), 'upgrade_aquatic:tall_beachgrass')
event.recipes.mekanism.crushing(Item.of('mekanism:bio_fuel', 5), 'endergetic:poise_bush')
event.recipes.mekanism.crushing(Item.of('mekanism:bio_fuel', 5), 'endergetic:tall_poise_bush')
event.recipes.mekanism.crushing(Item.of('mekanism:bio_fuel', 4), 'atmospheric:passion_vine')
event.recipes.mekanism.crushing(Item.of('mekanism:bio_fuel', 7), 'farmersdelight:rice_bale')
event.recipes.mekanism.crushing(Item.of('mekanism:bio_fuel', 7), 'farmersdelight:straw_bale')
event.recipes.mekanism.crushing(Item.of('mekanism:bio_fuel', 2), 'farmersdelight:straw')
event.recipes.mekanism.crushing(Item.of('mekanism:bio_fuel', 7), 'quark:sugar_cane_block')
// Minecraft
event.recipes.mekanism.crushing('minecraft:red_sand', 'minecraft:granite')
// Immersive Engineering Compat
event.recipes.mekanism.enriching(Item.of('mekanism:enriched_carbon', 2), '#forge:coal_coke')
infusionConversion('mekanism:carbon', '#forge:coal_coke', 40)
infusionConversion('mekanism:carbon', '#forge:dusts/coal_coke', 40)
})

View File

@ -0,0 +1,188 @@
// priority: 100
events.listen('recipes', function (event) {
var idRemove = [
// Aquaculture
'aquaculture:planks_from_driftwood',
// Botania
'botania:pure_daisy/sand', // Replaced with a different recipe.
// Charm
'charm:extra_recipes/soul_torch',
'charm:extra_recipes/trident',
// Create
'create:milling/sandstone', // Replaced to add output parity with IE.
'create:crushing/nether_wart_block', // Replaced to add output parity with IE.
'create:compat/atmospheric/milling/hot_monkey_brush', // Fix erroring recipe.
'create:compat/upgrade_aquatic/milling/searocket_pink', // Fix erroring recipe.
'create:compat/upgrade_aquatic/milling/searocket_white', // Fix erroring recipe.
'create:compat/atmospheric/cutting/driftwood_log', // Fix erroring recipe.
'create:compat/atmospheric/cutting/stripped_driftwood_log', // Fix erroring recipe.
// Decorative Blocks
'decorative_blocks:chain', // Replaced with a different recipe.
'decorative_blocks:dirt_from_rocky_dirt', // Removed entirely, no neat way to uncraft with the new recipe.
'decorative_blocks:rocky_dirt', // Replaced with a different recipe.
// Druidcraft
'druidcraft:acacia_pressure_plate_from_acacia_planks_woodcutting', // Replaced with a different recipe.
'druidcraft:birch_pressure_plate_from_birch_planks_woodcutting', // Replaced with a different recipe.
'druidcraft:dark_oak_pressure_plate_from_dark_oak_planks_woodcutting', // Replaced with a different recipe.
'druidcraft:darkwood_pressure_plate_from_darkwood_planks_woodcutting', // Replaced with a different recipe.
'druidcraft:elder_pressure_plate_from_elder_planks_woodcutting', // Replaced with a different recipe.
'druidcraft:jungle_pressure_plate_from_jungle_planks_woodcutting', // Replaced with a different recipe.
'druidcraft:oak_pressure_plate_from_oak_planks_woodcutting', // Replaced with a different recipe.
'druidcraft:spruce_pressure_plate_from_spruce_planks_woodcutting', // Replaced with a different recipe.
// Immersive Engineering
'immersive_engineering:paper_from_sawdust', // Removed since Mekanism method made this redundant.
// Industrial Foregoing
'industrialforegoing:infinity_drill',
// Mekanism
'mekanism:crushing/biofuel/oak_sapling',
'mekanism:crushing/biofuel/spruce_sapling',
'mekanism:crushing/biofuel/birch_sapling',
'mekanism:crushing/biofuel/jungle_sapling',
'mekanism:crushing/biofuel/acacia_sapling',
'mekanism:crushing/biofuel/dark_oak_sapling',
'mekanism:crushing/biofuel/oak_leaves',
'mekanism:crushing/biofuel/spruce_leaves',
'mekanism:crushing/biofuel/birch_leaves',
'mekanism:crushing/biofuel/jungle_leaves',
'mekanism:crushing/biofuel/acacia_leaves',
'mekanism:crushing/biofuel/dark_oak_leaves',
'mekanism:crushing/biofuel/beetroot_seeds',
'mekanism:crushing/biofuel/melon_seeds',
'mekanism:crushing/biofuel/pumpkin_seeds',
'mekanism:crushing/biofuel/wheat_seeds',
'mekanism:crushing/biofuel/dandelion',
'mekanism:crushing/biofuel/poppy',
'mekanism:crushing/biofuel/blue_orchid',
'mekanism:crushing/biofuel/allium',
'mekanism:crushing/biofuel/azure_bluet',
'mekanism:crushing/biofuel/red_tulip',
'mekanism:crushing/biofuel/orange_tulip',
'mekanism:crushing/biofuel/white_tulip',
'mekanism:crushing/biofuel/pink_tulip',
'mekanism:crushing/biofuel/oxeye_daisy',
'mekanism:crushing/biofuel/cornflower',
'mekanism:crushing/biofuel/lily_of_the_valley',
'mekanism:crushing/biofuel/wither_rose',
'mekanism:crushing/biofuel/sunflower',
'mekanism:crushing/biofuel/lilac',
'mekanism:crushing/biofuel/rose_bush',
'mekanism:crushing/biofuel/peony',
// MineColonies
'minecolonies:chainmailhelmet',
'minecolonies:chainmailchestplate',
'minecolonies:chainmailleggings',
'minecolonies:chainmailboots',
// Mystical World
'mysticalworld:ingots_silver_to_storage_block', // Duplicate recipe.
// Quark
'quark:building/crafting/oak_bookshelf' // Duplicate recipe.
]
idRemove.forEach(function (remove) {
event.remove({id: remove})
})
var outputRemove = [
// Charm
'charm:woodcutter', // Replaced with Druidcraft Woodcutter (and soon Environmental Sawmill)
// Comforts
'comforts:sleeping_bag_white', // This and below are replaced with bedrolls from Upgrade Aquatic / Druidcraft
'comforts:sleeping_bag_orange',
'comforts:sleeping_bag_magenta',
'comforts:sleeping_bag_light_blue',
'comforts:sleeping_bag_yellow',
'comforts:sleeping_bag_lime',
'comforts:sleeping_bag_pink',
'comforts:sleeping_bag_gray',
'comforts:sleeping_bag_light_gray',
'comforts:sleeping_bag_cyan',
'comforts:sleeping_bag_purple',
'comforts:sleeping_bag_blue',
'comforts:sleeping_bag_brown',
'comforts:sleeping_bag_green',
'comforts:sleeping_bag_red',
'comforts:sleeping_bag_black',
// Create
'create:copper_ingot',
'create:copper_nugget',
// Eidolon
'eidolon:lead_ingot',
'eidolon:lead_nugget',
'eidolon:lead_ore',
// Immersive Engineering
'immersiveengineering:ingot_uranium',
'immersiveengineering:nugget_uranium',
'immersiveengineering:ingot_copper',
'immersiveengineering:nugget_copper',
'immersiveengineering:plate_copper',
'immersiveengineering:ingot_lead',
'immersiveengineering:nugget_lead',
'immersiveengineering:ingot_steel',
'immersiveengineering:nugget_steel',
'immersiveengineering:sword_steel',
'immersiveengineering:pickaxe_steel',
'immersiveengineering:shovel_steel',
'immersiveengineering:axe_steel',
'immersiveengineering:hoe_steel',
'immersiveengineering:plate_iron',
'immersiveengineering:plate_gold',
// Mekanism Tools
'mekanismtools:steel_helmet',
'mekanismtools:steel_chestplate',
'mekanismtools:steel_leggings',
'mekanismtools:steel_boots',
'mekanismtools:lapis_lazuli_sword',
'mekanismtools:lapis_lazuli_pickaxe',
'mekanismtools:lapis_lazuli_axe',
'mekanismtools:lapis_lazuli_shovel',
'mekanismtools:lapis_lazuli_hoe',
'mekanismtools:lapis_lazuli_paxel',
'mekanismtools:lapis_lazuli_helmet',
'mekanismtools:lapis_lazuli_chestplate',
'mekanismtools:lapis_lazuli_leggings',
'mekanismtools:lapis_lazuli_boots',
'mekanismtools:lapis_lazuli_shield',
// Mystical World
'mysticalworld:tin_ingot',
'mysticalworld:tin_dust',
'mysticalworld:tin_nugget',
'mysticalworld:copper_ingot',
'mysticalworld:copper_dust',
'mysticalworld:copper_nugget',
'mysticalworld:silver_ingot',
'mysticalworld:silver_dust',
'mysticalworld:silver_nugget',
'mysticalworld:lead_ingot',
'mysticalworld:lead_dust',
'mysticalworld:lead_nugget',
// Quark
'quark:beetroot_crate', // These crates are replaced with Farmer's Delight ones.
'quark:carrot_crate',
'quark:potato_crate'
]
outputRemove.forEach(function (remove) {
event.remove({output: remove})
})
})

View File

@ -0,0 +1,11 @@
// priority: 10
events.listen('recipes', function (event) {
// Arcane Gold
event.replaceInput({}, 'eidolon:arcane_gold_nugget', '#forge:nuggets/arcane_gold')
event.replaceInput({}, 'forbidden_arcanus:arcane_gold_nugget', '#forge:nuggets/arcane_gold')
event.replaceInput({}, 'eidolon:arcane_gold_ingot', '#forge:ingots/arcane_gold')
event.replaceInput({}, 'forbidden_arcanus:arcane_gold_ingot', '#forge:ingots/arcane_gold')
})

View File

@ -0,0 +1,145 @@
// priority: 10
events.listen('recipes', function (event) {
// Minecarft
event.shaped(item.of('minecraft:bookshelf', 1), [
'AAA',
'BBB',
'AAA'
], {
A: '#minecraft:planks',
B: 'minecraft:book'
})
event.shaped(item.of('minecraft:chest', 1), [
'AAA',
'A A',
'AAA'
], {
A: '#minecraft:planks'
})
event.shaped(item.of('minecraft:chainmail_helmet', 1), [
'AAA',
'A A'
], {
A: 'forbidden_arcanus:iron_chain'
})
event.shaped(item.of('minecraft:chainmail_chestplate', 1), [
'A A',
'AAA',
'AAA'
], {
A: 'forbidden_arcanus:iron_chain'
})
event.shaped(item.of('minecraft:chainmail_leggings', 1), [
'AAA',
'A A',
'A A'
], {
A: 'forbidden_arcanus:iron_chain'
})
event.shaped(item.of('minecraft:chainmail_boots', 1), [
'A A',
'A A'
], {
A: 'forbidden_arcanus:iron_chain'
})
event.shaped(item.of('minecraft:chainmail_helmet', 1), [
'AAA',
'A A'
], {
A: 'minecraft:chain'
})
event.shaped(item.of('minecraft:chainmail_chestplate', 1), [
'A A',
'AAA',
'AAA'
], {
A: 'minecraft:chain'
})
event.shaped(item.of('minecraft:chainmail_leggings', 1), [
'AAA',
'A A',
'A A'
], {
A: 'minecraft:chain'
})
event.shaped(item.of('minecraft:chainmail_boots', 1), [
'A A',
'A A'
], {
A: 'minecraft:chain'
})
// Decorative Blocks
event.shaped(item.of('decorative_blocks:chain', 2), [
'A',
'B',
'A'
], {
A: 'minecraft:iron_ingot',
B: 'minecraft:iron_nugget'
})
event.shaped(item.of('decorative_blocks:rocky_dirt', 4), [
'AB',
'BA'
], {
A: 'minecraft:dirt',
B: 'minecraft:cobblestone'
})
// Druidcraft
event.shaped(item.of('druidcraft:rope', 1), [
'AAA'
], {
A: '#forge:fiber_hemp'
})
// Immersive Engineering
event.shaped(item.of('immersiveengineering:treated_wood_horizontal', 8), [
'AAA',
'ABA',
'AAA'
], {
A: '#minecraft:planks',
B: 'immersiveengineering:creosote_bucket'
})
event.shaped(item.of('immersiveengineering:ingot_silver', 1), [
'SSS',
'SSS',
'SSS'
], {
S: '#forge:nuggets/silver'
})
event.shaped(item.of('immersiveengineering:storage_silver', 1), [
'SSS',
'SSS',
'SSS'
], {
S: '#forge:ingots/silver'
})
// Mystical World
event.shaped(item.of('mysticalworld:silver_block', 1), [
'SSS',
'SSS',
'SSS'
], {
S: '#forge:ingots/silver'
})
//Quark
event.shaped(item.of('quark:ravager_hide', 1), [
'ABA',
'BCB',
'ABA'
], {
A: 'minecraft:rabbit_hide',
B: 'forbidden_arcanus:rotten_leather',
C: 'quark:bonded_leather'
})
})

View File

@ -0,0 +1,41 @@
// priority: 10
events.listen('recipes', function (event) {
// Temporary fix to allow players to convert between Mekanism and Eidolon Lead Ingots, since Eidolon has hard-coded its own Lead Ingots into some recipes.
event.shapeless(Item.of('eidolon:lead_ingot', 1), 'mekanism:ingot_lead')
event.shapeless(Item.of('mekanism:ingot_lead', 1), 'eidolon:lead_ingot')
// BoP
event.shapeless(Item.of('biomesoplenty:orange_sand', 2), ['#forge:sand/colorless', '#forge:sand/red'])
// Create
event.shapeless(Item.of('create:brass_sheet', 1), ['create:brass_ingot', 'immersiveengineering:hammer'])
event.shapeless(Item.of('create:lapis_sheet', 1), ['minecraft:lapis_block', 'immersiveengineering:hammer'])
// Farmer's Delight
event.shapeless('farmersdelight:organic_compost', [
'minecraft:dirt',
'farmersdelight:straw',
'farmersdelight:straw',
'minecraft:bone_meal',
'minecraft:bone_meal',
'#forge:dusts/wood',
'#forge:dusts/wood',
'#forge:dusts/wood',
'#forge:dusts/wood'
])
// Immersive Engineering
event.shapeless(Item.of('immersiveengineering:ingot_silver', 9), '#forge:storage_blocks/silver')
event.shapeless(Item.of('immersiveengineering:nugget_silver', 9), '#forge:ingots/silver')
// Minecraft
// No idea why this recipe was gone, guessing some mod removed it in error.
event.shapeless(Item.of('minecraft:trapped_chest', 1), ['#forge:chests/wooden', 'minecraft:tripwire_hook'])
// Powah!
event.shapeless(Item.of('powah:uraninite_raw_poor', 1), 'mekanism:ingot_uranium')
// Upgrade Aquatic
event.shapeless('upgrade_aquatic:driftwood', 'aquaculture:driftwood')
})

View File

@ -0,0 +1,16 @@
// priority: 10
events.listen('recipes', function (event) {
// Add a recipe to both furnace and blast furnace.
const smeltAndBlast = (output, input, xp) => {
event.smelting(output, input).xp(xp)
event.blasting(output, input).xp(xp)
}
// Create
smeltAndBlast(Item.of('mekanism:ingot_copper', 1), 'create:crushed_copper_ore', 0.1)
// Immersive Engineering
smeltAndBlast(Item.of('immersiveengineering:ingot_silver', 1), '#forge:dusts/silver', 0.35)
})

View File

@ -0,0 +1,108 @@
// priority: 10
events.listen('recipes', function (event) {
// Astral Sorcery
event.stonecutting(item.of('astralsorcery:marble_raw', 1), 'quark:marble')
// Create
event.stonecutting(item.of('create:limestone', 1), 'quark:limestone')
// Quark
event.stonecutting(item.of('quark:chiseled_limestone_bricks', 1), 'quark:limestone')
event.stonecutting(item.of('quark:limestone_bricks', 1), 'quark:limestone')
event.stonecutting(item.of('quark:limestone_pavement', 1), 'quark:limestone')
event.stonecutting(item.of('quark:limestone_pillar', 1), 'quark:limestone')
event.stonecutting(item.of('quark:limestone_slab', 2), 'quark:limestone')
event.stonecutting(item.of('quark:limestone_speleothem', 2), 'quark:limestone')
event.stonecutting(item.of('quark:limestone_stairs', 1), 'quark:limestone')
event.stonecutting(item.of('quark:limestone_wall', 1), 'quark:limestone')
event.stonecutting(item.of('quark:polished_limestone', 1), 'quark:limestone')
event.stonecutting(item.of('quark:polished_limestone_slab', 2), 'quark:limestone')
event.stonecutting(item.of('quark:polished_limestone_stairs', 1), 'quark:limestone')
event.stonecutting(item.of('quark:limestone', 1), 'create:limestone')
event.stonecutting(item.of('quark:marble', 1), 'astralsorcery:marble_raw')
// Stone
event.stonecutting(item.of('absentbydesign:wall_stone', 1), 'minecraft:stone')
// Smooth Stone
event.stonecutting(item.of('absentbydesign:wall_stone_slab', 1), 'minecraft:smooth_stone')
event.stonecutting(item.of('absentbydesign:stairs_smooth_stone', 1), 'minecraft:smooth_stone')
// Chiseled Stone Bricks
event.stonecutting(item.of('absentbydesign:wall_stonebrick_carved', 1), 'minecraft:chiseled_stone_bricks')
// Cracked Stone Bricks
event.stonecutting(item.of('absentbydesign:wall_stonebrick_cracked', 1), 'minecraft:cracked_stone_bricks')
event.stonecutting(item.of('absentbydesign:slab_bricks_cracked', 2), 'minecraft:cracked_stone_bricks')
event.stonecutting(item.of('absentbydesign:stairs_bricks_cracked', 1), 'minecraft:cracked_stone_bricks')
// Netherrack
event.stonecutting(item.of('absentbydesign:slab_netherrack', 2), 'minecraft:netherrack')
event.stonecutting(item.of('absentbydesign:stairs_netherrack', 1), 'minecraft:netherrack')
// Prismarine Bricks
event.stonecutting(item.of('absentbydesign:wall_prismarine_bricks', 1), 'minecraft:prismarine_bricks')
// Dark Prismarine
event.stonecutting(item.of('absentbydesign:wall_dark_prismarine', 1), 'minecraft:dark_prismarine')
// Polished Andesite
event.stonecutting(item.of('absentbydesign:wall_andesite_smooth', 1), 'minecraft:polished_andesite')
// Polished Diorite
event.stonecutting(item.of('absentbydesign:wall_diorite_smooth', 1), 'minecraft:polished_diorite')
// Polished Granite
event.stonecutting(item.of('absentbydesign:wall_granite_smooth', 1), 'minecraft:polished_granite')
// End Stone
event.stonecutting(item.of('absentbydesign:wall_end_stone', 1), 'minecraft:end_stone')
event.stonecutting(item.of('absentbydesign:slab_end_stone', 2), 'minecraft:end_stone')
event.stonecutting(item.of('absentbydesign:stairs_end_stone', 1), 'minecraft:end_stone')
// End Stone Brick
event.stonecutting(item.of('absentbydesign:gate_end_stone_bricks', 2), 'minecraft:end_stone_bricks')
// Purpur Block
event.stonecutting(item.of('absentbydesign:wall_purpur', 1), 'minecraft:purpur_block')
// Quartz
event.stonecutting(item.of('absentbydesign:wall_quartz', 1), 'minecraft:quartz_block')
// Quartz Brick
event.stonecutting(item.of('absentbydesign:wall_quartz_bricks', 1), 'minecraft:quartz_bricks')
event.stonecutting(item.of('absentbydesign:slab_quartz_bricks', 2), 'minecraft:quartz_bricks')
event.stonecutting(item.of('absentbydesign:stairs_quartz_bricks', 1), 'minecraft:quartz_bricks')
// Smooth Red Sandstone
event.stonecutting(item.of('absentbydesign:wall_sandstone_red_smooth', 1), 'minecraft:smooth_red_sandstone')
// Smooth Sandstone
event.stonecutting(item.of('absentbydesign:wall_sandstone_smooth', 1), 'minecraft:smooth_sandstone')
// Obsidian
event.stonecutting(item.of('absentbydesign:wall_obsidian', 1), 'minecraft:obsidian')
event.stonecutting(item.of('absentbydesign:slab_obsidian', 2), 'minecraft:obsidian')
event.stonecutting(item.of('absentbydesign:stairs_obsidian', 1), 'minecraft:obsidian')
// Crying Obsidian
event.stonecutting(item.of('absentbydesign:wall_crying_obsidian', 1), 'minecraft:crying_obsidian')
event.stonecutting(item.of('absentbydesign:slab_crying_obsidian', 2), 'minecraft:crying_obsidian')
event.stonecutting(item.of('absentbydesign:stairs_crying_obsidian', 1), 'minecraft:crying_obsidian')
// Basalt
event.stonecutting(item.of('absentbydesign:wall_basalt', 1), 'minecraft:basalt')
event.stonecutting(item.of('absentbydesign:slab_basalt', 2), 'minecraft:basalt')
event.stonecutting(item.of('absentbydesign:stairs_basalt', 1), 'minecraft:basalt')
// Polished Basalt
event.stonecutting(item.of('absentbydesign:wall_polished_basalt', 1), 'minecraft:polished_basalt')
event.stonecutting(item.of('absentbydesign:slab_polished_basalt', 2), 'minecraft:polished_basalt')
event.stonecutting(item.of('absentbydesign:stairs_polished_basalt', 1), 'minecraft:polished_basalt')
// Lodestone
event.stonecutting(item.of('absentbydesign:wall_lodestone', 1), 'minecraft:lodestone')
event.stonecutting(item.of('absentbydesign:slab_lodestone', 2), 'minecraft:lodestone')
event.stonecutting(item.of('absentbydesign:stairs_lodestone', 1), 'minecraft:lodestone')
})

View File

@ -0,0 +1,413 @@
// priority: 10
events.listen('recipes', function (event) {
// Woodcutting
const woodcutting = (output, input, count) => {
// Druidcraft Woodcutter
event.custom({
type: "druidcraft:woodcutting",
ingredient: Ingredient.of(input).toJson(),
result: output,
count: count
})
// TODO: Other woodcutters here as needed (eg. Environmental Sawmill).
}
// Wood Types
const minecraftOverworldWoodTypes = [
'acacia',
'birch',
'dark_oak',
'jungle',
'oak',
'spruce'
]
const minecraftNetherWoodTypes = [
'crimson',
'warped'
]
const atmosphericWoodTypes = [
'rosewood',
'morado',
'yucca',
'kousa',
'aspen',
'grimwood'
]
const autumnityWoodTypes = [
'maple'
]
const biomesOPlentyWoodTypes = [
'fir',
'redwood',
'cherry',
'mahogany',
'jacaranda',
'palm',
'willow',
'dead',
'magic',
'umbran',
'hellbark'
]
const astralSorceryWoodTypes = [
'infused_wood'
]
const botaniaWoodTypes = [
'livingwood',
'mossy_livingwood',
'dreamwood',
'mossy_dreamwood',
'shimmerwood'
]
const druidcraftWoodTypes = [
'darkwood',
'elder'
]
const endergeticExpansionWoodTypes = [
'poise'
]
// Note: This will normally be done manually.
const engineersDecorWoodTypes = [
'old_industrial_wood'
]
const enhancedMushroomsWoodTypes = [
'red_mushroom',
'brown_mushroom',
'glowshroom'
]
// Sneak previews. ;)
const environmentalWoodTypes = [
'cherry',
'willow',
'wisteria'
]
const forbiddenArcanusWoodTypes = [
'arcane_edelwood',
'cherrywood',
'edelwood',
'mysterywood'
]
// Note: IE has very weird naming conventions. Best to do manually normally.
const immersiveEngineeringWoodTypes = [
'treated'
]
const quarkWoodTypes = [
'white_stained',
'orange_stained',
'magenta_stained',
'light_blue_stained',
'yellow_stained',
'lime_stained',
'pink_stained',
'gray_stained',
'light_gray_stained',
'cyan_stained',
'purple_stained',
'blue_stained',
'brown_stained',
'green_stained',
'red_stained',
'black_stained',
]
const structurizeWoodTypes = [
'cactus'
]
// Note: Driftwood's Item IDs vary for the Wood variants, ie. it is just 'driftwood', not 'driftwood_wood'.
const upgradeAquaticWoodTypes = [
'driftwood',
'river'
]
// OUTPUT QUANTITIES
// Vanilla things:
const buttons_per_plank = 4
const doors_per_plank = 1
const fences_per_plank = 1
const fence_gates_per_plank = 1
const ladders_per_plank = 2
const planks_per_log = 4
const pressure_plates_per_plank = 2
const trapdoors_per_plank = 1
const signs_per_plank = 1
const slabs_per_plank = 2
const stairs_per_plank = 1
const buttons_per_log = buttons_per_plank * planks_per_log
const doors_per_log = doors_per_plank * planks_per_log
const fences_per_log = fences_per_plank * planks_per_log
const fence_gates_per_log = fence_gates_per_plank * planks_per_log
const ladders_per_log = ladders_per_plank * planks_per_log
const pressure_plates_per_log = pressure_plates_per_plank * planks_per_log
const signs_per_log = signs_per_plank * planks_per_log
const slabs_per_log = slabs_per_plank * planks_per_log
const stairs_per_log = stairs_per_plank * planks_per_log
const trapdoors_per_log = trapdoors_per_plank * planks_per_log
// Modded things:
const panels_per_plank = 1
const seats_per_plank = 1
const supports_per_plank = 1
const vertical_slabs_per_plank = slabs_per_plank
const vertical_planks_per_plank = 1
const decorative_blocks_beams_per_log = 1
const druidcraft_beams_per_log = 1
const panels_per_log = panels_per_plank * planks_per_log
const pantries_per_log = 1
const palisades_per_log = 3
const seats_per_log = seats_per_plank * planks_per_log
const sign_posts_per_log = signs_per_log
const supports_per_log = supports_per_plank * planks_per_log
const vertical_planks_per_log = planks_per_log
const vertical_slabs_per_log = slabs_per_log
const val_posts_per_log = 2
const planks_per_panel = 1
const vertical_planks_per_panel = 1
// Atmospheric
var atmosphericLogsTags = []
var atmosphericStrippedLogs = []
var atmosphericWoods = []
var atmosphericStrippedWoods = []
var atmosphericPlanks = []
var atmosphericVerticalPlanks = []
var atmosphericSlabs = []
var atmosphericVerticalSlabs = []
var atmosphericStairs = []
var atmosphericSigns = []
var atmosphericLadders = []
var atmosphericFences = []
var atmosphericFenceGates = []
var atmosphericButtons = []
var atmosphericTrapdoors = []
var atmosphericDoors = []
var atmosphericPressurePlates = []
atmosphericWoodTypes.forEach(function(element) {
atmosphericLogsTags.push('#atmospheric:'.concat(element).concat('_logs'))
atmosphericStrippedLogs.push('atmospheric:stripped_'.concat(element).concat('_log'))
atmosphericWoods.push('atmospheric:'.concat(element).concat('_log'))
atmosphericStrippedWoods.push('atmospheric:stripped_'.concat(element).concat('_log'))
atmosphericPlanks.push('atmospheric:'.concat(element).concat('_planks'))
atmosphericVerticalPlanks.push('atmospheric:vertical_'.concat(element).concat('_planks'))
atmosphericSlabs.push('atmospheric:'.concat(element).concat('_slab'))
atmosphericVerticalSlabs.push('atmospheric:'.concat(element).concat('_vertical_slab'))
atmosphericStairs.push('atmospheric:'.concat(element).concat('_stairs'))
atmosphericSigns.push('atmospheric:'.concat(element).concat('_sign'))
atmosphericLadders.push('atmospheric:'.concat(element).concat('_ladder'))
atmosphericFences.push('atmospheric:'.concat(element).concat('_fence'))
atmosphericFenceGates.push('atmospheric:'.concat(element).concat('_fence_gate'))
atmosphericButtons.push('atmospheric:'.concat(element).concat('_button'))
atmosphericTrapdoors.push('atmospheric:'.concat(element).concat('_trapdoor'))
atmosphericDoors.push('atmospheric:'.concat(element).concat('_door'))
atmosphericPressurePlates.push('atmospheric:'.concat(element).concat('_pressure_plate'))
})
for (let i = 0; i < atmosphericWoodTypes.length; i++) {
// Log Woodcutting
woodcutting(atmosphericPlanks[i], atmosphericLogsTags[i], planks_per_log)
woodcutting(atmosphericVerticalPlanks[i], atmosphericLogsTags[i], vertical_planks_per_log)
woodcutting(atmosphericSlabs[i], atmosphericLogsTags[i], slabs_per_log)
woodcutting(atmosphericVerticalSlabs[i], atmosphericLogsTags[i], vertical_slabs_per_log)
woodcutting(atmosphericStairs[i], atmosphericLogsTags[i], stairs_per_log)
woodcutting(atmosphericSigns[i], atmosphericLogsTags[i], signs_per_log)
woodcutting(atmosphericLadders[i], atmosphericLogsTags[i], ladders_per_log)
woodcutting(atmosphericFences[i], atmosphericLogsTags[i], fences_per_log)
woodcutting(atmosphericFenceGates[i], atmosphericLogsTags[i], fence_gates_per_log)
woodcutting(atmosphericButtons[i], atmosphericLogsTags[i], buttons_per_log)
woodcutting(atmosphericTrapdoors[i], atmosphericLogsTags[i], trapdoors_per_log)
woodcutting(atmosphericDoors[i], atmosphericLogsTags[i], doors_per_log)
woodcutting(atmosphericPressurePlates[i], atmosphericLogsTags[i], pressure_plates_per_log)
// Plank Woodcutting
woodcutting(atmosphericVerticalPlanks[i], atmosphericPlanks[i], vertical_planks_per_plank)
woodcutting(atmosphericSlabs[i], atmosphericPlanks[i], slabs_per_plank)
woodcutting(atmosphericVerticalSlabs[i], atmosphericPlanks[i], vertical_slabs_per_plank)
woodcutting(atmosphericStairs[i], atmosphericPlanks[i], stairs_per_plank)
woodcutting(atmosphericSigns[i], atmosphericPlanks[i], signs_per_plank)
woodcutting(atmosphericLadders[i], atmosphericPlanks[i], ladders_per_plank)
woodcutting(atmosphericFences[i], atmosphericPlanks[i], fences_per_plank)
woodcutting(atmosphericFenceGates[i], atmosphericPlanks[i], fence_gates_per_plank)
woodcutting(atmosphericButtons[i], atmosphericPlanks[i], buttons_per_plank)
woodcutting(atmosphericTrapdoors[i], atmosphericPlanks[i], trapdoors_per_plank)
woodcutting(atmosphericDoors[i], atmosphericPlanks[i], doors_per_plank)
woodcutting(atmosphericPressurePlates[i], atmosphericPlanks[i], pressure_plates_per_plank)
// Misc
woodcutting(atmosphericPlanks[i], atmosphericVerticalPlanks[i], vertical_planks_per_plank)
}
// Autumnity
// TODO: Planks, Vertical Planks, Slabs, Stairs, Ladders, Signs, Fences, Fence Gates, Buttons, Doors
// Biomes O Plenty
// TODO: Way too much. :'(
// Botania
// TODO: All of it.
// Decorative Blocks
woodcutting('decorative_blocks:acacia_palisade', '#minecraft:acacia_logs', 3)
woodcutting('decorative_blocks:acacia_seat', 'minecraft:acacia_planks', 1)
woodcutting('decorative_blocks:acacia_seat', '#minecraft:acacia_logs', 4)
woodcutting('decorative_blocks:acacia_support', 'minecraft:acacia_planks', 1)
woodcutting('decorative_blocks:acacia_support', '#minecraft:acacia_logs', 4)
woodcutting('decorative_blocks:acacia_beam', '#minecraft:acacia_logs', 1)
// TODO: Add non-acacia stuff.
// Decorative Blocks - Biomes O Plenty
// TODO: All of it. :/
// Decorative Blocks - Abnormals
// TODO: All of it. :/
// Druidcraft
woodcutting('druidcraft:acacia_panels', '#minecraft:acacia_logs', 4)
woodcutting('druidcraft:birch_panels', '#minecraft:birch_logs', 4)
woodcutting('druidcraft:dark_oak_panels', '#minecraft:dark_oak_logs', 4)
woodcutting('druidcraft:darkwood_panels', '#druidcraft:darkwood_logs', 4)
woodcutting('druidcraft:elder_panels', '#druidcraft:elder_logs', 4)
woodcutting('druidcraft:jungle_panels', '#minecraft:jungle_logs', 4)
woodcutting('druidcraft:oak_panels', '#minecraft:oak_logs', 4)
woodcutting('druidcraft:spruce_panels', '#minecraft:spruce_logs', 4)
// Make sure to check this again if Druidcraft adds Crimson / Warped panels.
// Endergetic Expansion
// TODO: Planks, Vertical Planks, Slabs, Stairs, Ladders, Signs, Fences, Fence Gates, Buttons, Doors
// Engineer's Decor
// TODO: A bunch of Treated Wood stuff.
// Enhanced Mushrooms
// TODO: Planks, Vertical Planks, Slabs, Stairs, Ladders, Signs, Fences, Fence Gates, Buttons, Doors
// Environmental
// (do this whenever it actually releases)
// TODO: Planks, Vertical Planks, Slabs, Stairs, Ladders, Signs, Fences, Fence Gates, Buttons, Doors
// Farmer's Delight
woodcutting('farmersdelight:acacia_pantry', '#minecraft:acacia_logs', 1)
woodcutting('farmersdelight:birch_pantry', '#minecraft:birch_logs', 1)
woodcutting('farmersdelight:crimson_pantry', '#minecraft:crimson_stems', 1)
woodcutting('farmersdelight:dark_oak_pantry', '#minecraft:dark_oak_logs', 1)
woodcutting('farmersdelight:jungle_pantry', '#minecraft:jungle_logs', 1)
woodcutting('farmersdelight:oak_pantry', '#minecraft:oak_logs', 1)
woodcutting('farmersdelight:spruce_pantry', '#minecraft:spruce_logs', 1)
woodcutting('farmersdelight:warped_pantry', '#minecraft:warped_stems', 1)
// Immersive Engineering
// TODO: A bunch of Treated Wood stuff.
// Macaw's Stuff
// Minecraft
woodcutting('minecraft:acacia_sign', '#minecraft:acacia_logs', 2)
woodcutting('minecraft:acacia_slab', '#minecraft:acacia_logs', 8)
woodcutting('minecraft:acacia_stairs', '#minecraft:acacia_logs', 4)
woodcutting('minecraft:acacia_fence', '#minecraft:acacia_logs', 3)
woodcutting('minecraft:acacia_fence_gate', '#minecraft:acacia_logs', 2)
woodcutting('minecraft:acacia_trapdoor', '#minecraft:acacia_logs', 4)
woodcutting('minecraft:acacia_pressure_plate', 'minecraft:acacia_planks', 2)
woodcutting('minecraft:acacia_pressure_plate', '#minecraft:acacia_logs', 8)
woodcutting('minecraft:acacia_door', '#minecraft:acacia_logs', 2)
// TODO: Add non-acacia stuff.
// Supplementaries - Vanilla
woodcutting('supplementaries:item_shelf', '#minecraft:wooden_slabs', 1)
woodcutting('supplementaries:sign_post_acacia', 'minecraft:acacia_planks', 1)
woodcutting('supplementaries:sign_post_acacia', '#minecraft:acacia_logs', 4)
woodcutting('supplementaries:sign_post_birch', 'minecraft:birch_planks', 1)
woodcutting('supplementaries:sign_post_birch', '#minecraft:birch_logs', 4)
woodcutting('supplementaries:sign_post_crimson', 'minecraft:crimson_planks', 1)
woodcutting('supplementaries:sign_post_crimson', '#minecraft:crimson_stems', 4)
woodcutting('supplementaries:sign_post_dark_oak', 'minecraft:dark_oak_planks', 1)
woodcutting('supplementaries:sign_post_dark_oak', '#minecraft:dark_oak_logs', 4)
woodcutting('supplementaries:sign_post_jungle', 'minecraft:jungle_planks', 1)
woodcutting('supplementaries:sign_post_jungle', '#minecraft:jungle_logs', 4)
woodcutting('supplementaries:sign_post_oak', 'minecraft:oak_planks', 1)
woodcutting('supplementaries:sign_post_oak', '#minecraft:oak_logs', 4)
woodcutting('supplementaries:sign_post_spruce', 'minecraft:spruce_planks', 1)
woodcutting('supplementaries:sign_post_spruce', '#minecraft:spruce_logs', 4)
woodcutting('supplementaries:sign_post_warped', 'minecraft:warped_planks', 1)
woodcutting('supplementaries:sign_post_warped', '#minecraft:warped_stems', 4)
// Supplementaries - Atmospheric
woodcutting('supplementaries:sign_post_rosewood', 'atmospheric:rosewood_planks', 1)
woodcutting('supplementaries:sign_post_rosewood', '#atmospheric:rosewood_logs', 4)
woodcutting('supplementaries:sign_post_kousa', 'atmospheric:kousa_planks', 1)
woodcutting('supplementaries:sign_post_kousa', '#atmospheric:kousa_logs', 4)
woodcutting('supplementaries:sign_post_aspen', 'atmospheric:aspen_planks', 1)
woodcutting('supplementaries:sign_post_aspen', '#atmospheric:aspen_logs', 4)
woodcutting('supplementaries:sign_post_morado', 'atmospheric:morado_planks', 1)
woodcutting('supplementaries:sign_post_morado', '#atmospheric:morado_logs', 4)
woodcutting('supplementaries:sign_post_grimwood', 'atmospheric:grimwood_planks', 1)
woodcutting('supplementaries:sign_post_grimwood', '#atmospheric:grimwood_logs', 4)
woodcutting('supplementaries:sign_post_yucca', 'atmospheric:yucca_planks', 1)
woodcutting('supplementaries:sign_post_yucca', '#atmospheric:yucca_logs', 4)
// Supplementaries - Autumnity
woodcutting('supplementaries:sign_post_maple', 'autumnity:maple_planks', 1)
woodcutting('supplementaries:sign_post_maple', '#autumnity:maple_logs', 4)
// Supplementaries - Endergetic Expansion
woodcutting('supplementaries:sign_post_poise', 'endergetic:poise_planks', 1)
woodcutting('supplementaries:sign_post_poise', '#endergetic:poise_stems', 4)
// Supplementaries - Enhanced Mushrooms
woodcutting('supplementaries:sign_post_red_mushroom', 'enhanced_mushrooms:red_mushroom_planks', 1)
woodcutting('supplementaries:sign_post_red_mushroom', '#enhanced_mushrooms:red_mushroom_stems', 4)
woodcutting('supplementaries:sign_post_brown_mushroom', 'enhanced_mushrooms:brown_mushroom_planks', 1)
woodcutting('supplementaries:sign_post_brown_mushroom', '#enhanced_mushrooms:brown_mushroom_stems', 4)
// Supplementaries - Upgrade Aquatic
woodcutting('supplementaries:sign_post_driftwood', 'upgrade_aquatic:driftwood_planks', 1)
woodcutting('supplementaries:sign_post_driftwood', '#upgrade_aquatic:driftwood_logs', 4)
woodcutting('supplementaries:sign_post_river', 'upgrade_aquatic:river_planks', 1)
woodcutting('supplementaries:sign_post_river', '#upgrade_aquatic:river_logs', 4)
// Quark
woodcutting('quark:vertical_acacia_planks', 'minecraft:acacia_planks', 1)
woodcutting('quark:vertical_acacia_planks', '#minecraft:acacia_logs', 4)
woodcutting('quark:acacia_post', '#minecraft:acacia_logs', 3)
woodcutting('quark:stripped_acacia_post', '#minecraft:acacia_logs', 3)
woodcutting('quark:acacia_vertical_slab', 'minecraft:acacia_planks', 2)
woodcutting('quark:acacia_vertical_slab', '#minecraft:acacia_logs', 8)
woodcutting('quark:acacia_ladder', 'minecraft:acacia_planks', 2)
woodcutting('quark:acacia_ladder', '#minecraft:acacia_logs', 8)
// TODO: Add non-acacia stuff.
// Upgrade Aquatic
// TODO: Planks, Vertical PLanks, Slabs, Stairs, Ladders, Signs, Fences, Fence Gates, Buttons, Doors
// Valhelsia Structures
woodcutting('valhelsia_structures:acacia_post', '#minecraft:acacia_logs', 2)
woodcutting('valhelsia_structures:birch_post', '#minecraft:birch_logs', 2)
woodcutting('valhelsia_structures:dark_oak_post', '#minecraft:dark_oak_logs', 2)
woodcutting('valhelsia_structures:jungle_post', '#minecraft:jungle_logs', 2)
woodcutting('valhelsia_structures:oak_post', '#minecraft:oak_logs', 2)
woodcutting('valhelsia_structures:spruce_post', '#minecraft:spruce_logs', 2)
// Make sure to check this again after the Valhelsia Structures update to add the new posts.
})