init
This commit is contained in:
commit
a956daf8e2
2351 changed files with 163047 additions and 0 deletions
290
kubejs/server_scripts/mods/optionalCompats/create.js
Normal file
290
kubejs/server_scripts/mods/optionalCompats/create.js
Normal 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.") }
|
||||
Loading…
Add table
Add a link
Reference in a new issue