This commit is contained in:
Shiroyasha 2025-09-14 21:22:24 +03:00
commit a956daf8e2
Signed by: shiroyashik
GPG key ID: E4953D3940D7860A
2351 changed files with 163047 additions and 0 deletions

View file

@ -0,0 +1,141 @@
/**
* Compat for the computercraft addon Advanced Peripherals
*/
const modid = "advancedperipherals"
if (Platform.isLoaded(modid) && Platform.isLoaded("computercraft")) {
console.log("Advanced peripherals found, loading compat scripts...")
ServerEvents.recipes(event => {
const replaceRecipe = (output, shape, dictionary) => {
const id = `${modid}:${output}`
event.remove({ id: id })
event.shaped(id, shape, dictionary)
}
replaceRecipe("peripheral_casing", [
"CMC",
"SLS",
"CMC"
], {
C: "computercraft:cable",
M: "computercraft:wired_modem",
S: "#gtceu:circuits/mv",
L: "gtceu:mv_machine_hull"
})
replaceRecipe("chat_box", [
"BEB",
"PCP",
"ASA"
], {
B: "minecraft:book",
E: "gtceu:mv_emitter",
P: "minecraft:ender_pearl",
C: `${modid}:peripheral_casing`,
A: "minecraft:paper",
S: "gtceu:mv_sensor"
})
replaceRecipe("energy_detector", [
"C C",
"TPT",
"C C"
], {
C: "gtceu:copper_single_cable",
T: "gtceu:mv_transformer_1a",
P: `${modid}:peripheral_casing`
})
event.remove({ id: `${modid}:environment_detector` })
const envDetectorRecipe = (plate) => {
event.shaped(`${modid}:environment_detector`, [
"PSP",
"SCS",
"DSD"
], {
P: plate,
S: "gtceu:lv_sensor",
C: `${modid}:peripheral_casing`,
D: "minecraft:dirt"
})
}
envDetectorRecipe("gtceu:nether_quartz_plate")
envDetectorRecipe("gtceu:certus_quartz_plate")
envDetectorRecipe("gtceu:quartzite_plate")
replaceRecipe("player_detector", [
"OSO",
"PCP",
"MSM"
], {
O: "minecraft:observer",
S: "gtceu:mv_sensor",
P: "minecraft:ender_pearl",
C: `${modid}:peripheral_casing`,
M: "minecraft:smooth_stone"
})
replaceRecipe("inventory_manager", [
"WEW",
"RPR",
"FCF"
], {
W: "ae2:wireless_receiver",
E: "minecraft:ender_pearl",
R: "gtceu:hv_robot_arm",
P: `${modid}:peripheral_casing`,
F: "gtceu:hv_field_generator",
C: "minecraft:chest"
})
replaceRecipe("block_reader", [
"PSP",
"ECM",
"PSP"
], {
P: "gtceu:steel_plate",
S: "gtceu:steel_screw",
E: "gtceu:mv_emitter",
C: `${modid}:peripheral_casing`,
M: "gtceu:mv_sensor"
})
replaceRecipe("nbt_storage", [
"PMP",
"SRS",
"PCP"
], {
P: "gtceu:steel_plate",
M: "computercraft:wired_modem",
S: "#gtceu:circuits/mv",
R: `${modid}:peripheral_casing`,
C: "minecraft:chest"
})
replaceRecipe("geo_scanner", [
"SPS",
"CRC",
"SDS"
], {
S: "gtceu:steel_screw",
P: "gtceu:prospector.lv",
C: "#gtceu:circuits/mv",
R: `${modid}:peripheral_casing`,
D: "minecraft:diamond"
})
replaceRecipe("me_bridge", [
"GIG",
"SCS",
"GTG"
], {
G: "ae2:fluix_glass_cable",
I: "ae2:interface",
S: "#gtceu:circuits/mv",
C: `${modid}:peripheral_casing`,
T: "ae2:pattern_provider"
})
})
console.log("Advacned peripherals compat scripts successfully loaded!")
} else { console.log("Advanced peripherals not found, skipping compat scripts. ") }

View file

@ -0,0 +1,416 @@
/**
*
* Compatibility Script for Architect's Palette
* Mainly removes Warping, but also adds various other recipes to GT machines.
*
*/
if (Platform.isLoaded("architects_palette")) {
console.log("Architect's Palette found, loading compat script...")
LootJS.modifiers((event) => {
event.addEntityLootModifier("minecraft:wither_skeleton").replaceLoot("architects_palette:withered_bone", "minecraft:bone", true);
});
ServerEvents.recipes(event => {
// Recipe Removal
event.remove([
{ id: "architects_palette:algal_blend" },
{ id: "architects_palette:algal_blend" },
{ id: "architects_palette:plating_block" },
{ id: "architects_palette:tread_plating" },
{ id: "architects_palette:nether_brass_blend" },
{ id: "architects_palette:oracle_jelly" },
{ id: "architects_palette:wardstone_blend" },
{ id: "architects_palette:cerebral_plate" },
{ id: "architects_palette:sunmetal_blend" },
{ id: "architects_palette:hazard_sign" },
{ id: "architects_palette:entwine_rod" },
{ id: "architects_palette:withered_bone" },
])
// For some reason the smelting recipe wouldn't go away so I went with the more direct approach.
event.remove({ output: "architects_palette:wardstone_brick" })
event.remove({ type: "architects_palette:warping" })
event.replaceInput(
{ input: "architects_palette:withered_bone" },
"architects_palette:withered_bone",
"kubejs:wither_bone"
)
// Mixer Recipes
event.recipes.gtceu.mixer("algal_blend")
.itemInputs("minecraft:clay_ball","minecraft:kelp")
.itemOutputs("4x architects_palette:algal_blend")
.duration(40)
.EUt(7)
event.recipes.gtceu.mixer("4x_algal_blend")
.itemInputs("minecraft:clay","2x minecraft:kelp")
.itemOutputs("16x architects_palette:algal_blend")
.duration(40)
.EUt(7)
event.recipes.gtceu.mixer("myonite")
.itemInputs("4x minecraft:stone","#forge:mushrooms")
.itemOutputs("8x architects_palette:myonite")
.duration(40)
.EUt(7)
event.recipes.gtceu.mixer("olivestone_bricks")
.itemInputs("8x minecraft:stone_bricks")
.inputFluids("gtceu:green_dye 72")
.itemOutputs("8x architects_palette:olivestone_bricks")
.duration(40)
.EUt(7)
event.recipes.gtceu.mixer("sunmetal_blend")
.itemInputs("minecraft:soul_sand", "gtceu:tiny_gold_dust")
.itemOutputs("4x architects_palette:sunmetal_blend")
.duration(20)
.EUt(8)
event.recipes.gtceu.mixer("sunmetal_blend_9x")
.itemInputs("9x minecraft:soul_sand", "gtceu:gold_dust")
.itemOutputs("36x architects_palette:sunmetal_blend")
.duration(100)
.EUt(8)
event.recipes.gtceu.mixer("nether_brass_blend")
.itemInputs("minecraft:soul_sand", "gtceu:copper_dust", "gtceu:tiny_iron_dust")
.itemOutputs("4x architects_palette:nether_brass_blend")
.duration(20)
.EUt(32)
event.recipes.gtceu.mixer("nether_brass_blend_9x")
.itemInputs("9x minecraft:soul_sand", "9x gtceu:copper_dust", "gtceu:iron_dust")
.itemOutputs("36x architects_palette:nether_brass_blend")
.duration(100)
.EUt(32)
event.recipes.gtceu.mixer("oracle_jelly")
.itemInputs("minecraft:chorus_fruit", "minecraft:sugar")
.itemOutputs("4x architects_palette:oracle_jelly")
.duration(20)
.EUt(8)
event.recipes.gtceu.mixer("oracle_bricks")
.itemInputs("8x architects_palette:oracle_bricks")
.inputFluids("gtceu:black_dye 72")
.itemOutputs("8x architects_palette:dark_oracle_bricks")
.duration(40)
.EUt(7)
// Alloy Smelter Recipes
event.recipes.gtceu.alloy_smelter("wardstone_brick")
.itemInputs("minecraft:soul_sand", "minecraft:gold_nugget")
.itemOutputs("4x architects_palette:sunmetal_brick")
.duration(20)
.EUt(8)
event.recipes.gtceu.alloy_smelter("sunmetal_brick")
.itemInputs("minecraft:lapis_lazuli", "minecraft:nether_wart")
.itemOutputs("4x architects_palette:wardstone_brick")
.duration(20)
.EUt(8)
event.recipes.gtceu.alloy_smelter("cerebral_plate")
.itemInputs("minecraft:tuff", "#minecraft:coals")
.itemOutputs("4x architects_palette:cerebral_plate")
.duration(20)
.EUt(8)
// Compressor Recipes
event.recipes.gtceu.compressor("agal_bricks")
.itemInputs("4x architects_palette:algal_brick")
.itemOutputs("architects_palette:algal_bricks")
.duration(100)
.EUt(2)
event.recipes.gtceu.compressor("cerebral_block")
.itemInputs("4x architects_palette:cerebral_plate")
.itemOutputs("8x architects_palette:cerebral_block")
.duration(100)
.EUt(2)
event.recipes.gtceu.compressor("oracle_block")
.itemInputs("4x architects_palette:oracle_jelly")
.itemOutputs("8x architects_palette:oracle_block")
.duration(100)
.EUt(2)
event.recipes.gtceu.compressor("rotten_flesh_block")
.itemInputs("9x minecraft:rotten_flesh")
.itemOutputs("architects_palette:rotten_flesh_block")
.duration(100)
.EUt(2)
event.recipes.gtceu.compressor("unobtanium_block")
.itemInputs("4x architects_palette:unobtanium")
.itemOutputs("architects_palette:unobtanium_block")
.duration(100)
.EUt(2)
event.recipes.gtceu.compressor("sunmetal_block")
.itemInputs("4x architects_palette:sunmetal_brick")
.itemOutputs("4x architects_palette:sunmetal_block")
.duration(100)
.EUt(2)
event.recipes.gtceu.compressor("nether_brass_block")
.itemInputs("4x architects_palette:nether_brass_ingot")
.itemOutputs("4x architects_palette:nether_brass_block")
.duration(100)
.EUt(2)
event.recipes.gtceu.compressor("withered_bone_block")
.itemInputs("3x kubejs:wither_bone")
.itemOutputs("architects_palette:withered_bone_block")
.duration(100)
.EUt(2)
event.recipes.gtceu.compressor("cod_log")
.itemInputs("4x minecraft:cod")
.itemOutputs("6x architects_palette:cod_log")
.duration(100)
.EUt(2)
event.recipes.gtceu.compressor("salmon_log")
.itemInputs("4x minecraft:salmon")
.itemOutputs("6x architects_palette:salmon_log")
.duration(100)
.EUt(2)
event.recipes.gtceu.compressor("scute_block")
.itemInputs("4x minecraft:scute")
.itemOutputs("12x architects_palette:scute_block")
.duration(100)
.EUt(2)
// The One Lathe Recipe
event.recipes.gtceu.lathe("entwine_rod")
.itemInputs("minecraft:ender_pearl")
.itemOutputs("4x architects_palette:entwine_rod")
.duration(112)
.EUt(16)
// Forge Hammer Recipes
event.recipes.gtceu.forge_hammer("unobtanium")
.itemInputs("architects_palette:unobtanium_block")
.itemOutputs("5x architects_palette:unobtanium")
.duration(60)
.EUt(7)
event.recipes.gtceu.forge_hammer("withered_bone")
.itemInputs("architects_palette:withered_bone_block")
.itemOutputs("3x kubejs:wither_bone")
.duration(60)
.EUt(7)
// Assembler Recipes
event.recipes.gtceu.assembler("abyssaline")
.itemInputs("2x minecraft:obsidian", "2x minecraft:prismarine_shard")
.itemOutputs("12x architects_palette:abyssaline")
.duration(100)
.EUt(32)
event.recipes.gtceu.assembler("plating_block")
.circuit(24)
.itemInputs("4x minecraft:iron_nugget", "gtceu:iron_plate")
.itemOutputs("8x architects_palette:plating_block")
.duration(40)
.EUt(32)
event.recipes.gtceu.assembler("tread_plate")
.circuit(23)
.itemInputs("4x minecraft:iron_nugget", "architects_palette:plating_block")
.itemOutputs("8x architects_palette:tread_plate")
.duration(40)
.EUt(32)
event.recipes.gtceu.assembler("bread_block")
.circuit(1)
.itemInputs("minecraft:hay_block")
.itemOutputs("3x architects_palette:bread_block")
.duration(40)
.EUt(32)
event.recipes.gtceu.assembler("spool")
.circuit(2)
.itemInputs("minecraft:stick", "minecraft:white_wool")
.itemOutputs("2x architects_palette:spool")
.duration(40)
.EUt(32)
event.recipes.gtceu.assembler("coarse_snow")
.itemInputs("minecraft:gravel", "minecraft:snow_block")
.itemOutputs("4x architects_palette:coarse_snow")
.duration(40)
.EUt(32)
event.recipes.gtceu.assembler("molten_nether_bricks")
.itemInputs("minecraft:nether_bricks", "minecraft:magma_block")
.itemOutputs("4x architects_palette:molten_nether_bricks")
.duration(40)
.EUt(32)
event.recipes.gtceu.assembler("sunstone")
.itemInputs("minecraft:basalt", "architects_palette:sunmetal_blend")
.itemOutputs("4x architects_palette:sunstone")
.duration(40)
.EUt(32)
event.recipes.gtceu.assembler("hazard_sign")
.circuit(23)
.itemInputs("minecraft:iron_nugget", "gtceu:iron_plate")
.itemOutputs("4x architects_palette:hazard_sign")
.duration(40)
.EUt(32)
// Atomic Reconstructor Recipes
event.recipes.gtceu.atomic_reconstruction("unobtanium")
.itemInputs("minecraft:netherite_ingot")
.itemOutputs("architects_palette:unobtanium")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("twisted_sapling")
.itemInputs("#minecraft:saplings")
.itemOutputs("architects_palette:twisted_sapling")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("warpstone")
.itemInputs("minecraft:clay")
.itemOutputs("architects_palette:warpstone")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("hadaline")
.itemInputs("architects_palette:abyssaline")
.itemOutputs("architects_palette:hadaline")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("moonstone")
.itemInputs("architects_palette:sunstone")
.itemOutputs("architects_palette:moonstone")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("sunstone")
.itemInputs("architects_palette:moonstone")
.itemOutputs("architects_palette:sunstone")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("onyx")
.itemInputs("minecraft:granite")
.itemOutputs("architects_palette:onyx")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("nebulite")
.itemInputs("minecraft:diorite")
.itemOutputs("architects_palette:nebulite")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("craterstone")
.itemInputs("minecraft:cobblestone")
.itemOutputs("architects_palette:craterstone")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("esoterrack")
.itemInputs("minecraft:andesite")
.itemOutputs("architects_palette:esoterrack")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("moonshale")
.itemInputs("minecraft:stone")
.itemOutputs("architects_palette:moonshale")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("hadaline_lamp")
.itemInputs("architects_palette:abyssaline_lamp")
.itemOutputs("architects_palette:hadaline_lamp")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("entrails")
.itemInputs("architects_palette:rotten_flesh_block")
.itemOutputs("architects_palette:entrails")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("initial_monazite_rod")
.itemInputs("gtceu:monazite_gem")
.itemOutputs("architects_palette:monazite_rod")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("monazite_rod")
.itemInputs("architects_palette:heliodor_rod")
.itemOutputs("architects_palette:monazite_rod")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("ekanite_rod")
.itemInputs("architects_palette:monazite_rod")
.itemOutputs("architects_palette:ekanite_rod")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("heliodor_rod")
.itemInputs("architects_palette:ekanite_rod")
.itemOutputs("architects_palette:heliodor_rod")
.duration(20)
.EUt(32)
// Twisted Wood Recipes
event.recipes.gtceu.greenhouse("twisted_sapling")
.circuit(1)
.notConsumable(InputItem.of(Item.of("architects_palette:twisted_sapling")))
.inputFluids("minecraft:water 24000")
.itemOutputs("64x architects_palette:twisted_log", "4x architects_palette:twisted_sapling")
.duration(1280)
.EUt(80)
event.recipes.gtceu.greenhouse("twisted_sapling_boosted")
.circuit(2)
.notConsumable(InputItem.of(Item.of("architects_palette:twisted_sapling")))
.itemInputs("1x gtceu:fertilizer")
.inputFluids("minecraft:water 16000")
.itemOutputs("64x architects_palette:twisted_log", "64x architects_palette:twisted_log", "4x architects_palette:twisted_sapling")
.duration(640)
.EUt(80)
event.recipes.gtceu.cutter("water_twisted_planks")
.itemInputs("#architects_palette:twisted_logs")
.inputFluids("minecraft:water 4")
.itemOutputs("6x architects_palette:twisted_planks", "2x gtceu:wood_dust")
.duration(400)
.EUt(7)
event.recipes.gtceu.cutter("water_distilled_twisted_planks")
.itemInputs("#architects_palette:twisted_logs")
.inputFluids("gtceu:distilled_water 3")
.itemOutputs("6x architects_palette:twisted_planks", "2x gtceu:wood_dust")
.duration(300)
.EUt(7)
event.recipes.gtceu.cutter("lubricant_twisted_planks")
.itemInputs("#architects_palette:twisted_logs")
.inputFluids("gtceu:lubricant 1")
.itemOutputs("6x architects_palette:twisted_planks", "2x gtceu:wood_dust")
.duration(200)
.EUt(7)
})
console.log("Architect's Palette Loaded!")
}

