221 lines
11 KiB
JavaScript
221 lines
11 KiB
JavaScript
// priority: 1
|
|
|
|
wood_types.push("thermal:rubberwood")
|
|
ServerEvents.recipes(event => {
|
|
// filter augment recipe change
|
|
event.remove({ id: "thermal:augments/item_filter_augment" })
|
|
event.shapeless("thermal:item_filter_augment", ["create:filter", "thermal:lapis_gear"])
|
|
// Augments that do nothing in 1.18.2
|
|
event.remove({ id: "thermal:augments/rs_control_augment" })
|
|
event.remove({ id: "thermal:augments/side_config_augment" })
|
|
// Silver replacements
|
|
event.replaceInput({ id: "thermal:augments/rf_coil_storage_augment" }, "#forge:ingots/silver", "#forge:ingots/iron")
|
|
event.replaceInput({ id: "thermal:augments/rf_coil_xfer_augment" }, "#forge:ingots/silver", "#forge:ingots/iron")
|
|
event.replaceInput({ id: "thermal:augments/rf_coil_augment" }, "#forge:ingots/silver", "#forge:ingots/iron")
|
|
event.replaceInput({ id: "thermal:tools/detonator" }, "#forge:ingots/silver", "#forge:ingots/lead")
|
|
// why are these even recipes?
|
|
event.remove({ id: "thermal:lightning_charge/zombified_piglin_from_pig"})
|
|
event.remove({ id: "thermal:lightning_charge/witch_from_villager"})
|
|
// duplicate storage block recipes
|
|
event.remove({ id: "thermal:storage/carrot_block" })
|
|
event.remove({ id: "thermal:storage/potato_block" })
|
|
event.remove({ id: "thermal:storage/beetroot_block" })
|
|
// Obsidian pulverizing
|
|
event.recipes.thermal.pulverizer(["create:powdered_obsidian"], "#forge:obsidian", 0, 8000)
|
|
// Ender pearl pulverizing
|
|
event.replaceOutput({ id: "thermal:machines/pulverizer/pulverizer_ender_pearl" }, "thermal:ender_pearl_dust", "ae2:ender_dust")
|
|
event.replaceOutput({ id: "thermal:earth_charge/ender_pearl_dust_from_ender_pearl" }, "thermal:ender_pearl_dust", "ae2:ender_dust")
|
|
// Bitumen crushing recipes
|
|
event.recipes.create.crushing([Item.of("thermal:bitumen"), Item.of("thermal:bitumen", 2).withChance(0.75), Item.of("thermal:tar", 1).withChance(0.75), Item.of("minecraft:sand").withChance(0.25)], "thermal:oil_sand")
|
|
event.recipes.create.crushing([Item.of("thermal:bitumen"), Item.of("thermal:bitumen", 2).withChance(0.75), Item.of("thermal:tar", 1).withChance(0.75), Item.of("minecraft:red_sand").withChance(0.25)], "thermal:oil_red_sand")
|
|
// ruby and sapphire block recipes
|
|
let blockTemplate = [ "III", "III", "III" ]
|
|
event.shaped(Item.of("thermal:ruby_block", 1), blockTemplate, { I: "#forge:gems/ruby"})
|
|
event.shapeless(Item.of("thermal:ruby", 9), ["#forge:storage_blocks/ruby"])
|
|
event.shaped(Item.of("thermal:sapphire_block", 1), blockTemplate, { I: "#forge:gems/sapphire"})
|
|
event.shapeless(Item.of("thermal:sapphire", 9), ["#forge:storage_blocks/sapphire"])
|
|
// Ruby and sapphire dusts from pulverizing
|
|
event.recipes.thermal.pulverizer("thermal:sapphire_dust", "thermal:sapphire", 0, 4000)
|
|
event.recipes.thermal.pulverizer("thermal:ruby_dust", "thermal:ruby", 0, 4000)
|
|
// Ruby and sapphire dusts from earth charges
|
|
event.shapeless(Item.of("thermal:ruby_dust"), ["#forge:gems/ruby", "thermal:earth_charge"])
|
|
event.shapeless(Item.of("thermal:sapphire_dust"), ["#forge:gems/sapphire", "thermal:earth_charge"])
|
|
// Make molten glass with the cruicible
|
|
event.recipes.thermal.crucible(Fluid.of("tconstruct:molten_glass", 1000), "#forge:sand", 0, 6000)
|
|
event.recipes.thermal.crucible(Fluid.of("tconstruct:molten_glass", 1000), "#forge:glass/colorless", 0, 3000)
|
|
// Gourmand fuel recipes for farmer's delight crates
|
|
event.custom({"type": "thermal:gourmand_fuel", "ingredient": {"item": "farmersdelight:carrot_crate"}, "energy": 48000})
|
|
event.custom({"type": "thermal:gourmand_fuel", "ingredient": {"item": "farmersdelight:potato_crate"}, "energy": 16000})
|
|
event.custom({"type": "thermal:gourmand_fuel", "ingredient": {"item": "farmersdelight:beetroot_crate"}, "energy": 16000})
|
|
event.custom({"type": "thermal:gourmand_fuel", "ingredient": {"item": "farmersdelight:cabbage_crate"}, "energy": 32000})
|
|
event.custom({"type": "thermal:gourmand_fuel", "ingredient": {"item": "farmersdelight:onion_crate"}, "energy": 32000})
|
|
event.custom({"type": "thermal:gourmand_fuel", "ingredient": {"item": "farmersdelight:tomato_crate"}, "energy": 16000})
|
|
// Igneous Extruder recipes
|
|
let bedrock_cobblegen = (adjacent, output) => {
|
|
event.custom({
|
|
"type": "thermal:rock_gen",
|
|
"adjacent": adjacent,
|
|
"below": "minecraft:bedrock",
|
|
"result": { "item": output }
|
|
})
|
|
}
|
|
bedrock_cobblegen("minecraft:packed_ice", "minecraft:andesite")
|
|
bedrock_cobblegen("architects_palette:polished_packed_ice", "minecraft:granite")
|
|
bedrock_cobblegen("architects_palette:chiseled_packed_ice", "minecraft:diorite")
|
|
// Also add igneous extruder recipes for the 2 create stone gen recipes
|
|
event.custom({
|
|
"type": "thermal:rock_gen",
|
|
"adjacent": "create:chocolate",
|
|
"result": { "item": "create:scoria"}
|
|
})
|
|
event.custom({
|
|
"type": "thermal:rock_gen",
|
|
"adjacent": "create:honey",
|
|
"result": { "item": "create:limestone"}
|
|
})
|
|
|
|
// thermal dynamics stuff
|
|
// thermal dynamics might be split into a compatability mod eventually
|
|
|
|
// Energy duct recipe change
|
|
event.remove({ output: "thermal:energy_duct" })
|
|
event.shaped("8x thermal:energy_duct", [ "PMP" ], {
|
|
P: "thermal:invar_ingot",
|
|
M: "minecraft:redstone"
|
|
})
|
|
|
|
// Remove existing insolator flower recipes since we're adding them back anyways
|
|
event.remove({ type: "thermal:insolator", input: "#minecraft:flowers", not:{ input:"#minecraft:saplings" } })
|
|
|
|
Ingredient.of("#minecraft:flowers").itemIds.forEach(flower => {
|
|
// Automatically adds all flowers as thermal insolator recipes. We're blacklisting special cases like leaves and saplings which are occasionally tagged as flowers for some reason
|
|
if( !( Ingredient.of("#minecraft:saplings").test(flower) || Ingredient.of("#minecraft:leaves").test(flower) ) ) {
|
|
event.custom({
|
|
"type": "thermal:insolator",
|
|
"ingredient": {
|
|
"item": flower
|
|
},
|
|
"result": [
|
|
{
|
|
"item": flower,
|
|
"chance": 2
|
|
}
|
|
],
|
|
"experience": 0
|
|
})
|
|
}
|
|
})
|
|
|
|
// port melting recipes for dusts, ingots and gems
|
|
const TICMETALS = [
|
|
"aluminum",
|
|
"amethyst_bronze",
|
|
"brass",
|
|
"bronze",
|
|
"cobalt",
|
|
"constantan",
|
|
// "copper",
|
|
"electrum",
|
|
"enderium",
|
|
// "gold",
|
|
"hepatizon",
|
|
"invar",
|
|
// "iron",
|
|
"knightslime",
|
|
// "lead",
|
|
"lumium",
|
|
"manyullyn",
|
|
"netherite",
|
|
// "nickel",
|
|
"osmium",
|
|
"pewter",
|
|
"pig_iron",
|
|
"platinum",
|
|
"queens_slime",
|
|
"refined_glowstone",
|
|
"refined_obsidian",
|
|
"rose_gold",
|
|
"signalum",
|
|
"silver",
|
|
"slimesteel",
|
|
"soulsteel",
|
|
"steel",
|
|
"tin",
|
|
"tungsten",
|
|
"uranium"// ,
|
|
// "zinc"
|
|
];
|
|
const TICGEMS = [
|
|
"diamond",
|
|
"emerald",
|
|
"quartz",
|
|
"amethyst",
|
|
]
|
|
|
|
TICMETALS.forEach(metal=>{
|
|
if (Ingredient.of(`#forge:dusts/${metal}`).first != Item.empty) {
|
|
event.custom({
|
|
type:"thermal:crucible",
|
|
ingredients:{tag: `forge:dusts/${metal}`},
|
|
result:{fluid: `tconstruct:molten_${metal}`, amount: 90},
|
|
energy:5000
|
|
}).id(`kubejs:crucible/${metal}/dust`)
|
|
}
|
|
})
|
|
TICMETALS.concat(["copper", "gold", "iron", "lead", "nickel", "zinc"]).forEach(metal=>{
|
|
let ingotTag = `forge:ingots/${metal}`
|
|
let rodTag = `forge:rods/${metal}`
|
|
|
|
let fluid = `tconstruct:molten_${metal}`
|
|
|
|
if (Ingredient.of("#" + ingotTag).first != Item.empty) {
|
|
event.recipes.thermal.crucible(Fluid.of(fluid, 90), "#" + ingotTag, 0, 5000).id(`kubejs:crucible/${metal}/ingot`)
|
|
|
|
event.recipes.thermal.chiller(getPreferredItemFromTag(ingotTag), [Fluid.of(fluid, 90), "thermal:chiller_ingot_cast"]).id(`kubejs:chiller/${metal}/ingot`)
|
|
}
|
|
if (Ingredient.of("#" + rodTag).first != Item.empty) {
|
|
event.recipes.thermal.chiller(getPreferredItemFromTag(rodTag), [Fluid.of(fluid, 45), "thermal:chiller_rod_cast"]).id(`kubejs:chiller/${metal}/rod`)
|
|
}
|
|
})
|
|
TICGEMS.forEach(gem=>{
|
|
let gemTag = `forge:gems/${gem}`
|
|
|
|
let fluid = `tconstruct:molten_${gem}`
|
|
|
|
if (Ingredient.of(`#forge:gems/${gem}`).first != Item.empty) {
|
|
event.recipes.thermal.crucible(Fluid.of(fluid, 100), "#" + gemTag, 0, 5000).id(`kubejs:crucible/${gem}/gem`)
|
|
}
|
|
})
|
|
|
|
const OTHER_INGOTS = [
|
|
{name: "brick", fluid: "tconstruct:molten_clay"},
|
|
{name: "seared_brick", fluid: "tconstruct:seared_stone"},
|
|
{name: "scorched_brick", fluid: "tconstruct:scorched_stone"},
|
|
{name: "netherite_scrap", fluid: "tconstruct:molten_debris"}
|
|
]
|
|
OTHER_INGOTS.forEach(material=>{
|
|
let name = material.name
|
|
let ingotTag = "forge:ingots/" + material.name
|
|
let fluid = material.fluid
|
|
|
|
if (Ingredient.of("#" + ingotTag).first != Item.empty) {
|
|
event.recipes.thermal.crucible(Fluid.of(fluid, 90), "#" + ingotTag, 0, 5000).id(`kubejs:crucible/${name}`)
|
|
|
|
event.recipes.thermal.chiller(getPreferredItemFromTag(ingotTag), [Fluid.of(fluid, 90), "thermal:chiller_ingot_cast"]).id(`kubejs:chiller/${name}`)
|
|
}
|
|
})
|
|
|
|
// Ball recipes
|
|
event.recipes.thermal.chiller("minecraft:slime_ball", [Fluid.of("tconstruct:earth_slime", 250), "thermal:chiller_ball_cast"]).id("kubejs:chiller/slime_ball");
|
|
event.recipes.thermal.chiller("tconstruct:sky_slime_ball", [Fluid.of("tconstruct:sky_slime", 250), "thermal:chiller_ball_cast"]).id("kubejs:chiller/sky_slime_ball");
|
|
event.recipes.thermal.chiller("tconstruct:ender_slime_ball", [Fluid.of("tconstruct:ender_slime", 250), "thermal:chiller_ball_cast"]).id("kubejs:chiller/ender_slime_ball");
|
|
event.recipes.thermal.chiller("tconstruct:blood_slime_ball", [Fluid.of("tconstruct:blood", 250), "thermal:chiller_ball_cast"]).id("kubejs:chiller/blood_slime_ball");
|
|
})
|
|
|
|
|
|
ServerEvents.lowPriorityData(event => {
|
|
addChiselingRecipe(event, "kubejs:chiseling_recipes/thermal/beetroot_block", ["farmersdelight:beetroot_crate", "thermal:beetroot_block"])
|
|
addChiselingRecipe(event, "kubejs:chiseling_recipes/thermal/carrot_block", ["farmersdelight:carrot_crate", "thermal:carrot_block"])
|
|
addChiselingRecipe(event, "kubejs:chiseling_recipes/thermal/potato_block", ["farmersdelight:potato_crate", "thermal:potato_block"])
|
|
})
|