Added mod files
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
The keymods folder is for misc changes involving the key mods for CABIN
|
||||
These mods likely also have changes in the main scripts like chapters.js and tags.js
|
||||
70
overrides/kubejs/server_scripts/key_mods/ad_astra.js
Normal file
70
overrides/kubejs/server_scripts/key_mods/ad_astra.js
Normal file
@@ -0,0 +1,70 @@
|
||||
ServerEvents.recipes(event => {
|
||||
// Most Ad Astra Recipes are added in chapters.js
|
||||
event.recipes.create.mixing(("3x ad_astra:steel_ingot"),["3x minecraft:iron_ingot", "minecraft:coal"]).heated()
|
||||
|
||||
event.remove({type: "ad_astra:alloying"})
|
||||
event.remove({type: "ad_astra:compressing"})
|
||||
event.remove({type: "ad_astra:cryo_freezing"})
|
||||
event.remove({type: "ad_astra:nasa_workbench"})
|
||||
event.remove({type: "ad_astra:refining"})
|
||||
|
||||
// Remove all the recipes we don't want from Ad Astra
|
||||
// We're in an awkward situation where we want half of the recipes and don't want the other half
|
||||
let begoneEarth = [
|
||||
"tier_1_rover", "launch_pad",
|
||||
"steel_cable", "desh_cable", "desh_fluid_pipe", "ostrum_fluid_pipe", "cable_duct", "fluid_pipe_duct",
|
||||
"coal_generator", "compressor", "etrionic_blast_furnace", "nasa_workbench", "fuel_refinery", "oxygen_loader",
|
||||
"solar_panel", "water_pump", "oxygen_distributor", "gravity_normalizer", "energizer", "cryo_freezer", "oxygen_sensor",
|
||||
/* "ti_69", "wrench",*/ "zip_gun",
|
||||
"etrionic_capacitor", "gas_tank", "large_gas_tank", // "photovoltaic_etrium_cell",
|
||||
"oxygen_gear", "wheel", "engine_frame", "fan", "rocket_nose_cone",
|
||||
"rocket_fin"
|
||||
]
|
||||
let begoneRegex = [
|
||||
/^ad_astra:(space|netherite_space|jet_suit)_(helmet|suit|pants|boots)$/,
|
||||
"ad_astra:jet_suit",
|
||||
/^ad_astra:(steel|desh|ostrum|calorite)_(tank|engine)$/,
|
||||
]
|
||||
begoneEarth.forEach(begone => { event.remove({ id: `ad_astra:${begone}` }) })
|
||||
begoneRegex.forEach(begone => { event.remove({ id: begone }) })
|
||||
|
||||
event.replaceInput({ id: "ad_astra:ti_69" }, "#forge:plates/steel", "kubejs:matter_plastics")
|
||||
})
|
||||
|
||||
ServerEvents.highPriorityData(event=>{
|
||||
let spaceStationRecipe = {
|
||||
type: "ad_astra:space_station_recipe",
|
||||
dimension: "ad_astra:earth_orbit",
|
||||
ingredients: [
|
||||
{
|
||||
ingredient: {
|
||||
item: "kubejs:computation_matrix"
|
||||
},
|
||||
count: 64
|
||||
},
|
||||
{
|
||||
ingredient: {
|
||||
item: "kubejs:enderium_machine"
|
||||
},
|
||||
count: 64
|
||||
},
|
||||
{
|
||||
ingredient: {
|
||||
item: "ae2:controller"
|
||||
},
|
||||
count: 64
|
||||
},
|
||||
{
|
||||
ingredient: {
|
||||
tag: "forge:storage_blocks/iron"
|
||||
},
|
||||
count: 64
|
||||
}
|
||||
],
|
||||
structure: "ad_astra:space_station"
|
||||
}
|
||||
|
||||
event.addJson("ad_astra:recipes/space_station/earth_orbit_space_station", spaceStationRecipe)
|
||||
spaceStationRecipe.dimension = "ad_astra:moon_orbit"
|
||||
event.addJson("ad_astra:recipes/space_station/moon_orbit_space_station", spaceStationRecipe)
|
||||
})
|
||||
8
overrides/kubejs/server_scripts/key_mods/ae2.js
Normal file
8
overrides/kubejs/server_scripts/key_mods/ae2.js
Normal file
@@ -0,0 +1,8 @@
|
||||
// priority: 1
|
||||
ServerEvents.recipes(event => {
|
||||
event.remove({ output: "ae2:vibration_chamber" })
|
||||
|
||||
event.remove({ id: "ae2:transform/flawed_budding_quartz" })
|
||||
event.remove({ id: "ae2:transform/chipped_budding_quartz" })
|
||||
event.remove({ id: "ae2:transform/damaged_budding_quartz" })
|
||||
})
|
||||
@@ -0,0 +1,13 @@
|
||||
// priority: 1
|
||||
|
||||
wood_types.push("architects_palette:twisted")
|
||||
|
||||
ServerEvents.recipes(event => {
|
||||
event.remove({ id: "architects_palette:smelting/charcoal_block_from_logs_that_burn_smoking" })
|
||||
event.remove({ id: "architects_palette:charcoal_block" })
|
||||
event.stonecutting("architects_palette:charcoal_block", "minecraft:charcoal")
|
||||
donutCraft(event, Item.of("architects_palette:plating_block", 8), "create:iron_sheet", "minecraft:stone")
|
||||
event.replaceInput({ id: "architects_palette:wither_lamp" }, "architects_palette:withered_bone", "tconstruct:necrotic_bone")
|
||||
event.replaceInput({ id: "architects_palette:withered_bone_block" }, "architects_palette:withered_bone", "tconstruct:necrotic_bone")
|
||||
event.remove({ id: "architects_palette:withered_bone" })
|
||||
})
|
||||
58
overrides/kubejs/server_scripts/key_mods/create.js
Normal file
58
overrides/kubejs/server_scripts/key_mods/create.js
Normal file
@@ -0,0 +1,58 @@
|
||||
// priority: 1
|
||||
ServerEvents.recipes(event => {
|
||||
// casing recipe changes
|
||||
let tweak_casing = (name, mats) => {
|
||||
event.remove({ output: name + "_casing"})
|
||||
event.shapeless(Item.of(name + "_casing", 2), mats)
|
||||
}
|
||||
tweak_casing("create:andesite", ["create:andesite_alloy", "#minecraft:logs"])
|
||||
tweak_casing("create:copper", ["create:copper_sheet", "#minecraft:logs"])
|
||||
tweak_casing("create:railway", ["create:golden_sheet", "minecraft:deepslate"])
|
||||
tweak_casing("create:brass", ["create:brass_sheet", "#minecraft:logs"])
|
||||
tweak_casing("kubejs:zinc", ["create:zinc_ingot", "minecraft:stone"])
|
||||
tweak_casing("kubejs:lead", ["thermal:lead_plate", "minecraft:deepslate"])
|
||||
tweak_casing("kubejs:invar", ["thermal:invar_ingot", "minecraft:stone"])
|
||||
tweak_casing("kubejs:enderium", ["minecraft:ender_pearl", "minecraft:obsidian"])
|
||||
tweak_casing("kubejs:fluix", ["thermal:lead_plate", "minecraft:blackstone"])
|
||||
// tweak_casing('alloyed:steel', ["alloyed:steel_sheet", '#minecraft:logs'])
|
||||
tweak_casing("create:refined_radiance", ["create:refined_radiance", "#minecraft:logs"])
|
||||
tweak_casing("create:shadow_steel", ["create:shadow_steel", "#minecraft:logs"])
|
||||
// recipe changes
|
||||
event.replaceInput({ id: "create:crafting/kinetics/adjustable_chain_gearshift" }, "create:electron_tube", "minecraft:redstone")
|
||||
event.replaceInput({ id: "create:crafting/kinetics/rope_pulley" }, "#forge:wool", "#supplementaries:ropes")
|
||||
// windmill recipe tweaks
|
||||
event.remove({ id: "create:crafting/kinetics/white_sail" })
|
||||
event.shaped("2x create:white_sail", [
|
||||
"SSS",
|
||||
"NAN",
|
||||
"SSS"
|
||||
], {
|
||||
A: "#forge:wool",
|
||||
N: "minecraft:iron_nugget",
|
||||
S: "minecraft:stick"
|
||||
})
|
||||
// tweak obsidian crushing recipe
|
||||
event.remove({ id: "create:crushing/obsidian" })
|
||||
event.recipes.create.crushing("create:powdered_obsidian", "minecraft:obsidian")
|
||||
// recompacting obsidian dust into its resource
|
||||
event.recipes.create.compacting("#forge:dusts/obsidian", "minecraft:obsidian")
|
||||
|
||||
// Gravel and red sand washing buffs
|
||||
event.remove({ id: "create:splashing/gravel" })
|
||||
event.recipes.create.splashing([
|
||||
Item.of(Item.of("minecraft:iron_nugget", 2)).withChance(0.125),
|
||||
Item.of("minecraft:flint").withChance(0.25)
|
||||
], "minecraft:gravel")
|
||||
|
||||
event.remove({ id: "create:splashing/red_sand" })
|
||||
event.recipes.create.splashing([
|
||||
Item.of(Item.of("minecraft:gold_nugget", 2)).withChance(0.125),
|
||||
Item.of("minecraft:dead_bush").withChance(0.05)
|
||||
], "minecraft:red_sand")
|
||||
|
||||
// unify dough and allow the slime recipe to take dough from farmer's delight
|
||||
event.remove({ id: "create:crafting/appliances/dough" })
|
||||
event.replaceOutput({ id: "farmersdelight:wheat_dough_from_water" }, "farmersdelight:wheat_dough", "create:dough")
|
||||
event.replaceOutput({ id: "farmersdelight:wheat_dough_from_eggs" }, "farmersdelight:wheat_dough", "create:dough")
|
||||
event.replaceInput({ id: "create:crafting/appliances/slime_ball" }, "create:dough", "#forge:dough")
|
||||
})
|
||||
7
overrides/kubejs/server_scripts/key_mods/createdeco.js
Normal file
7
overrides/kubejs/server_scripts/key_mods/createdeco.js
Normal file
@@ -0,0 +1,7 @@
|
||||
ServerEvents.recipes(event => {
|
||||
// Recipes that don't use item tags when they should be
|
||||
event.replaceInput({id: "createdeco:cast_iron_ingot"}, "createdeco:cast_iron_nugget","#forge:nuggets/cast_iron")
|
||||
event.replaceInput({id: "createdeco:cast_iron_ingot_from_cast_iron_block"}, "createdeco:cast_iron_block","#forge:storage_blocks/cast_iron")
|
||||
event.replaceInput([{id: "createdeco:cast_iron_block"}, {id: "createdeco:cast_iron_nugget_from_cast_iron_ingot"}], "createdeco:cast_iron_ingot","#forge:ingots/cast_iron")
|
||||
event.replaceInput({id: "minecraft:pressing/cast_iron_sheet"}, "createdeco:cast_iron_ingot","#forge:ingots/cast_iron")
|
||||
})
|
||||
44
overrides/kubejs/server_scripts/key_mods/farmersdelight.js
Normal file
44
overrides/kubejs/server_scripts/key_mods/farmersdelight.js
Normal file
@@ -0,0 +1,44 @@
|
||||
// priority: 1
|
||||
ServerEvents.recipes(event => {
|
||||
// Fix farmer's delight recipe conflict with rechiseled
|
||||
event.remove({ id: "farmersdelight:flint_knife" })
|
||||
event.remove({ id: "farmersdelight:iron_knife" })
|
||||
event.remove({ id: "farmersdelight:golden_knife" })
|
||||
event.remove({ id: "farmersdelight:diamond_knife" })
|
||||
event.shaped("farmersdelight:flint_knife", ["S ", " M"], { M: "minecraft:flint", S: "#forge:rods/wooden" })
|
||||
event.shaped("farmersdelight:iron_knife", ["S ", " M"], { M: "minecraft:iron_ingot", S: "#forge:rods/wooden" })
|
||||
event.shaped("farmersdelight:golden_knife", ["S ", " M"], { M: "minecraft:gold_ingot", S: "#forge:rods/wooden" })
|
||||
event.shaped("farmersdelight:diamond_knife", ["S ", " M"], { M: "minecraft:diamond", S: "#forge:rods/wooden" })
|
||||
|
||||
// Modify farmer's delight log stripping
|
||||
event.remove({ input: "#minecraft:logs", type: "farmersdelight:cutting" })
|
||||
// laziness and its consequences have been a distaster for the human race
|
||||
wood_types.forEach(wood => {
|
||||
let log = wood + "_log"
|
||||
if (!Item.exists(log)) {
|
||||
log = wood + "_stem"
|
||||
}
|
||||
let woodLog = wood + "_wood"
|
||||
if (!Item.exists(woodLog)) {
|
||||
woodLog = wood + "_hyphae"
|
||||
}
|
||||
let strippedLog = log.replace(":",":stripped_")
|
||||
let strippedWood = woodLog.replace(":",":stripped_")
|
||||
if (Item.exists(log) && Item.exists(strippedLog)) {
|
||||
event.custom({
|
||||
"type": "farmersdelight:cutting",
|
||||
"ingredients": [{ "item": log }],
|
||||
"tool": { "tag": "forge:tools/axes" },
|
||||
"result": [{ "item": strippedLog }, { "item": "farmersdelight:tree_bark" }]
|
||||
})
|
||||
}
|
||||
if (Item.exists(woodLog) && Item.exists(strippedWood)) {
|
||||
event.custom({
|
||||
"type": "farmersdelight:cutting",
|
||||
"ingredients": [{ "item": woodLog }],
|
||||
"tool": { "tag": "forge:tools/axes" },
|
||||
"result": [{ "item": strippedWood }, { "item": "farmersdelight:tree_bark" }]
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
4
overrides/kubejs/server_scripts/key_mods/ftbquests.js
Normal file
4
overrides/kubejs/server_scripts/key_mods/ftbquests.js
Normal file
@@ -0,0 +1,4 @@
|
||||
// priority: 1
|
||||
ServerEvents.recipes(event => {
|
||||
event.remove({ id:"ftbquests:loot_crate_opener"})
|
||||
})
|
||||
47
overrides/kubejs/server_scripts/key_mods/occultism.js
Normal file
47
overrides/kubejs/server_scripts/key_mods/occultism.js
Normal file
@@ -0,0 +1,47 @@
|
||||
// priority: 1
|
||||
ServerEvents.recipes(event => {
|
||||
// unify the output
|
||||
event.replaceOutput({ id: "occultism:crushing/obsidian_dust" }, "occultism:obsidian_dust", "create:powdered_obsidian")
|
||||
|
||||
// Remove unwanted ore miner ores
|
||||
event.remove({ id: "occultism:miner/ores/redstone_ore" })
|
||||
event.remove({ id: "occultism:miner/ores/aluminum_ore" })
|
||||
event.remove({ id: "occultism:miner/ores/tin_ore" })
|
||||
event.remove({ id: "occultism:miner/ores/silver_ore" })
|
||||
event.remove({ id: "occultism:miner/deeps/deepslate_redstone_ore" })
|
||||
event.remove({ id: "occultism:miner/deeps/deepslate_aluminum_ore" })
|
||||
event.remove({ id: "occultism:miner/deeps/deepslate_tin_ore" })
|
||||
event.remove({ id: "occultism:miner/deeps/deepslate_silver_ore" })
|
||||
|
||||
// Silver replacements
|
||||
event.replaceInput({ id: "occultism:crafting/magic_lamp_empty" }, "#forge:ingots/silver", "#forge:ingots/iron")
|
||||
event.replaceInput({ id: "occultism:crafting/lens_frame" }, "#forge:ingots/silver", "#forge:ingots/zinc")
|
||||
|
||||
event.replaceInput({ type: "occultism:ritual" }, "#forge:dusts/silver", "#forge:dusts/zinc")
|
||||
event.replaceInput({ type: "occultism:ritual" }, "#forge:ingots/silver", "#forge:ingots/zinc")
|
||||
event.replaceInput({ type: "occultism:ritual" }, "#forge:storage_blocks/silver", "#forge:storage_blocks/zinc")
|
||||
|
||||
// use dust instead of raw ore for ritual recipes
|
||||
event.replaceInput({ type: "occultism:ritual" }, "#forge:raw_materials/silver", "#forge:dusts/zinc")
|
||||
event.replaceInput({ type: "occultism:ritual" }, "#forge:raw_materials/iron", "#forge:dusts/iron")
|
||||
event.replaceInput({ type: "occultism:ritual" }, "#forge:raw_materials/gold", "#forge:dusts/gold")
|
||||
event.replaceInput({ type: "occultism:ritual" }, "#forge:raw_materials/copper", "#forge:dusts/copper")
|
||||
|
||||
|
||||
// crushing unification
|
||||
event.replaceOutput({ type: "occultism:crushing" }, "occultism:iron_dust", "thermal:iron_dust")
|
||||
event.replaceOutput({ type: "occultism:crushing" }, "occultism:gold_dust", "thermal:gold_dust")
|
||||
event.replaceOutput({ type: "occultism:crushing" }, "occultism:copper_dust", "thermal:copper_dust")
|
||||
event.replaceOutput({ type: "occultism:crushing" }, "occultism:iron_dust", "thermal:iron_dust")
|
||||
event.replaceOutput({ type: "occultism:crushing" }, "occultism:gold_dust", "thermal:gold_dust")
|
||||
event.replaceOutput({ type: "occultism:crushing" }, "occultism:silver_dust", "thermal:silver_dust")
|
||||
})
|
||||
|
||||
// PlayerEvents.loggedIn(event => {
|
||||
|
||||
// if (!global.occultism_reload) {
|
||||
// global.occultism_reload = true
|
||||
// event.server.runCommandSilent(`reload`)
|
||||
// }
|
||||
|
||||
// })
|
||||
49
overrides/kubejs/server_scripts/key_mods/projectred_core.js
Normal file
49
overrides/kubejs/server_scripts/key_mods/projectred_core.js
Normal file
@@ -0,0 +1,49 @@
|
||||
// priority: 1
|
||||
ServerEvents.recipes(event => {
|
||||
// So many recipes that we don't want
|
||||
event.remove({ mod: "projectred_core" })
|
||||
|
||||
// red alloy ingot
|
||||
event.recipes.create.compacting([Item.of("projectred_core:red_ingot")], [Fluid.of("thermal:redstone", 250).toJson(), Item.of("minecraft:copper_ingot")] )
|
||||
|
||||
event.recipes.create.compacting([Item.of("projectred_core:red_ingot")], [Item.of("minecraft:redstone", 4), Item.of("minecraft:copper_ingot")] )
|
||||
|
||||
event.recipes.thermal.smelter("projectred_core:red_ingot", ["minecraft:copper_ingot", "minecraft:redstone"])
|
||||
|
||||
// recreate the circuit plate smelting recipes
|
||||
event.smelting(Item.of("projectred_core:plate", 2), "minecraft:smooth_stone")
|
||||
// recreate illumar recipes
|
||||
colours.forEach(c=>{
|
||||
event.shapeless(`projectred_core:${c}_illumar`, ["minecraft:glowstone_dust", "minecraft:glowstone_dust", "#forge:dyes/" + c, "#forge:dyes/" + c])
|
||||
})
|
||||
// recreate screwdriver recipe
|
||||
event.shaped("projectred_core:screwdriver", [
|
||||
"I ",
|
||||
" IB",
|
||||
" BI"
|
||||
], {
|
||||
I: "#forge:ingots/iron",
|
||||
B: "#forge:dyes/blue"
|
||||
})
|
||||
|
||||
// Platformed plate
|
||||
// The projectred transmission script replaces red ingot with red alloy wire
|
||||
event.shapeless("projectred_core:platformed_plate", [
|
||||
"projectred_core:plate",
|
||||
Platform.isLoaded("projectred_transmission") ? "projectred_transmission:red_alloy_wire" : "projectred_core:red_ingot",
|
||||
"create:andesite_alloy"
|
||||
]).id("kubejs:platformed_plate")
|
||||
// Circuit cutting. Projectred Transmission circuit recipes are added in the circuit script in the mods folder
|
||||
let circuit = (id, override) => {
|
||||
if (override)
|
||||
event.remove({ output: id })
|
||||
event.stonecutting(Item.of(id, 1), "projectred_core:platformed_plate")
|
||||
}
|
||||
circuit("minecraft:repeater", false)
|
||||
circuit("minecraft:comparator", false)
|
||||
circuit("create:pulse_repeater", true)
|
||||
circuit("create:pulse_extender", true)
|
||||
circuit("create:pulse_timer", true)
|
||||
circuit("create:powered_latch", true)
|
||||
circuit("create:powered_toggle_latch", true)
|
||||
})
|
||||
278
overrides/kubejs/server_scripts/key_mods/tconstruct.js
Normal file
278
overrides/kubejs/server_scripts/key_mods/tconstruct.js
Normal file
@@ -0,0 +1,278 @@
|
||||
// priority: 1
|
||||
|
||||
wood_types.push("tconstruct:greenheart")
|
||||
wood_types.push("tconstruct:skyroot")
|
||||
wood_types.push("tconstruct:bloodshroom")
|
||||
wood_types.push("tconstruct:enderbark")
|
||||
|
||||
ServerEvents.recipes(event => {
|
||||
|
||||
// It is possible to duplicate rails in 1.20.1 Minecraft, so we need to remove rail melting
|
||||
event.custom({
|
||||
"type": "tconstruct:melting",
|
||||
"ingredient": [
|
||||
{
|
||||
"item": "minecraft:iron_bars"
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"amount": 30,
|
||||
"tag": "forge:molten_iron"
|
||||
},
|
||||
"temperature": 800,
|
||||
"time": 35
|
||||
}).id("tconstruct:smeltery/melting/metal/iron/nugget_3")
|
||||
event.custom({
|
||||
"type": "tconstruct:melting",
|
||||
"ingredient": [
|
||||
{
|
||||
"item": "minecraft:stonecutter"
|
||||
},
|
||||
{
|
||||
"item": "minecraft:piston"
|
||||
},
|
||||
{
|
||||
"item": "minecraft:sticky_piston"
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"amount": 90,
|
||||
"tag": "forge:molten_iron"
|
||||
},
|
||||
"temperature": 800,
|
||||
"time": 60
|
||||
}).id("tconstruct:smeltery/melting/metal/iron/ingot_1")
|
||||
event.remove({ id: "tconstruct:smeltery/melting/metal/gold/powered_rail" })
|
||||
|
||||
// Obsidian pane crafting
|
||||
// Not sure where the original recipe went
|
||||
event.shaped(Item.of("tconstruct:obsidian_pane", 8), [
|
||||
"SSS",
|
||||
"SSS"
|
||||
], {
|
||||
S: "minecraft:obsidian"
|
||||
})
|
||||
// melt blaze rods into blazing blood
|
||||
event.custom({
|
||||
"type": "tconstruct:melting",
|
||||
"ingredient": { "tag": "forge:rods/blaze" },
|
||||
"result": { "fluid": "tconstruct:blazing_blood", "amount": 100 },
|
||||
"temperature": 790,
|
||||
"time": 40
|
||||
})
|
||||
// Melt redstone into destabilized redstone
|
||||
event.custom({
|
||||
"type": "tconstruct:melting",
|
||||
"ingredient": { "item": "minecraft:redstone" },
|
||||
"result": { "fluid": "thermal:redstone", "amount": 100 },
|
||||
"temperature": 300,
|
||||
"time": 10
|
||||
});
|
||||
event.custom({
|
||||
"type": "tconstruct:melting",
|
||||
"ingredient": { "item": "minecraft:redstone_block" },
|
||||
"result": { "fluid": "thermal:redstone", "amount": 900 },
|
||||
"temperature": 500,
|
||||
"time": 90
|
||||
});
|
||||
// Remove coin cast
|
||||
event.remove({ id: "tconstruct:smeltery/casts/sand_casts/coins" })
|
||||
event.remove({ id: "tconstruct:smeltery/casts/red_sand_casts/coins" })
|
||||
event.remove({ id: "tconstruct:smeltery/casts/gold_casts/coins" })
|
||||
|
||||
let coinMaterials = [
|
||||
"iron",
|
||||
"gold",
|
||||
"copper",
|
||||
"netherite",
|
||||
"tin",
|
||||
"lead",
|
||||
"silver",
|
||||
"nickel",
|
||||
"bronze",
|
||||
"electrum",
|
||||
"invar",
|
||||
"constantan",
|
||||
"signalum",
|
||||
"lumium",
|
||||
"enderium"
|
||||
];
|
||||
coinMaterials.forEach(material => {
|
||||
event.remove({ id: `tconstruct:smeltery/casting/metal/${material}/coin_gold_cast` })
|
||||
event.remove({ id: `tconstruct:smeltery/casting/metal/${material}/coin_sand_cast` })
|
||||
})
|
||||
// Chains can be crafted using Zinc
|
||||
event.remove({ id: "tconstruct:smeltery/melting/metal/iron/chain" })
|
||||
// Remove enchanted apple melting recipe
|
||||
event.remove({ id: "tconstruct:smeltery/melting/metal/gold/enchanted_apple" })
|
||||
// Remove Tconstruct cheese since it only costs milk to craft and cheese already exists on the moon.
|
||||
event.remove({ id: "tconstruct:smeltery/casting/cheese_block" })
|
||||
event.remove({ id: "tconstruct:smeltery/casting/cheese_ingot_gold_cast" })
|
||||
event.remove({ id: "tconstruct:smeltery/casting/cheese_ingot_sand_cast" })
|
||||
})
|
||||
|
||||
ServerEvents.tags("item", event => {
|
||||
// zinc anvils
|
||||
event.get("tconstruct:anvil_metal").add("create:zinc_block")
|
||||
event.remove("tconstruct:anvil_metal", "#forge:storage_blocks/bronze")
|
||||
|
||||
event.add("forge:ingots/seared_brick", "tconstruct:seared_brick")
|
||||
event.add("forge:ingots/scorched_brick", "tconstruct:scorched_brick")
|
||||
})
|
||||
|
||||
ServerEvents.tags("block", event => {
|
||||
event.remove("tconstruct:anvil_metal", "#forge:storage_blocks/bronze")
|
||||
|
||||
event.get("tconstruct:mineable/melting_blacklist")
|
||||
.add("#forge:storage_blocks/raw_iron")
|
||||
.add("#forge:storage_blocks/raw_copper")
|
||||
.add("#forge:storage_blocks/raw_gold")
|
||||
.add("#forge:storage_blocks/raw_zinc")
|
||||
.add("#forge:storage_blocks/raw_lead")
|
||||
.add("#forge:storage_blocks/raw_nickel")
|
||||
})
|
||||
|
||||
ServerEvents.highPriorityData(event => {
|
||||
// Use crushed ore instead of raw ore for the autosmelt modifier
|
||||
event.addJson("tconstruct:recipes/tools/modifiers/ability/autosmelt", {
|
||||
"type": "tconstruct:modifier",
|
||||
"allow_crystal": true,
|
||||
"check_trait_level": true,
|
||||
"inputs": [
|
||||
{ "tag": "create:crushed_raw_materials" },
|
||||
{ "item": "minecraft:blast_furnace" },
|
||||
{ "tag": "forge:ingots" },
|
||||
{ "tag": "forge:storage_blocks/coal" },
|
||||
{ "tag": "forge:storage_blocks/coal" }
|
||||
],
|
||||
"level": 1,
|
||||
"result": "tconstruct:autosmelt",
|
||||
"slots": { "abilities": 1 },
|
||||
"tools": { "tag": "tconstruct:modifiable/harvest" }
|
||||
})
|
||||
|
||||
// Make Melting exclusive to the melting pan
|
||||
event.addJson("tconstruct:recipes/tools/modifiers/ability/melting", {
|
||||
"type": "tconstruct:modifier",
|
||||
"allow_crystal": true,
|
||||
"check_trait_level": true,
|
||||
"inputs": [
|
||||
{
|
||||
"item": "minecraft:blaze_rod"
|
||||
},
|
||||
{
|
||||
"ingredient": [
|
||||
{
|
||||
"item": "tconstruct:seared_melter"
|
||||
},
|
||||
{
|
||||
"item": "tconstruct:smeltery_controller"
|
||||
},
|
||||
{
|
||||
"item": "tconstruct:foundry_controller"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"item": "minecraft:blaze_rod"
|
||||
},
|
||||
{
|
||||
"item": "minecraft:lava_bucket"
|
||||
},
|
||||
{
|
||||
"item": "minecraft:lava_bucket"
|
||||
}
|
||||
],
|
||||
"level": 1,
|
||||
"result": "tconstruct:melting",
|
||||
"slots": {
|
||||
"abilities": 1
|
||||
},
|
||||
"tools": [
|
||||
{
|
||||
"item": "tconstruct:melting_pan"
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
event.addJson("tconstruct:tinkering/tool_definitions/melting_pan", {
|
||||
"modules": [
|
||||
{
|
||||
"type": "tconstruct:material_stats",
|
||||
"primary_part": 0,
|
||||
"stat_types": [
|
||||
"tconstruct:plating_shield",
|
||||
"tconstruct:limb"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "tconstruct:default_materials",
|
||||
"materials": [
|
||||
{
|
||||
"type": "tconstruct:random"
|
||||
},
|
||||
{
|
||||
"type": "tconstruct:random"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "tconstruct:material_traits",
|
||||
"hooks": [
|
||||
"tconstruct:rebalanced_trait"
|
||||
],
|
||||
"material_index": 1,
|
||||
"stat_type": "tconstruct:limb"
|
||||
},
|
||||
{
|
||||
"type": "tconstruct:base_stats",
|
||||
"stats": {
|
||||
"tconstruct:block_amount": 10.0,
|
||||
"tconstruct:harvest_tier": "minecraft:iron",
|
||||
"tconstruct:knockback_resistance": 0.1,
|
||||
"tconstruct:mining_speed": 6.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tconstruct:modifier_slots",
|
||||
"slots": {
|
||||
"abilities": 2,
|
||||
"defense": 1,
|
||||
"upgrades": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tconstruct:melting_fluid_effective",
|
||||
"ignore_tier": false,
|
||||
"inverted_type": "mantle:tag",
|
||||
"predicate_type": "mantle:inverted",
|
||||
"tag": "tconstruct:mineable/melting_blacklist",
|
||||
"temperature": 1500
|
||||
},
|
||||
{
|
||||
"type": "tconstruct:volatile_flag",
|
||||
"flag": "tconstruct:force_melting"
|
||||
},
|
||||
{
|
||||
"type": "tconstruct:vein_aoe",
|
||||
"max_distance": 0
|
||||
},
|
||||
{
|
||||
"type": "tconstruct:traits",
|
||||
"traits": [
|
||||
{
|
||||
"level": 2,
|
||||
"name": "tconstruct:melting"
|
||||
},
|
||||
{
|
||||
"level": 1,
|
||||
"name": "tconstruct:tank"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "tconstruct:dual_option_interaction"
|
||||
}
|
||||
]
|
||||
})
|
||||
})
|
||||
220
overrides/kubejs/server_scripts/key_mods/thermal.js
Normal file
220
overrides/kubejs/server_scripts/key_mods/thermal.js
Normal file
@@ -0,0 +1,220 @@
|
||||
// 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"])
|
||||
})
|
||||
@@ -0,0 +1,9 @@
|
||||
// priority: 1
|
||||
ServerEvents.recipes(event => {
|
||||
// Might be considered as part of chapter 1
|
||||
event.remove({ output: "strainers:iron_mesh" })
|
||||
|
||||
let strainerPattern = ["SSS", "MAM", "SSS"]
|
||||
event.shaped("kubejs:strainer_filter", strainerPattern,
|
||||
{ A: "farmersdelight:canvas", M: "farmersdelight:canvas", S: "minecraft:stick" }).id("kubejs:sediment_strainer")
|
||||
})
|
||||
Reference in New Issue
Block a user