View file

@ -0,0 +1,67 @@
/**
* Optional compat script for Compact Machines
*
* Modeled after Nomifactory CEu's script for the same.
* Gated to HV, with more unlocked at IV.
*
* Replaces or modifies the recipe for every item in the mod.
*/
if (Platform.isLoaded("compactmachines")) {
console.log("Compact Machines found, loading compat scripts...")
ServerEvents.recipes(event => {
// Recipe modification for Personal Shrinking Device
event.replaceInput({ id: "compactmachines:personal_shrinking_device" }, "#forge:glass_panes", "gtceu:computer_monitor_cover")
// Compact Machine Wall recipes. HV recipe + more efficient EV recipe
event.remove({ output: "compactmachines:wall" })
event.recipes.gtceu.assembler("compactmachines:wall")
.itemInputs("9x gtceu:blue_steel_plate", "1x gtceu:ultimet_frame", "1x gtceu:mv_sensor")
.itemOutputs("4x compactmachines:wall")
.duration(40)
.EUt(GTValues.VHA[GTValues.HV])
event.recipes.gtceu.assembler("compactmachines:wall_alt")
.itemInputs("9x gtceu:maraging_steel_300_plate", "2x gtceu:ultimet_frame", "1x gtceu:hv_sensor")
.itemOutputs("16x compactmachines:wall")
.duration(40)
.EUt(GTValues.VHA[GTValues.IV])
// Recipes for all tiers of Compact Machine
const machineSizes = [
{ size: "tiny", material: "#forge:storage_blocks/copper" },
{ size: "small", material: "#forge:storage_blocks/iron" },
{ size: "normal", material: "#forge:storage_blocks/gold" },
{ size: "large", material: "minecraft:obsidian" },
{ size: "giant", material: "#forge:storage_blocks/diamond" },
{ size: "maximum", material: "#forge:storage_blocks/netherite" },
]
machineSizes.forEach((value, index) => {
event.recipes.gtceu.assembler(`compactmachines:machine_${value.size}`)
.itemInputs(Item.of("compactmachines:wall", 4 * (index + 1)), (index > 2 ? "gtceu:tungsten_frame" : "gtceu:dark_steel_frame"), value.material, `2x gtceu:${GTValues.VN[index + 1].toLowerCase()}_field_generator`, (index > 2 ? Item.of("gtceu:quantum_eye", 2 ** (index - 2)) : Item.of("minecraft:ender_eye", 2 ** index)))
.inputFluids(`gtceu:styrene_butadiene_rubber ${144 * (index + 1)}`)
.itemOutputs(`compactmachines:machine_${value.size}`)
.duration(200)
.EUt(GTValues.VA[index + 1])
})
// Recipes for tunnels
const tunnelTypes = [
{ type: "item", hatch: "gtceu:hv_item_passthrough_hatch", nbt: '{definition:{id:"compactmachines:item"}}' },
{ type: "fluid", hatch: "gtceu:hv_fluid_passthrough_hatch", nbt: '{definition:{id:"compactmachines:fluid"}}' },
{ type: "energy", hatch: "gtceu:hv_diode", nbt: '{definition:{id:"compactmachines:energy"}}' },
// {type: "redstone", hatch: "enderio:redstone_conduit", nbt: '{definition:{id:"compactmachines:redstone"}}'} // Redstone tunnel NYI :(
]
tunnelTypes.forEach(value => {
event.remove({ id: `compactmachines:tunnels/${value.type}` })
event.recipes.gtceu.assembler(`compactmachines:tunnel_${value.type}`)
.itemInputs("2x compactmachines:wall", value.hatch, "gtceu:quantum_eye")
.itemOutputs(Item.of("compactmachines:tunnel", 2, value.nbt))
.duration(100)
.EUt(GTValues.VHA[GTValues.HV])
})
})
console.log("Compact Machines compat scripts successfully loaded!")
} else { console.log("Compact Machines not found, skipping its compat scripts.") }

View file

@ -0,0 +1,201 @@
/**
* Compat for the computercraft mod
*/
if (Platform.isLoaded("computercraft")) {
console.log("Computercraft Tweaked found, loading compat scripts...")
ServerEvents.recipes(event => {
// Nomral Computer
event.remove({ id: "computercraft:computer_normal" })
event.shaped("computercraft:computer_normal", [
"SSS",
"SNS",
"SCS"
], {
S: "gtceu:steel_plate",
C: "gtceu:computer_monitor_cover",
N: "#gtceu:circuits/hv",
})
// Advanced Computer
event.remove({ id: "computercraft:computer_advanced" })
event.remove({ id: "computercraft:computer_advanced_upgrade" })
event.shaped("computercraft:computer_advanced", [
"SSS",
"SNS",
"SCS"
], {
S: "gtceu:electrum_plate",
C: "computercraft:computer_normal",
N: "#gtceu:circuits/ev",
})
// Turtle
event.remove({ id: "computercraft:turtle_normal" })
event.shaped("computercraft:turtle_normal", [
" ",
"RCA",
" E "
], {
R: "gtceu:stainless_steel_crate",
A: "gtceu:hv_robot_arm",
C: "computercraft:computer_normal",
E: "gtceu:hv_conveyor_module",
})
// Advanced Turtle
event.remove({ id: "computercraft:turtle_advanced" })
event.remove({ id: "computercraft:turtle_advanced_upgrade" })
event.shaped("computercraft:turtle_advanced", [
" ",
"RCA",
" E "
], {
R: "gtceu:titanium_crate",
A: "gtceu:ev_robot_arm",
C: "computercraft:computer_advanced",
E: "gtceu:ev_conveyor_module",
})
// Ender Modem
event.remove({ id: "computercraft:wireless_modem_advanced" })
event.shaped("computercraft:wireless_modem_advanced", [
" E ",
"BSB",
"PPP"
], {
B: "gtceu:electrum_bolt",
P: "gtceu:electrum_plate",
S: "gtceu:hv_sensor",
E: "gtceu:hv_emitter",
})
// Wireless Modem
event.remove({ id: "computercraft:wireless_modem_normal" })
event.shaped("computercraft:wireless_modem_normal", [
" E ",
"BSB",
"PPP"
], {
B: "gtceu:steel_bolt",
P: "gtceu:steel_plate",
S: "gtceu:mv_sensor",
E: "gtceu:mv_emitter",
})
// Speaker
event.remove({ id: "computercraft:speaker" })
event.shaped("computercraft:speaker", [
"PWP",
"PNP",
"PCP"
], {
W: "gtceu:copper_single_wire",
N: "minecraft:note_block",
P: "gtceu:steel_plate",
C: "gtceu:carbon_fiber_mesh",
})
// Monitor
event.remove({ id: "computercraft:monitor_normal" })
event.shaped("computercraft:monitor_normal", [
"PHP",
"PCP",
"PPP"
], {
P: "gtceu:steel_plate",
C: "gtceu:computer_monitor_cover",
H: "gtceu:mv_machine_hull",
})
// Advanced Monitor
event.remove({ id: "computercraft:monitor_advanced" })
event.shaped("computercraft:monitor_advanced", [
"PHP",
"PCP",
"PPP"
], {
P: "gtceu:electrum_plate",
C: "gtceu:computer_monitor_cover",
H: "gtceu:hv_machine_hull",
})
// Pocket Computer
event.remove({ id: "computercraft:pocket_computer_normal" })
event.shaped("computercraft:pocket_computer_normal", [
" ",
" C ",
" T "
], {
T: "gtceu:terminal",
C: "computercraft:computer_normal",
})
// Advanced Pocket Computer
event.remove({ id: "computercraft:pocket_computer_advanced" })
event.remove({ id: "computercraft:pocket_computer_advanced_upgrade" })
event.shaped("computercraft:pocket_computer_advanced", [
" ",
" C ",
" T "
], {
T: "gtceu:terminal",
C: "computercraft:computer_advanced",
})
// Printer
event.remove({ id: "computercraft:printer" })
event.shaped("computercraft:printer", [
"PHP",
"PIM",
"PCC"
], {
P: "gtceu:steel_plate",
H: "gtceu:mv_machine_hull",
I: "gtceu:mv_electric_piston",
C: "gtceu:mv_conveyor_module",
M: "gtceu:mv_electric_motor",
})
// Wired Modem
event.remove({ id: "computercraft:wired_modem" })
event.shaped("computercraft:wired_modem", [
"PPP",
"ECC",
"PPP"
], {
P: "gtceu:steel_plate",
E: "gtceu:mv_emitter",
C: "computercraft:cable",
})
// Netowrking Cable
event.remove({ id: "computercraft:cable" })
event.recipes.gtceu.assembler("computercraft_cable")
.itemInputs("3x gtceu:steel_foil", "6x gtceu:fine_copper_wire")
.inputFluids("gtceu:polyethylene 144")
.itemOutputs("6x computercraft:cable")
.duration(100)
.EUt(7)
// Disk Drive
event.remove({ id: "computercraft:disk_drive" })
event.shaped("computercraft:disk_drive", [
"PHP",
"PBP",
"PBP"
], {
P: "gtceu:steel_plate",
H: "gtceu:mv_machine_hull",
B: "gtceu:lv_input_bus",
})
})
console.log("Computercraft Tweaked compat scripts successfully loaded!")
} else { console.log("Computercraft Tweaked not found, skipping its compat scripts.") }

View file

@ -0,0 +1,290 @@
/**
* Compat for the create mod
*/
if (Platform.isLoaded("create")) {
console.log("Create found, loading compat scripts...")
ServerEvents.recipes(event => {
// Removes any machines related to processing, the point of this compat is fun not functionality,
/* Removes recipes for machines that were not removed, deployers and mechanical crafters are fun!
Most recipe categories that are removed machines are hidden in
kubejs/assets/emi/recipe/filters/hidecategories.json as opposed to removing the actual recipes */
event.remove({ type: "create:deploying" })
event.remove({ type: "create:milling" })
event.remove({ type: "create:crushing" })
event.remove({ id: "create:crafting/kinetics/millstone" })
// event.remove({id: 'create:mechanical_crafting/crushing_wheel'}) //mechanical roller uses this for now
event.remove({ id: "create:crafting/kinetics/mechanical_mixer" })
event.remove({ id: "create:crafting/kinetics/mechanical_press" })
// Remove the hand crank since it's easy to abuse contraptions using it
event.remove({ id: "create:crafting/kinetics/hand_crank" })
// w h a t ?
event.remove({ id: "gtceu:shaped/lv_kinetic_mixer" })
event.remove({ id: "gtceu:shaped/mv_kinetic_mixer" })
event.remove({ id: "gtceu:shaped/hv_kinetic_mixer" })
event.remove({ id: "gtceu:shaped/ev_kinetic_mixer" })
// belts made with rubber
let kelpRecipes = [
"create:crafting/kinetics/belt_connector",
"create:crafting/logistics/andesite_funnel",
"create:crafting/logistics/brass_funnel",
"create:crafting/logistics/andesite_tunnel",
"create:crafting/logistics/brass_tunnel"
]
kelpRecipes.forEach(id => { event.replaceInput({ id: id }, "minecraft:dried_kelp", "gtceu:rubber_plate") })
event.replaceInput({ id: "create:crafting/kinetics/spout" }, "minecraft:dried_kelp", "gtceu:rubber_ring")
// Adds some create recipes to gt machines
event.recipes.gtceu.mixer("kubejs:andesite_alloy_from_iron")
.itemInputs("#forge:nuggets/iron", "minecraft:andesite")
.itemOutputs("create:andesite_alloy")
.duration(100)
.EUt(7)
event.recipes.gtceu.mixer("kubejs:andesite_alloy_from_zinc")
.itemInputs("#forge:nuggets/zinc", "minecraft:andesite")
.itemOutputs("create:andesite_alloy")
.duration(100)
.EUt(7)
// Pressing and compacting recipes
event.recipes.gtceu.forge_hammer("kubejs:dirt_path")
.itemInputs(["minecraft:dirt", "minecraft:grass"])
.itemOutputs("minecraft:dirt_path")
.duration(10)
.EUt(2)
event.recipes.gtceu.fluid_solidifier("kubejs:bar_of_chocolate")
.inputFluids(Fluid.of("create:chocolate", 250))
.notConsumable("gtceu:ingot_casting_mold")
.itemOutputs("create:bar_of_chocolate")
.duration(20)
.EUt(7)
let honeyFluid = new JSONObject()
honeyFluid.add("amount", 1000)
honeyFluid.add("value", { tag: "forge:honey" })
event.recipes.gtceu.fluid_solidifier("kubejs:honey_block")
.inputFluids(FluidIngredientJS.of(honeyFluid))
.notConsumable("gtceu:block_casting_mold")
.itemOutputs("minecraft:honey_block")
.duration(5)
.EUt(7)
event.recipes.gtceu.mixer("kubejs:blaze_cake_base")
.itemInputs("minecraft:egg", "minecraft:sugar", "create:cinder_flour")
.itemOutputs("create:blaze_cake_base")
.duration(200)
.EUt(7)
let milkFluid = new JSONObject()
milkFluid.add("amount", 250)
milkFluid.add("value", { tag: "forge:milk" })
event.recipes.gtceu.mixer("kubejs:liquid_chocolate")
.itemInputs("minecraft:sugar", "minecraft:cocoa_beans")
.inputFluids(FluidIngredientJS.of(milkFluid))
.outputFluids(Fluid.of("create:chocolate", 250))
.duration(200)
.EUt(7)
event.recipes.gtceu.mixer("kubejs:tea")
.itemInputs("#minecraft:leaves")
.inputFluids(Fluid.of("minecraft:water", 250), FluidIngredientJS.of(milkFluid))
.outputFluids(Fluid.of("create:tea", 500))
.duration(200)
.EUt(7)
event.recipes.gtceu.extractor("kubejs:extract_bar_of_chocolate")
.itemInputs("create:bar_of_chocolate")
.outputFluids(Fluid.of("create:chocolate", 250))
.duration(10)
.EUt(4)
event.recipes.gtceu.extractor("kubejs:extract_honey_block")
.itemInputs("minecraft:honey_block")
.outputFluids(Fluid.of("create:honey", 1000))
.duration(10)
.EUt(4)
// Sequenced assembly but awesome
event.recipes.gtceu.assembler("kubejs:precision_mechanism")
.itemInputs("#forge:plates/gold", "5x create:cogwheel", "5x create:large_cogwheel", "5x minecraft:iron_nugget")
.itemOutputs("create:precision_mechanism")
.duration(300)
.EUt(30)
.circuit(5)
// That was actually awesome
// adding mechanical crafter stuff
event.recipes.gtceu.assembler("kubejs:extendo_grip")
.itemInputs("create:precision_mechanism", "create:brass_hand", "6x minecraft:stick", "#forge:ingots/brass")
.itemOutputs("create:extendo_grip")
.duration(600)
.EUt(120)
event.recipes.gtceu.assembler("kubejs:potato_cannon")
.itemInputs("create:precision_mechanism", "create:andesite_alloy", "3x create:fluid_pipe", "2x #forge:ingots/copper")
.itemOutputs("create:potato_cannon")
.duration(600)
.EUt(120)
event.recipes.gtceu.assembler("kubejs:wand_of_symmetry")
.itemInputs("create:precision_mechanism", "minecraft:obsidian", "3x minecraft:glass", "#forge:ingots/brass", "minecraft:ender_pearl")
.itemOutputs("create:wand_of_symmetry")
.duration(600)
.EUt(120)
event.recipes.gtceu.autoclave("kubejs:rose_quartz")
.itemInputs("minecraft:quartz")
.itemOutputs("create:rose_quartz")
.inputFluids("gtceu:redstone 1152")
.duration(200)
.EUt(16)
.circuit(6)
event.recipes.gtceu.sifter("kubejs:polished_rose_quartz")
.itemInputs("create:rose_quartz")
.itemOutputs("create:polished_rose_quartz")
.duration(200)
.EUt(16)
// deploying recipes
let assembleCasing = function (input, casingName, logInput, casingModId) {
logInput = (logInput) ? logInput : "#minecraft:logs"
casingModId = (casingModId) ? casingModId : "create"
// recipes can use unstripped logs since gt has no way to strip wood
return event.recipes.gtceu.assembler(`kubejs:${casingName}`)
.itemInputs(input, logInput)
.itemOutputs(`${casingModId}:${casingName}`)
.duration(100)
.EUt(16)
}
assembleCasing("create:andesite_alloy", "andesite_casing")
assembleCasing("#forge:ingots/brass", "brass_casing")
assembleCasing("minecraft:copper_ingot", "copper_casing")
assembleCasing("#forge:plates/obsidian", "railway_casing", "create:brass_casing")
// Tracks
if (!Platform.isLoaded("railways")) {
// Only do this block if Steam and Rails is not loaded. Else, let the Steam and Rails KJS file handle the track recipes.
event.remove({ output: "create:track" })
event.shaped("create:track", [
" ",
"IHI",
"SSS"
], {
H: "#forge:tools/hammers",
I: "minecraft:iron_nugget",
S: "#create:sleepers"
})
event.recipes.gtceu.assembler("kubejs:createtracks")
.itemInputs("3x #create:sleepers", "2x minecraft:iron_nugget")
.itemOutputs("2x create:track")
.duration(5)
.EUt(16)
} else { console.log("Steam and Rails is present, letting its compat script handle the track recipes.") }
// stone variant rock crusher recipes
let rockCrushing = function (modName, itemName, EUt) {
return event.recipes.gtceu.rock_breaker(`kubejs:${itemName}`)
.notConsumable(`${modName}:${itemName}`)
.itemOutputs(`${modName}:${itemName}`)
.addDataString("fluidA", "minecraft:lava")
.addDataString("fluidB", "minecraft:water")
.duration(16)
.EUt(EUt)
.addCondition(RockBreakerCondition.INSTANCE)
}
rockCrushing("minecraft", "dripstone_block", 60)
rockCrushing("minecraft", "tuff", 60)
rockCrushing("minecraft", "calcite", 60)
rockCrushing("create", "asurine", 60)
rockCrushing("create", "crimsite", 60)
rockCrushing("create", "limestone", 60)
rockCrushing("create", "ochrum", 60)
rockCrushing("create", "scoria", 480)
rockCrushing("create", "scorchia", 480)
rockCrushing("create", "veridium", 60)
// stone variant reconstruction recipes
let owStone = [["minecraft", "stone"], ["create", "asurine"], ["create", "crimsite"], ["create", "limestone"], ["create", "ochrum"], ["create", "veridium"], ["minecraft", "stone"]]
let neStone = [["minecraft", "blackstone"], ["create", "scoria"], ["create", "scorchia"], ["minecraft", "blackstone"]]
for (let i = 0; i < owStone.length - 1; ++i) {
event.recipes.gtceu.atomic_reconstruction(`kubejs:stone_reconstruction/${owStone[i][1]}`)
.itemInputs(`${owStone[i][0]}:${owStone[i][1]}`)
.itemOutputs(`${owStone[i + 1][0]}:${owStone[i + 1][1]}`)
.duration(20)
.EUt(32)
}
for (let i = 0; i < neStone.length - 1; ++i) {
event.recipes.gtceu.atomic_reconstruction(`kubejs:stone_reconstruction/${neStone[i][1]}`)
.itemInputs(`${neStone[i][0]}:${neStone[i][1]}`)
.itemOutputs(`${neStone[i + 1][0]}:${neStone[i + 1][1]}`)
.duration(20)
.EUt(32)
}
// remove unused recipe types
event.remove({ type: "create:pressing" })
event.remove({ type: "create:compacting" })
event.remove({ type: "create:milling" })
event.remove({ type: "create:crushing" })
event.remove({ type: "create:mixing" })
// Deploying recipes are fine
// Remove sawing recipes. Mechanical saws can still be used for stonecutting and in world tree cutting
event.remove({ type: "create:cutting" })
// Packager and Logistics
event.shaped("create:packager", [
"S S",
"SCS",
"SLS"
], {
L: "#gtceu:circuits/lv",
C: "create:cardboard_block",
S: "gtceu:steel_plate"
}).id("create:crafting/logistics/packager")
event.shaped("create:stock_ticker", [
" G ",
" C ",
" L "
], {
L: "#gtceu:circuits/mv",
C: "create:stock_link",
G: "#forge:glass"
}).id("create:crafting/logistics/stock_ticker")
event.shapeless("2x create:factory_gauge ", ["create:stock_link", "create:precision_mechanism", "#gtceu:circuits/hv"]).id("create:crafting/logistics/factory_gauge")
// Pulp
event.shaped("2x create:pulp", [
" ",
"RRR",
" H "
], {
H: "#forge:tools/mortars",
R: "gtceu:plant_ball"
})
event.recipes.gtceu.mixer("kubejs:pulp_wood")
.itemInputs("gtceu:wood_dust")
.inputFluids("minecraft:water 100")
.itemOutputs("create:pulp")
.duration(100)
.EUt(16)
.circuit(1)
event.recipes.gtceu.compressor("kubejs:pulp_plant")
.itemInputs("gtceu:plant_ball")
.itemOutputs("create:pulp")
.duration(20)
.EUt(2)
event.smelting("create:cardboard", "create:pulp")
})
console.log("Create compat scripts successfully loaded!")
} else { console.log("Create was not found, skipping its compat scripts.") }

View file

@ -0,0 +1,270 @@
/**
* Recipe compat for the funni railways mod
*/
if (Platform.isLoaded("railways")) {
console.log("Create: Steam and Rails found, loading compat script...")
ServerEvents.tags("item", event => {
// normal rails
event.add("kubejs:create_tracks", "create:track");
event.add("kubejs:create_tracks", "railways:track_oak");
event.add("kubejs:create_tracks", "railways:track_birch");
event.add("kubejs:create_tracks", "railways:track_acacia");
event.add("kubejs:create_tracks", "railways:track_dark_oak");
event.add("kubejs:create_tracks", "railways:track_jungle");
event.add("kubejs:create_tracks", "railways:track_spruce");
event.add("kubejs:create_tracks", "railways:track_mangrove");
event.add("kubejs:create_tracks", "railways:track_warped");
event.add("kubejs:create_tracks", "railways:track_crimson");
event.add("kubejs:create_tracks", "railways:track_blackstone");
event.add("kubejs:create_tracks", "railways:track_ender");
event.add("kubejs:create_tracks", "railways:track_tieless");
event.add("kubejs:create_tracks", "railways:track_phantom");
event.add("kubejs:create_tracks", "railways:track_cherry");
event.add("kubejs:create_tracks", "railways:track_bamboo");
event.add("kubejs:create_tracks", "railways:track_stripped_bamboo");
event.add("kubejs:create_tracks", "railways:track_monorail");
// wide rails
event.add("kubejs:create_tracks", "railways:track_create_andesite_wide");
event.add("kubejs:create_tracks", "railways:track_acacia_wide");
event.add("kubejs:create_tracks", "railways:track_birch_wide");
event.add("kubejs:create_tracks", "railways:track_dark_oak_wide");
event.add("kubejs:create_tracks", "railways:track_jungle_wide");
event.add("kubejs:create_tracks", "railways:track_oak_wide");
event.add("kubejs:create_tracks", "railways:track_spruce_wide");
event.add("kubejs:create_tracks", "railways:track_mangrove_wide");
event.add("kubejs:create_tracks", "railways:track_warped_wide");
event.add("kubejs:create_tracks", "railways:track_crimson_wide");
event.add("kubejs:create_tracks", "railways:track_blackstone_wide");
event.add("kubejs:create_tracks", "railways:track_ender_wide");
event.add("kubejs:create_tracks", "railways:track_tieless_wide");
event.add("kubejs:create_tracks", "railways:track_cherry_wide");
event.add("kubejs:create_tracks", "railways:track_bamboo_wide");
event.add("kubejs:create_tracks", "railways:track_stripped_bamboo_wide");
// narrow rails
event.add("kubejs:create_tracks", "railways:track_create_andesite_narrow");
event.add("kubejs:create_tracks", "railways:track_acacia_narrow");
event.add("kubejs:create_tracks", "railways:track_birch_narrow");
event.add("kubejs:create_tracks", "railways:track_dark_oak_narrow");
event.add("kubejs:create_tracks", "railways:track_jungle_narrow");
event.add("kubejs:create_tracks", "railways:track_oak_narrow");
event.add("kubejs:create_tracks", "railways:track_spruce_narrow");
event.add("kubejs:create_tracks", "railways:track_mangrove_narrow");
event.add("kubejs:create_tracks", "railways:track_warped_narrow");
event.add("kubejs:create_tracks", "railways:track_crimson_narrow");
event.add("kubejs:create_tracks", "railways:track_blackstone_narrow");
event.add("kubejs:create_tracks", "railways:track_ender_narrow");
event.add("kubejs:create_tracks", "railways:track_tieless_narrow");
event.add("kubejs:create_tracks", "railways:track_cherry_narrow");
event.add("kubejs:create_tracks", "railways:track_bamboo_narrow");
event.add("kubejs:create_tracks", "railways:track_stripped_bamboo_narrow");
if (Platform.isLoaded("biomesoplenty")) { // fuck it, we BoP
// normal rails
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_dead");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_fir");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_hellbark");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_jacaranda");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_magic");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_mahogany");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_palm");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_redwood");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_umbran");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_willow");
// wide rails
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_dead_wide");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_fir_wide");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_hellbark_wide");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_jacaranda_wide");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_magic_wide");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_mahogany_wide");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_palm_wide");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_redwood_wide");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_umbran_wide");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_willow_wide");
// narrow rails
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_dead_narrow");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_fir_narrow");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_hellbark_narrow");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_jacaranda_narrow");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_magic_narrow");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_mahogany_narrow");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_palm_narrow");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_redwood_narrow");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_umbran_narrow");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_willow_narrow");
}
})
ServerEvents.recipes(event => {
event.remove({ output: "#kubejs:create_tracks" }) // KILL 'EM ALL! - demoman tf2
/**
* Creates a shaped crafting recipe and a Gregtech Assembler recipe, both to make normal-gauge tracks.
* @param {string} sleeperItem A ResourceLocation of the item representing the sleeper/tie of the track. Will typically be a slab.
* @param {string} outputItem A ResourceLocation of the normal-gauge track item to be output by the recipes.
* @param {string} railItem A ResourceLocation of the item used as the rails themselves. Typically an iron or gold nugget, to stay in line with base Create.
* @param {int} outputCount How many normal-gauge track items that will be outputted by the recipes. Is multiplied by two for the assembler recipe, to incentivise automation.
*/
let normalTrackRecipes = function (sleeperItem, outputItem, railItem, outputCount) {
event.shaped(`${outputCount}x ${outputItem}`, [
" ",
"IHI",
"SSS"
], {
H: "#forge:tools/hammers",
I: `${railItem}`,
S: `${sleeperItem}`
});
event.recipes.gtceu.assembler(`kubejs:${outputItem.replace(/^.*:/, "")}`)
.itemInputs(
`3x ${sleeperItem}`,
`2x ${railItem}`
)
.itemOutputs(`${outputCount * 2}x ${outputItem}`)
.duration(5)
.EUt(16); // Low Voltage
};
/**
* Creates a shaped crafting recipe and a Gregtech Assembler recipe, both to make wide-gauge tracks.
* @param {string} inputTrackItem A ResourceLocation of the track item used in the recipe, to be 'widened'.
* @param {string} sleeperItem A ResourceLocation of the item representing the sleeper/tie of the track. Will typically be a slab.
* @param {string} outputItem A ResourceLocation of the wide-gauge track item to be output by the recipes.
* @param {int} outputCount How many wide-gauge track items that will be outputted by the recipes. Is multiplied by two for the assembler recipe, to incentivise automation.
*/
let wideTrackRecipes = function (inputTrackItem, sleeperItem, outputItem, outputCount) {
event.shaped(`${outputCount}x ${outputItem}`, [
" ",
" H ",
"STS"
], {
H: "#forge:tools/hammers",
S: `${sleeperItem}`,
T: `${inputTrackItem}`
});
event.recipes.gtceu.assembler(`kubejs:${outputItem.replace(/^.*:/, "")}`)
.itemInputs(
`2x ${sleeperItem}`,
`1x ${inputTrackItem}`
)
.itemOutputs(`${outputCount * 2}x ${outputItem}`)
.duration(5)
.EUt(16); // Low Voltage
};
/**
* Creates a shaped crafting recipe and a Gregtech Cutter recipe, both to make narrow-gauge tracks.
* @param {string} inputTrackItem A ResourceLocation of the track item used in the recipe, to be narrowed.
* @param {string} outputItem A ResourceLocation of the narrow-gauge track item to be output by the recipes.
* @param {string} sleeperOutputItem A ResourceLocation of the item representing the sleeper/tie of the track, to be (sometimes) recovered from the Gregtech Cutter recipe. Will typically be a slab.
* @param {int} outputCount How many narrow-gauge track items that will be outputted by the recipes. Is multiplied by two for the assembler recipe, to incentivise automation.
*/
let narrowTrackRecipes = function (inputTrackItem, outputItem, sleeperOutputItem, outputCount) {
event.shaped(`${outputCount}x ${outputItem}`, [
" ",
" H ",
" T "
], {
H: "#forge:tools/saws",
T: `${inputTrackItem}`,
});
event.recipes.gtceu.cutter(`kubejs:${outputItem.replace(/^.*:/, "")}`)
.itemInputs(`${inputTrackItem}`)
.itemOutputs(`${outputCount}x ${outputItem}`)
.chancedOutput(`${sleeperOutputItem}`, 3000, 500) // 30% chance initially, increases by 5% for each voltage tier
.duration(5)
.EUt(16); // Low Voltage
};
// Normal-gauge tracks
normalTrackRecipes("#create:sleepers", "create:track", "minecraft:iron_nugget", 1);
normalTrackRecipes("minecraft:acacia_slab", "railways:track_acacia", "minecraft:iron_nugget", 1);
normalTrackRecipes("minecraft:birch_slab", "railways:track_birch", "minecraft:iron_nugget", 1);
normalTrackRecipes("minecraft:dark_oak_slab", "railways:track_dark_oak", "minecraft:iron_nugget", 1);
normalTrackRecipes("minecraft:jungle_slab", "railways:track_jungle", "minecraft:iron_nugget", 1);
normalTrackRecipes("minecraft:oak_slab", "railways:track_oak", "minecraft:iron_nugget", 1);
normalTrackRecipes("minecraft:spruce_slab", "railways:track_spruce", "minecraft:iron_nugget", 1);
normalTrackRecipes("minecraft:mangrove_slab", "railways:track_mangrove", "minecraft:iron_nugget", 1);
normalTrackRecipes("minecraft:warped_slab", "railways:track_warped", "minecraft:gold_nugget", 1);
normalTrackRecipes("minecraft:crimson_slab", "railways:track_crimson", "minecraft:gold_nugget", 1);
normalTrackRecipes("minecraft:blackstone_slab", "railways:track_blackstone", "minecraft:gold_nugget", 1);
normalTrackRecipes("minecraft:end_stone_brick_slab", "railways:track_ender", "gtceu:enderium_nugget" /* just for shits and giggles */, 1);
normalTrackRecipes("minecraft:glass_pane", "railways:track_tieless", "minecraft:iron_nugget", 1);
normalTrackRecipes("minecraft:phantom_membrane", "railways:track_phantom", "minecraft:iron_ingot", 16);
normalTrackRecipes("minecraft:cherry_slab", "railways:track_cherry", "minecraft:iron_nugget", 1);
normalTrackRecipes("minecraft:bamboo", "railways:track_bamboo", "minecraft:iron_nugget", 1);
normalTrackRecipes("minecraft:bamboo_slab", "railways:track_stripped_bamboo", "minecraft:iron_nugget", 1);
normalTrackRecipes("create:metal_bracket", "railways:track_monorail", "#forge:plates/iron", 6)
// Wide-gauge tracks
wideTrackRecipes("create:track", "#create:sleepers", "railways:track_create_andesite_wide", 1);
wideTrackRecipes("railways:track_acacia", "minecraft:acacia_slab", "railways:track_acacia_wide", 1);
wideTrackRecipes("railways:track_birch", "minecraft:birch_slab", "railways:track_birch_wide", 1);
wideTrackRecipes("railways:track_dark_oak", "minecraft:dark_oak_slab", "railways:track_dark_oak_wide", 1);
wideTrackRecipes("railways:track_jungle", "minecraft:jungle_slab", "railways:track_jungle_wide", 1);
wideTrackRecipes("railways:track_oak", "minecraft:oak_slab", "railways:track_oak_wide", 1);
wideTrackRecipes("railways:track_spruce", "minecraft:spruce_slab", "railways:track_spruce_wide", 1);
wideTrackRecipes("railways:track_mangrove", "minecraft:mangrove_slab", "railways:track_mangrove_wide", 1);
wideTrackRecipes("railways:track_warped", "minecraft:warped_slab", "railways:track_warped_wide", 1);
wideTrackRecipes("railways:track_crimson", "minecraft:crimson_slab", "railways:track_crimson_wide", 1);
wideTrackRecipes("railways:track_blackstone", "minecraft:blackstone_slab", "railways:track_blackstone_wide", 1);
wideTrackRecipes("railways:track_ender", "minecraft:end_stone_brick_slab", "railways:track_ender_wide", 1);
wideTrackRecipes("railways:track_tieless", "minecraft:glass_pane", "railways:track_tieless_wide", 1);
wideTrackRecipes("railways:track_cherry", "minecraft:cherry_slab", "railways:track_cherry_wide", 1);
wideTrackRecipes("railways:track_bamboo", "minecraft:bamboo", "railways:track_bamboo_wide", 1);
wideTrackRecipes("railways:track_stripped_bamboo", "minecraft:bamboo_slab", "railways:track_stripped_bamboo_wide", 1);
// Narrow-gauge tracks
narrowTrackRecipes("create:track", "railways:track_create_andesite_narrow", "minecraft:stone_slab", 1);
narrowTrackRecipes("railways:track_acacia", "railways:track_acacia_narrow", "minecraft:acacia_slab", 1);
narrowTrackRecipes("railways:track_birch", "railways:track_birch_narrow", "minecraft:birch_slab", 1);
narrowTrackRecipes("railways:track_dark_oak", "railways:track_dark_oak_narrow", "minecraft:dark_oak_slab", 1);
narrowTrackRecipes("railways:track_jungle", "railways:track_jungle_narrow", "minecraft:jungle_slab", 1);
narrowTrackRecipes("railways:track_oak", "railways:track_oak_narrow", "minecraft:oak_slab", 1);
narrowTrackRecipes("railways:track_spruce", "railways:track_spruce_narrow", "minecraft:spruce_slab", 1);
narrowTrackRecipes("railways:track_mangrove", "railways:track_mangrove_narrow", "minecraft:mangrove_slab", 1);
narrowTrackRecipes("railways:track_warped", "railways:track_warped_narrow", "minecraft:warped_slab", 1);
narrowTrackRecipes("railways:track_crimson", "railways:track_crimson_narrow", "minecraft:crimson_slab", 1);
narrowTrackRecipes("railways:track_blackstone", "railways:track_blackstone_narrow", "minecraft:blackstone_slab", 1);
narrowTrackRecipes("railways:track_ender", "railways:track_ender_narrow", "minecraft:end_stone_brick_slab", 1);
narrowTrackRecipes("railways:track_tieless", "railways:track_tieless_narrow", "minecraft:glass_pane", 1);
narrowTrackRecipes("railways:track_cherry", "railways:track_cherry_narrow", "minecraft:cherry_slab", 1);
narrowTrackRecipes("railways:track_bamboo", "railways:track_bamboo_narrow", "minecraft:bamboo", 1);
narrowTrackRecipes("railways:track_stripped_bamboo", "railways:track_stripped_bamboo_narrow", "minecraft:bamboo_slab", 1);
if (Platform.isLoaded("biomesoplenty")) { // fuck it, we BoP again
// Normal-gauge tracks
normalTrackRecipes("biomesoplenty:dead_slab", "railways:track_biomesoplenty_dead", "minecraft:iron_nugget", 1);
normalTrackRecipes("biomesoplenty:fir_slab", "railways:track_biomesoplenty_fir", "minecraft:iron_nugget", 1);
normalTrackRecipes("biomesoplenty:hellbark_slab", "railways:track_biomesoplenty_hellbark", "minecraft:iron_nugget", 1);
normalTrackRecipes("biomesoplenty:jacaranda_slab", "railways:track_biomesoplenty_jacaranda", "minecraft:iron_nugget", 1);
normalTrackRecipes("biomesoplenty:magic_slab", "railways:track_biomesoplenty_magic", "minecraft:iron_nugget", 1);
normalTrackRecipes("biomesoplenty:mahogany_slab", "railways:track_biomesoplenty_mahogany", "minecraft:iron_nugget", 1);
normalTrackRecipes("biomesoplenty:palm_slab", "railways:track_biomesoplenty_palm", "minecraft:iron_nugget", 1);
normalTrackRecipes("biomesoplenty:redwood_slab", "railways:track_biomesoplenty_redwood", "minecraft:iron_nugget", 1);
normalTrackRecipes("biomesoplenty:umbran_slab", "railways:track_biomesoplenty_umbran", "minecraft:iron_nugget", 1);
normalTrackRecipes("biomesoplenty:willow_slab", "railways:track_biomesoplenty_willow", "minecraft:iron_nugget", 1);
// Wide-gauge tracks
wideTrackRecipes("railways:track_biomesoplenty_dead", "biomesoplenty:dead_slab", "railways:track_biomesoplenty_dead_wide", 1);
wideTrackRecipes("railways:track_biomesoplenty_fir", "biomesoplenty:fir_slab", "railways:track_biomesoplenty_fir_wide", 1);
wideTrackRecipes("railways:track_biomesoplenty_hellbark", "biomesoplenty:hellbark_slab", "railways:track_biomesoplenty_hellbark_wide", 1);
wideTrackRecipes("railways:track_biomesoplenty_jacaranda", "biomesoplenty:jacaranda_slab", "railways:track_biomesoplenty_jacaranda_wide", 1);
wideTrackRecipes("railways:track_biomesoplenty_magic", "biomesoplenty:magic_slab", "railways:track_biomesoplenty_magic_wide", 1);
wideTrackRecipes("railways:track_biomesoplenty_mahogany", "biomesoplenty:mahogany_slab", "railways:track_biomesoplenty_mahogany_wide", 1);
wideTrackRecipes("railways:track_biomesoplenty_palm", "biomesoplenty:palm_slab", "railways:track_biomesoplenty_palm_wide", 1);
wideTrackRecipes("railways:track_biomesoplenty_redwood", "biomesoplenty:redwood_slab", "railways:track_biomesoplenty_redwood_wide", 1);
wideTrackRecipes("railways:track_biomesoplenty_umbran", "biomesoplenty:umbran_slab", "railways:track_biomesoplenty_umbran_wide", 1);
wideTrackRecipes("railways:track_biomesoplenty_willow", "biomesoplenty:willow_slab", "railways:track_biomesoplenty_willow_wide", 1);
// Narrow-gauge tracks
narrowTrackRecipes("railways:track_biomesoplenty_dead", "railways:track_biomesoplenty_dead_narrow", "biomesoplenty:dead_slab", 1);
narrowTrackRecipes("railways:track_biomesoplenty_fir", "railways:track_biomesoplenty_fir_narrow", "biomesoplenty:fir_slab", 1);
narrowTrackRecipes("railways:track_biomesoplenty_hellbark", "railways:track_biomesoplenty_hellbark_narrow", "biomesoplenty:hellbark_slab", 1);
narrowTrackRecipes("railways:track_biomesoplenty_jacaranda", "railways:track_biomesoplenty_jacaranda_narrow", "biomesoplenty:jacaranda_slab", 1);
narrowTrackRecipes("railways:track_biomesoplenty_magic", "railways:track_biomesoplenty_magic_narrow", "biomesoplenty:magic_slab", 1);
narrowTrackRecipes("railways:track_biomesoplenty_mahogany", "railways:track_biomesoplenty_mahogany_narrow", "biomesoplenty:mahogany_slab", 1);
narrowTrackRecipes("railways:track_biomesoplenty_palm", "railways:track_biomesoplenty_palm_narrow", "biomesoplenty:palm_slab", 1);
narrowTrackRecipes("railways:track_biomesoplenty_redwood", "railways:track_biomesoplenty_redwood_narrow", "biomesoplenty:redwood_slab", 1);
narrowTrackRecipes("railways:track_biomesoplenty_umbran", "railways:track_biomesoplenty_umbran_narrow", "biomesoplenty:umbran_slab", 1);
narrowTrackRecipes("railways:track_biomesoplenty_willow", "railways:track_biomesoplenty_willow_narrow", "biomesoplenty:willow_slab", 1);
}
});
console.log("Create: Steam and Rails compat script successfully loaded!")
} else { console.log("Create: Steam and Rails was not found, skipping its compat scripts.") }

View file

@ -0,0 +1,368 @@
/**
* Compat for the createdeco mod
*/
if (Platform.isLoaded("createdeco")) {
console.log("createdeco found and scripts loaded")
ServerEvents.recipes(event => {
function sheets(output, sheetsInput) {
event.shaped(`createdeco:${output}`, [
"H",
"I",
"I"
], {
H: "#forge:tools/hammers",
I: sheetsInput
})
event.recipes.gtceu.forge_hammer(`${output}_sheet`)
.itemInputs(`3x ${sheetsInput}`)
.itemOutputs(`2x createdeco:${output}`)
.duration(56)
.EUt(16)
event.recipes.gtceu.bender(`${output}_sheet`)
.itemInputs(sheetsInput)
.itemOutputs(`createdeco:${output}`)
.circuit(1)
.duration(56)
.EUt(24)
event.recipes.gtceu.extruder(`${output}_sheet`)
.itemInputs(sheetsInput)
.notConsumable("gtceu:plate_extruder_mold")
.itemOutputs(`createdeco:${output}`)
.duration(56)
.EUt(56)
}
sheets("industrial_iron_sheet", "createdeco:industrial_iron_ingot")
sheets("andesite_sheet", "create:andesite_alloy")
event.recipes.gtceu.cutter("industrial_iron_sheet")
.itemInputs("create:industrial_iron_block")
.itemOutputs("9x createdeco:industrial_iron_sheet")
.duration(448)
.EUt(30)
event.recipes.gtceu.cutter("andesite_sheet")
.itemInputs("create:andesite_alloy_block")
.itemOutputs("9x createdeco:andesite_sheet")
.duration(448)
.EUt(30)
function decor(sheet, ingot, bars, decorOutput, block) {
// Windows
event.remove({ output: `createdeco:${decorOutput}_window` })
event.shaped(`2x createdeco:${decorOutput}_window`, [
" I ",
"IGI"
], {
I: ingot,
G: "minecraft:glass"
})
// Overlay
event.remove({ output: `createdeco:${decorOutput}_bars_overlay` })
event.shaped(`8x createdeco:${decorOutput}_bars_overlay`, [
" H ",
"SSS",
"SSS"
], {
S: sheet,
H: "#forge:tools/hammers"
})
event.recipes.gtceu.assembler(`createdeco:${decorOutput}_bars_overlay`)
.itemInputs(`3x ${sheet}`)
.itemOutputs(`4x createdeco:${decorOutput}_bars_overlay`)
.circuit(3)
.duration(300)
.EUt(4)
// Mesh
event.remove({ output: `createdeco:${decorOutput}_mesh_fence` })
event.shaped(`8x createdeco:${decorOutput}_mesh_fence`, [
" H ",
"SsS",
"SsS"
], {
S: sheet,
s: "#forge:string",
H: "#forge:tools/hammers"
})
event.recipes.gtceu.assembler(`createdeco:${decorOutput}_mesh_fence`)
.itemInputs(`2x ${sheet}`)
.itemInputs("#forge:string")
.itemOutputs(`4x createdeco:${decorOutput}_mesh_fence`)
.circuit(32)
.duration(300)
.EUt(4)
// Catwalk
event.remove({ output: `createdeco:${decorOutput}_catwalk` })
event.shaped(`4x createdeco:${decorOutput}_catwalk`, [
"sSH",
"SBS",
"DSs"
], {
B: bars,
S: sheet,
s: "#forge:screws/iron",
H: "#forge:tools/hammers",
D: "#forge:tools/screwdrivers"
})
event.recipes.gtceu.assembler(`createdeco:${decorOutput}_catwalk`)
.itemInputs(`4x ${sheet}`)
.itemInputs(bars)
.itemOutputs(`4x createdeco:${decorOutput}_catwalk`)
.circuit(31)
.duration(300)
.EUt(4)
// Catwalk Stairs
event.remove({ output: `createdeco:${decorOutput}_catwalk_stairs` })
event.shaped(`2x createdeco:${decorOutput}_catwalk_stairs`, [
" H",
"DCs",
"sBC"
], {
B: bars,
C: `createdeco:${decorOutput}_catwalk`,
s: "#forge:screws/iron",
H: "#forge:tools/hammers",
D: "#forge:tools/screwdrivers"
})
event.recipes.gtceu.bender(`createdeco:${decorOutput}_catwalk_stairs`)
.itemInputs(`createdeco:${decorOutput}_catwalk`)
.itemOutputs(`createdeco:${decorOutput}_catwalk_stairs`)
.circuit(1)
.duration(240)
.EUt(24)
// Catwalk Railing
event.remove({ output: `createdeco:${decorOutput}_catwalk_railing` })
event.shaped(`4x createdeco:${decorOutput}_catwalk_railing`, [
"sDs",
"SSS",
"BHB"
], {
B: bars,
S: sheet,
s: "#forge:screws/iron",
H: "#forge:tools/hammers",
D: "#forge:tools/screwdrivers"
})
event.recipes.gtceu.assembler(`createdeco:${decorOutput}_catwalk_railing`)
.itemInputs(`2x ${bars}`)
.itemInputs(`2x ${sheet}`)
.itemOutputs(`4x createdeco:${decorOutput}_catwalk_railing`)
.circuit(30)
.duration(300)
.EUt(4)
// Support Wedges
event.remove({ output: `createdeco:${decorOutput}_support_wedge` })
event.shaped(`3x createdeco:${decorOutput}_support_wedge`, [
"SS",
"HS"
], {
S: sheet,
H: "#forge:tools/hammers"
})
event.recipes.gtceu.bender(`createdeco:${decorOutput}_support_wedge`)
.itemInputs(sheet)
.itemOutputs(`createdeco:${decorOutput}_support_wedge`)
.circuit(32)
.duration(240)
.EUt(24)
// Train Hull
event.remove({ output: `createdeco:${decorOutput}_hull` })
event.shaped(`createdeco:${decorOutput}_hull`, [
"HS ",
"SbS",
" SF"
], {
b: block,
S: sheet,
H: "#forge:tools/hammers",
F: "#forge:tools/files"
})
// Support
event.remove({ output: `createdeco:${decorOutput}_support` })
event.shaped(`4x createdeco:${decorOutput}_support`, [
"IBI",
"BHB",
"IBI"
], {
I: ingot,
B: bars,
H: "#forge:tools/hammers"
})
event.recipes.gtceu.assembler(`createdeco:${decorOutput}_support`)
.itemInputs(bars)
.itemInputs(ingot)
.itemOutputs(`2x createdeco:${decorOutput}_support`)
.circuit(32)
.duration(300)
.EUt(4)
// Lamps
event.remove({ output: `createdeco:yellow_${decorOutput}_lamp` })
event.remove({ output: `createdeco:red_${decorOutput}_lamp` })
event.remove({ output: `createdeco:green_${decorOutput}_lamp` })
event.remove({ output: `createdeco:blue_${decorOutput}_lamp` })
event.shaped(`createdeco:yellow_${decorOutput}_lamp`, [
" I ",
"WLD",
"sSs"
], {
I: ingot,
S: sheet,
s: "#forge:screws/iron",
W: "#forge:tools/wrenches",
D: "#forge:tools/screwdrivers",
L: "minecraft:torch"
})
event.recipes.gtceu.assembler(`createdeco:yellow_${decorOutput}_lamp`)
.itemInputs(`2x ${ingot}`)
.itemInputs("minecraft:torch")
.itemOutputs(`createdeco:yellow_${decorOutput}_lamp`)
.duration(300)
.EUt(7)
event.shaped(`createdeco:red_${decorOutput}_lamp`, [
" I ",
"WLD",
"sSs"
], {
I: ingot,
S: sheet,
s: "#forge:screws/iron",
W: "#forge:tools/wrenches",
D: "#forge:tools/screwdrivers",
L: "minecraft:redstone_torch"
})
event.recipes.gtceu.assembler(`createdeco:red_${decorOutput}_lamp`)
.itemInputs(`2x ${ingot}`)
.itemInputs("minecraft:redstone_torch")
.itemOutputs(`createdeco:red_${decorOutput}_lamp`)
.duration(300)
.EUt(7)
event.shaped(`createdeco:green_${decorOutput}_lamp`, [
" I ",
"WLD",
"sSs"
], {
I: ingot,
S: sheet,
s: "#forge:screws/iron",
W: "#forge:tools/wrenches",
D: "#forge:tools/screwdrivers",
L: "minecraft:glow_berries"
})
event.recipes.gtceu.assembler(`createdeco:green_${decorOutput}_lamp`)
.itemInputs(`2x ${ingot}`)
.itemInputs("minecraft:glow_berries")
.itemOutputs(`createdeco:green_${decorOutput}_lamp`)
.duration(300)
.EUt(7)
event.shaped(`createdeco:blue_${decorOutput}_lamp`, [
" I ",
"WLD",
"sSs"
], {
I: ingot,
S: sheet,
s: "#forge:screws/iron",
W: "#forge:tools/wrenches",
D: "#forge:tools/screwdrivers",
L: "minecraft:soul_torch"
})
event.recipes.gtceu.assembler(`createdeco:blue_${decorOutput}_lamp`)
.itemInputs(`2x ${ingot}`)
.itemInputs("minecraft:soul_torch")
.itemOutputs(`createdeco:blue_${decorOutput}_lamp`)
.duration(300)
.EUt(7)
// Sheetmetal
event.remove({ output: `createdeco:${decorOutput}_sheet_metal` })
event.shaped(`4x createdeco:${decorOutput}_sheet_metal`, [
" S ",
"SHS",
" S "
], {
S: sheet,
H: "#forge:tools/hammers",
})
event.recipes.gtceu.assembler(`createdeco:${decorOutput}_sheet_metal`)
.itemInputs(sheet)
.itemOutputs(`createdeco:${decorOutput}_sheet_metal`)
.circuit(1)
.duration(100)
.EUt(4)
}
decor("createdeco:andesite_sheet", "create:andesite_alloy", "createdeco:andesite_bars", "andesite", "#forge:storage_blocks/andesite_alloy")
decor("#forge:plates/copper", "#forge:ingots/copper", "createdeco:copper_bars", "copper", "#forge:storage_blocks/copper")
decor("#forge:plates/iron", "#forge:ingots/iron", "minecraft:iron_bars", "iron", "#forge:storage_blocks/iron")
decor("createdeco:industrial_iron_sheet", "createdeco:industrial_iron_ingot", "createdeco:industrial_iron_bars", "industrial_iron", "create:industrial_iron_block")
decor("#forge:plates/brass", "#forge:ingots/brass", "createdeco:brass_bars", "brass", "#forge:storage_blocks/brass")
decor("#forge:plates/zinc", "#forge:ingots/zinc", "createdeco:zinc_bars", "zinc", "#forge:storage_blocks/zinc")
function ironlessDecor(sheet, ingot, decorOutput) {
// Bars
event.remove({ output: `createdeco:${decorOutput}_bars` })
event.shaped(`8x createdeco:${decorOutput}_bars`, [
" H ",
"SSS",
"SSS"
], {
S: ingot,
H: "#forge:tools/hammers"
})
event.recipes.gtceu.assembler(`createdeco:${decorOutput}_bars`)
.itemInputs(`3x ${ingot}`)
.itemOutputs(`4x createdeco:${decorOutput}_bars`)
.circuit(3)
.duration(300)
.EUt(4)
// Trap Doors
event.recipes.gtceu.assembler(`createdeco:${decorOutput}_trapdoor`)
.itemInputs(`4x ${sheet}`)
.itemOutputs(`createdeco:${decorOutput}_trapdoor`)
.circuit(4)
.duration(100)
.EUt(16)
// Doors
event.recipes.gtceu.assembler(`createdeco:${decorOutput}_door`)
.itemInputs(`6x ${sheet}`)
.itemOutputs(`createdeco:${decorOutput}_door`)
.circuit(4)
.duration(100)
.EUt(16)
}
ironlessDecor("createdeco:andesite_sheet", "create:andesite_alloy", "andesite")
ironlessDecor("#forge:plates/copper", "#forge:ingots/copper", "copper")
ironlessDecor("createdeco:industrial_iron_sheet", "createdeco:industrial_iron_ingot", "industrial_iron")
ironlessDecor("#forge:plates/brass", "#forge:ingots/brass", "brass")
ironlessDecor("#forge:plates/zinc", "#forge:ingots/zinc", "zinc")
function bricks(forEach) {
event.recipes.gtceu.assembler(`createdeco:mossy_${forEach}_bricks`)
.itemInputs(`createdeco:${forEach}_bricks`)
.itemInputs("minecraft:vine")
.itemOutputs(`createdeco:mossy_${forEach}_bricks`)
.duration(40)
.EUt(1)
}
// Vanilla Mossy Bricks
event.recipes.gtceu.assembler("createdeco:mossy_red_bricks")
.itemInputs("minecraft:bricks")
.itemInputs("minecraft:vine")
.itemOutputs("createdeco:mossy_red_bricks")
.duration(40)
.EUt(1)
bricks("pearl")
bricks("dean")
bricks("blue")
bricks("dusk")
bricks("umber")
bricks("scarlet")
bricks("verdant")
})
}

View file

@ -0,0 +1,85 @@
/**
* Compat for the fluxnetworks mod
*/
if (Platform.isLoaded("fluxnetworks")) {
console.log("Flux Networks found, loading compat scripts...");
ServerEvents.recipes(event => {
event.replaceInput({ id: "fluxnetworks:fluxconfigurator" }, "minecraft:obsidian", "enderio:infinity_rod");
// Flux Dust
event.recipes.gtceu.chemical_bath("fluxnetworks:flux_dust")
.itemInputs("1x gtceu:obsidian_dust")
.inputFluids("gtceu:redstone 144")
.itemOutputs("fluxnetworks:flux_dust")
.duration(40)
.EUt(16)
// Flux Block
event.shaped("fluxnetworks:flux_block", [
"FFF",
"FFF",
"FFF"
], {
F: "fluxnetworks:flux_dust"
}).id("fluxnetworks:fluxblock")
event.shapeless("9x fluxnetworks:flux_dust", ["fluxnetworks:flux_block"]).id("fluxnetworks:fluxdust")
// Flux Core
event.remove({ id: "fluxnetworks:fluxcore" })
event.recipes.gtceu.assembler("fluxnetworks:fluxcore")
.itemOutputs("2x fluxnetworks:flux_core")
.itemInputs("1x minecraft:ender_eye", "4x enderio:reinforced_obsidian_block", "4x fluxnetworks:flux_dust", "1x gtceu:luv_sensor", "1x gtceu:luv_emitter", "4x laserio:energy_overclocker_card_tier_8")
.EUt(GTValues.VA[GTValues.LuV])
.duration(200)
// Flux Controller
event.shaped("fluxnetworks:flux_controller", [
"PCP",
"RWR",
"PBP"
], {
P: "gtceu:enriched_naquadah_plate",
C: "fluxnetworks:flux_core",
R: "gtceu:enriched_naquadah_rod",
W: "wirelesschargers:advanced_wireless_player_charger",
B: "fluxnetworks:flux_block"
}).id("fluxnetworks:fluxcontroller")
// Flux Plug & Point
event.shapeless("fluxnetworks:flux_plug", ["fluxnetworks:flux_core", "fluxnetworks:flux_block"]).id("fluxnetworks:fluxplug");
event.shapeless("fluxnetworks:flux_point", ["fluxnetworks:flux_core", "minecraft:redstone_block"]).id("fluxnetworks:fluxpoint");
// Flux Storages
event.shaped("fluxnetworks:basic_flux_storage", [
"RBR",
"GCG",
"RBR"
], {
R: "gtceu:enriched_naquadah_rod",
G: "#forge:glass_panes",
C: "enderio:advanced_capacitor_bank",
B: "fluxnetworks:flux_block"
}).id("fluxnetworks:basicfluxstorage")
event.shaped("fluxnetworks:herculean_flux_storage", [
"SSS",
"GCG",
"SSS"
], {
S: "fluxnetworks:basic_flux_storage",
G: "#forge:glass_panes",
C: "gtceu:zero_point_module",
}).id("fluxnetworks:herculeanfluxstorage")
event.shaped("fluxnetworks:gargantuan_flux_storage", [
"SSS",
"GCG",
"SSS"
], {
S: "fluxnetworks:herculean_flux_storage",
G: "#forge:glass_panes",
C: "gtceu:max_battery",
}).id("fluxnetworks:gargantuanfluxstorage")
})
}

View file

@ -0,0 +1,59 @@
/**
* Optional compat script for Modular Routers
*
* Midly gated behind LV circuits & alloys. Upgrades gated behind LV cutter.
* Energy tx gated behind LV Autoclave & MV alloy wires.
*/
if (Platform.isLoaded("modularrouters")) {
console.log("Modular Routers found, loading server compat scripts...")
ServerEvents.recipes(event => {
let replaceMultiple = function (which, arrRepl) {
arrRepl.forEach(
([from, to]) => event.replaceInput(which, from, to)
)
}
event.remove({ output: "modularrouters:modular_router" })
event.shaped("4x modularrouters:modular_router", [
"PBP",
"BCB",
"PBP"
], {
P: "gtceu:dark_steel_plate",
C: "#gtceu:circuits/lv",
B: "enderio:dark_steel_bars"
})
event.replaceInput(/modularrouters:(sender|puller)_module_2(_x4)?/, "minecraft:ender_pearl", "enderio:pulsating_crystal")
replaceMultiple("modularrouters:energy_output_module", [
["minecraft:gold_ingot", "gtceu:vibrant_alloy_single_wire"],
["#forge:storage_blocks/redstone", "kubejs:resonating_crystal"]
])
replaceMultiple("modularrouters:energy_upgrade", [
["minecraft:gold_ingot", "gtceu:conductive_alloy_double_wire"],
["#forge:storage_blocks/redstone", "kubejs:resonating_crystal"]
])
replaceMultiple("modularrouters:speed_upgrade", [
["minecraft:gold_ingot", "thermal:redstone_servo"],
["minecraft:gold_nugget", "gtceu:electrum_plate"]
])
replaceMultiple("modularrouters:blank_module", [
["minecraft:redstone", "#gtceu:circuits/ulv"],
["minecraft:gold_nugget", "gtceu:electrum_nugget"]
])
replaceMultiple("modularrouters:blank_upgrade", [
["minecraft:lapis_lazuli", "gtceu:lapis_plate"],
["minecraft:gold_nugget", "gtceu:electrum_nugget"]
])
replaceMultiple(/modularrouters:range_(up|down)_augment/, [
["#forge:rods/wooden", "gtceu:electrum_rod"],
["minecraft:quartz", "minecraft:ender_pearl"]
])
})
}

View file

@ -0,0 +1,171 @@
/**
* Optional compat script for Project Red: Transmission.
* Requires both the core and addon to be loaded to take effect.
*/
if (Platform.isLoaded("projectred_transmission")) {
console.log("Project Red: Transmission found, loading server compat scripts...")
ServerEvents.recipes(event => {
/* Remove uncessary recipes */
event.remove([
{ id: "projectred_core:red_iron_comp" },
{ id: "projectred_core:red_ingot" },
{ id: "projectred_core:electrotine_iron_comp" },
{ id: "projectred_core:electrotine_ingot" },
{ id: "projectred_core:sand_coal_comp" },
{ id: "projectred_core:boule" },
{ id: "projectred_core:silicon" },
{ id: "projectred_core:draw_plate" },
{ id: "projectred_core:screwdriver" },
{ id: "projectred_core:copper_coil" },
{ id: "projectred_core:iron_coil" },
{ id: "projectred_core:gold_coil" },
{ id: "projectred_core:motor" },
{ id: "projectred_core:woven_cloth" },
{ id: "projectred_core:sail" },
{ id: "projectred_core:electrotine_silicon_comp" },
{ id: "projectred_core:electrotine_silicon" },
{ id: "projectred_core:electrotine_generator" }
])
/* Remove Transmission power cable recipes */
event.remove({ id: "projectred_transmission:low_load_power_wire" })
event.remove({ id: "projectred_transmission:low_load_framed_power_wire" })
/* Circuit plates using GT cutter and saw */
event.remove({ id: "projectred_core:plate" })
event.shaped("2x projectred_core:plate", [
" S ",
" B ",
" "
], {
S: "#forge:tools/saws",
B: "minecraft:smooth_stone"
})
event.recipes.gtceu.cutter("projectred_circuit")
.itemInputs("minecraft:smooth_stone_slab")
.inputFluids(Fluid.of("minecraft:water", 40))
.itemOutputs("4x projectred_core:plate")
.duration(100)
.EUt(32)
event.recipes.gtceu.cutter("projectred_circuit_distilled")
.itemInputs("minecraft:smooth_stone_slab")
.inputFluids(Fluid.of("gtceu:distilled_water", 30))
.itemOutputs("4x projectred_core:plate")
.duration(100)
.EUt(32)
event.recipes.gtceu.cutter("projectred_circuit_lubricant")
.itemInputs("minecraft:smooth_stone_slab")
.inputFluids(Fluid.of("gtceu:lubricant", 10))
.itemOutputs("4x projectred_core:plate")
.duration(100)
.EUt(32)
/* Red Alloy Wire */
event.remove({ id: "projectred_transmission:red_alloy_wire" })
event.shaped("12x projectred_transmission:red_alloy_wire", [
" R ",
" R ",
" R "
], {
R: "gtceu:red_alloy_single_wire"
})
/* Insulated Red Alloy Wire */
const dyeColors = [
"white", "black", "purple", "red", "orange", "green", "lime",
"blue", "light_blue", "pink", "cyan", "magenta", "yellow", "gray", "light_gray", "brown"
];
dyeColors.forEach(color => {
event.remove({ id: `projectred_transmission:${color}_insulated_wire` });
});
event.shaped("projectred_transmission:black_insulated_wire", [
"WR ",
" "
], {
W: "projectred_transmission:red_alloy_wire",
R: "#forge:rubber_plates"
})
/* Bundled Wire using moar rubba' mate as a second unsulation mimicking multi-core cable instead of String */
event.remove({ id: "projectred_transmission:neutral_bundled_wire" })
event.shaped("projectred_transmission:neutral_bundled_wire", [
"SWS",
"WWW",
"SWS"
], {
W: "#projectred_transmission:insulated_wire",
S: "#forge:rubber_plates"
})
/* Insulated Wire & Bundled Wire using Assembly Machine */
event.recipes.gtceu.assembler("projectred_black_insulated_wire_rubber")
.itemInputs("1x projectred_transmission:red_alloy_wire")
.inputFluids(Fluid.of("gtceu:rubber", 144))
.itemOutputs("1x projectred_transmission:black_insulated_wire")
.duration(50)
.EUt(7)
event.recipes.gtceu.assembler("projectred_black_insulated_wire_styrene_rubber")
.itemInputs("1x projectred_transmission:red_alloy_wire")
.inputFluids(Fluid.of("gtceu:styrene_butadiene_rubber", 36))
.itemOutputs("1x projectred_transmission:black_insulated_wire")
.duration(50)
.EUt(7)
event.recipes.gtceu.assembler("projectred_black_insulated_wire_silicone_rubber")
.itemInputs("1x projectred_transmission:red_alloy_wire")
.inputFluids(Fluid.of("gtceu:silicone_rubber", 72))
.itemOutputs("1x projectred_transmission:black_insulated_wire")
.duration(50)
.EUt(7)
event.recipes.gtceu.assembler("projectred_bundled_wire_rubber")
.itemInputs("5x projectred_transmission:red_alloy_wire")
.inputFluids(Fluid.of("gtceu:rubber", 432))
.itemOutputs("1x projectred_transmission:neutral_bundled_wire")
.duration(50)
.EUt(7)
.circuit(9)
event.recipes.gtceu.assembler("projectred_bundled_wire_styrene_rubber")
.itemInputs("5x projectred_transmission:red_alloy_wire")
.inputFluids(Fluid.of("gtceu:styrene_butadiene_rubber", 144))
.itemOutputs("1x projectred_transmission:neutral_bundled_wire")
.duration(50)
.EUt(7)
.circuit(9)
event.recipes.gtceu.assembler("projectred_bundled_wire_silicone_rubber")
.itemInputs("5x projectred_transmission:red_alloy_wire")
.inputFluids(Fluid.of("gtceu:silicone_rubber", 288))
.itemOutputs("1x projectred_transmission:neutral_bundled_wire")
.duration(50)
.EUt(7)
.circuit(9)
/* Silicon compounds using GT silicon wafers */
event.remove({ id: "projectred_core:red_silicon_comp" })
event.shaped("projectred_core:red_silicon_comp", [
"SSS",
"SCS",
"SSS"
], {
C: "gtceu:silicon_wafer",
S: "minecraft:redstone"
})
event.remove({ id: "projectred_core:glow_silicon_comp" })
event.shaped("projectred_core:glow_silicon_comp", [
"SSS",
"SCS",
"SSS"
], {
C: "gtceu:silicon_wafer",
S: "minecraft:glowstone_dust"
})
})
}

View file

@ -0,0 +1,35 @@
/**
* Compat for the tempad mod
*/
if (Platform.isLoaded("tempad")) {
console.log("Tempad found, loading compat scripts...")
LootJS.modifiers((event) => {
event.addLootTableModifier("minecraft:chests/simple_dungeon")
.randomChance(0.02)
.addLoot("tempad:tempad");
})
ServerEvents.tags("item", event => {
event.add("tempad:tempad_fuel", "kubejs:moni_penny")
})
ServerEvents.recipes(event => {
event.shaped("tempad:tempad", [
"PFP",
"CNC",
"PSP"
], {
P: "gtceu:electrum_plate",
C: "#gtceu:circuits/mv",
F: "gtceu:mv_field_generator",
S: "gtceu:mv_sensor",
N: "waystones:warp_stone"
}).id("tempad:tempad")
event.recipes.gtceu.assembler("tempad:he_who_remains_tempad")
.itemInputs("tempad:tempad", "gtceu:lapotron_crystal", "4x #gtceu:circuits/ev", "16x kubejs:quantum_flux", "8x gtceu:tungsten_carbide_plate", "2x gtceu:signalum_plate")
.inputFluids(Fluid.of("gtceu:mana", 1000))
.itemOutputs("tempad:he_who_remains_tempad")
.duration(100)
.EUt(512)
})
console.log("Tempad compat scripts successfully loaded!")
} else { console.log("Tempad was not found, skipping its compat scripts.") }

View file

@ -0,0 +1,150 @@
/*
Gating synopsis:
Regular XNet stuff: Late LV
Advanced connectors: MV
Routing: HV
Wireless Routing: EV
Antenna Dish: IV
*/
if (Platform.isLoaded("xnet")) {
console.log("XNet found, loading compat scripts...")
ServerEvents.recipes(event => {
// Remove all recipes from RFToolsBase and XNet
event.remove({ mod: "rftoolsbase" })
event.remove({ mod: "xnet" })
// Add back in RFTools' information screen for the funsies
event.shapeless("rftoolsbase:information_screen", ["gtceu:computer_monitor_cover"]);
event.shapeless("gtceu:computer_monitor_cover", ["rftoolsbase:information_screen"]);
// Add back in RFTools' Filter Module because of its functionality with XNet
event.shaped("rftoolsbase:filter_module", [
" P ",
"RHR",
" I "
], {
P: "#forge:paper",
R: "#forge:dusts/redstone",
H: "minecraft:hopper",
I: "#forge:plates/steel"
})
// Basic Cables
let colors = ["red", "green", "blue", "yellow"];
colors.forEach((color) => {
event.recipes.gtceu.assembler(`xnet:netcable_${color}`)
.itemOutputs(`16x xnet:netcable_${color}`)
.itemInputs(["2x gtceu:fine_red_alloy_wire", "gtceu:fine_gold_wire", "gtceu:pulsating_alloy_single_wire", `#forge:dyes/${color}`, "2x gtceu:carbon_fiber_mesh"])
.EUt(GTValues.VHA[GTValues.LV])
.duration(100)
event.recipes.gtceu.assembler(`xnet:connector_${color}`)
.itemOutputs(`2x xnet:connector_${color}`)
.itemInputs([`xnet:netcable_${color}`, "ae2:formation_core", "ae2:annihilation_core", "2x #forge:plates/steel"])
.inputFluids(Fluid.of("gtceu:soldering_alloy", 72))
.EUt(GTValues.VHA[GTValues.LV])
.duration(120)
event.shapeless(`xnet:netcable_${color}`, [`#forge:dyes/${color}`, "8x #xnet:cables"])
})
// Advanced connectors
let advanced_connector_types = ["red", "green", "blue", "yellow", "routing"];
advanced_connector_types.forEach((type) => {
event.recipes.gtceu.assembler(`xnet:advanced_connector_${type}`)
.itemOutputs(`xnet:advanced_connector_${type}`)
.itemInputs([`xnet:connector_${type}`, "gtceu:diamond_plate", "gtceu:enori_gear"])
.inputFluids(Fluid.of("thermal:ender", 250))
.EUt(GTValues.VA[GTValues.MV])
.duration(120)
})
event.recipes.gtceu.assembler("xnet:connector_upgrade")
.itemOutputs("xnet:connector_upgrade")
.itemInputs(["#forge:paper", "gtceu:diamond_plate", "gtceu:enori_gear"])
.inputFluids(Fluid.of("thermal:ender", 250))
.EUt(GTValues.VA[GTValues.MV])
.duration(140)
// Routing
event.recipes.gtceu.assembler("xnet:netcable_routing")
.itemOutputs("16x xnet:netcable_routing")
.itemInputs(["2x gtceu:fine_red_alloy_wire", "gtceu:fine_gold_wire", "gtceu:fine_borosilicate_glass_wire", "gtceu:pulsating_alloy_single_wire", "2x gtceu:carbon_fiber_mesh"])
.EUt(GTValues.VHA[GTValues.HV])
.duration(100)
event.recipes.gtceu.assembler("xnet:connector_routing")
.itemOutputs("2x xnet:connector_routing")
.itemInputs(["xnet:netcable_routing", "ae2:formation_core", "ae2:annihilation_core", "2x #forge:plates/stainless_steel"])
.inputFluids(Fluid.of("gtceu:soldering_alloy", 72))
.EUt(GTValues.VHA[GTValues.HV])
.duration(120)
event.shaped("xnet:controller", [
"LML",
"CHC",
"PSP"
], {
L: "#gtceu:circuits/ulv",
M: "#gtceu:circuits/lv",
C: "#xnet:cables",
H: "gtceu:lv_machine_hull",
P: "#forge:plates/steel",
S: "gtceu:tin_single_cable"
})
event.shaped("16x xnet:facade", [
"PSP",
"SGS",
"PSP"
], {
P: "#forge:paper",
S: "#forge:plates/steel",
G: "#forge:glass"
})
event.shaped("xnet:router", [
"LML",
"CHC",
"PSP"
], {
L: "#gtceu:circuits/mv",
M: "#gtceu:circuits/hv",
C: "xnet:netcable_routing",
H: "gtceu:hv_machine_hull",
P: "#forge:plates/ender_pearl",
S: "gtceu:gold_single_cable"
})
event.shaped("xnet:wireless_router", [
"LML",
"CHC",
"PSP"
], {
L: "#gtceu:circuits/hv",
M: "#gtceu:circuits/ev",
C: "xnet:netcable_routing",
H: "gtceu:hv_machine_hull",
P: "#forge:plates/ender_pearl",
S: "gtceu:platinum_single_cable"
})
// Wireless Routing Antennas
event.recipes.gtceu.assembler("xnet:antenna")
.itemOutputs("xnet:antenna")
.itemInputs(["3x #forge:rods/iron", "2x minecraft:iron_bars", "gtceu:ev_emitter", "3x gtceu:fine_annealed_copper_wire"])
.EUt(GTValues.VA[GTValues.EV])
.duration(140)
event.recipes.gtceu.assembler("xnet:antenna_base")
.itemOutputs("xnet:antenna_base")
.itemInputs(["1x #forge:rods/iron", "2x #forge:plates/iron", "gtceu:ev_emitter", "2x gtceu:fine_annealed_copper_wire"])
.EUt(GTValues.VHA[GTValues.EV])
.duration(100)
event.recipes.gtceu.assembler("xnet:antenna_dish")
.itemOutputs("xnet:antenna_dish")
.itemInputs(["1x #forge:rods/iron", "gtceu:iv_sensor", "gtceu:iv_emitter", "2x #forge:plates/tungsten_steel", "2x gtceu:fine_annealed_copper_wire"])
.EUt(GTValues.VA[GTValues.IV])
.duration(240)
// Redstone Proxies
event.shapeless("2x xnet:redstone_proxy", ["gtceu:lv_machine_hull", "kubejs:resonating_crystal", "2x #forge:dusts/redstone", "#xnet:cables"])
event.shapeless("xnet:redstone_proxy_upd", ["xnet:redstone_proxy"])
event.shapeless("xnet:redstone_proxy", ["xnet:redstone_proxy_upd"])
})
}