shMonifactory/kubejs/server_scripts/mods/HostileNeuralNetworks.js
2025-09-14 20:52:18 +03:00

244 lines
8.5 KiB
JavaScript

/**
* ALL HNN-related stuff
*/
ServerEvents.recipes(event => {
if (doHNN) {
// remove dml iems
event.remove({ output: ["hostilenetworks:blank_data_model", "hostilenetworks:deep_learner", "hostilenetworks:loot_fabricator", "hostilenetworks:sim_chamber"] })
// Issue #84
event.recipes.gtceu.assembler("bones_to_skull")
.itemInputs("4x minecraft:bone")
.itemOutputs("minecraft:skeleton_skull")
.circuit(13)
.duration(20)
.EUt(16)
event.shaped("minecraft:wither_skeleton_skull", [
"AA ",
"AB ",
" "
], {
A: "minecraft:skeleton_skull",
B: "hostilenetworks:nether_prediction"
}).noMirror().noShrink()
event.shapeless("minecraft:feather", ["hostilenetworks:overworld_prediction", "minecraft:string"])
event.recipes.gtceu.compressor("calcium_to_bonemeal")
.itemInputs("2x gtceu:calcium_dust")
.itemOutputs("minecraft:bone_meal")
.duration(20)
.EUt(4)
event.shaped("hostilenetworks:blank_data_model", [
"BBA",
"DCA",
"BBA"
], {
A: "gtceu:fine_gold_wire",
B: "gtceu:electrical_steel_plate",
C: "#gtceu:circuits/lv",
D: "kubejs:pulsating_mesh"
})
event.shaped("kubejs:dark_steel_machine_hull", [
"AAA",
"ABA",
"AAA"
], {
A: "gtceu:dark_steel_plate",
B: "gtceu:lv_machine_hull"
})
event.recipes.gtceu.assembler("dark_steel_machine_hull")
.itemInputs("gtceu:lv_machine_hull", "8x #forge:plates/dark_steel")
.itemOutputs("kubejs:dark_steel_machine_hull")
.duration(50)
.EUt(16)
.circuit(6)
event.shaped("hostilenetworks:sim_chamber", [
"ACA",
"BDB",
"ABA"
], {
A: "kubejs:pulsating_mesh",
B: "#gtceu:circuits/lv",
C: "minecraft:glass_pane",
D: "kubejs:dark_steel_machine_hull"
})
event.shaped("hostilenetworks:loot_fabricator", [
"ACA",
"BDB",
"AHA"
], {
A: "gtceu:energetic_alloy_plate",
B: "#gtceu:circuits/mv",
C: "minecraft:glass_pane",
D: "kubejs:dark_steel_machine_hull",
H: "minecraft:hopper"
})
event.replaceInput({ id: "hostilenetworks:living_matter/nether_to_ender" }, "minecraft:end_stone", "minecraft:ender_pearl")
// PPC
event.remove({ output: "hostilenetworks:prediction_matrix" })
event.recipes.gtceu.alloy_smelter("pulsating_polymer_clay")
.itemInputs(["kubejs:pulsating_dust", "minecraft:clay"])
.itemOutputs("4x hostilenetworks:prediction_matrix")
.duration(240)
.EUt(7)
event.recipes.gtceu.electrolyzer("gt_quartz")
.itemInputs("4x minecraft:glass")
.itemOutputs("minecraft:quartz")
.duration(100)
.EUt(20)
event.recipes.gtceu.alloy_smelter("carbon_fiber_mesh_coal")
.itemInputs(["4x minecraft:string", "gtceu:coal_dust"])
.itemOutputs("gtceu:carbon_fiber_mesh")
.duration(100)
.EUt(16)
event.recipes.gtceu.alloy_smelter("carbon_fiber_mesh_carbon")
.itemInputs(["4x minecraft:string", "gtceu:carbon_dust"])
.itemOutputs("gtceu:carbon_fiber_mesh")
.duration(100)
.EUt(16)
event.recipes.gtceu.alloy_smelter("pulsating_mesh")
.itemInputs(["gtceu:carbon_fiber_mesh", "4x kubejs:pulsating_dust"])
.itemOutputs("kubejs:pulsating_mesh")
.duration(200)
.EUt(16)
// PPM (Autoclave)
event.recipes.gtceu.autoclave("pulsating_prediction_matrix_autoclave")
.itemInputs("8x kubejs:pulsating_dust")
.inputFluids(Fluid.of("gtceu:polybenzimidazole", 144))
.itemOutputs("64x hostilenetworks:prediction_matrix")
.duration(200)
.EUt(GTValues.VA[GTValues.IV])
// IMPOSSIBLE REALM DATA
let predictions = [
["overworld", 1],
["nether", 2],
["end", 4]
]
predictions.forEach(item => {
event.shaped(Item.of("kubejs:impossible_realm_data", item[1]), [
"ABA",
"BAB",
"ABA"
], {
A: `hostilenetworks:${item[0]}_prediction`,
B: "kubejs:solidified_experience"
})
})
event.recipes.gtceu.extractor("extract_quantum_flux")
.itemInputs("kubejs:impossible_realm_data")
.itemOutputs("kubejs:quantum_flux")
.duration(100)
.EUt(3000)
// LAIR DATA
let lairs = [
["deep_dark", "overworld", "deepslate"],
["wither_realm", "nether", "netherrack"],
["dragon_lair", "end", "endstone"]
]
lairs.forEach(item => {
event.shaped(`kubejs:${item[0]}_data`, [
"ABB",
"BBB",
"BBB"
], {
A: "kubejs:impossible_realm_data",
B: `hostilenetworks:${item[1]}_prediction`
})
event.recipes.gtceu.canner(`canning_${item[0]}_data`)
.itemInputs("1x kubejs:impossible_realm_data", `6x hostilenetworks:${item[1]}_prediction`)
.inputFluids(Fluid.of("enderio:xp_juice", 140))
.itemOutputs(`1x kubejs:${item[0]}_data`)
.duration(20)
.EUt(60)
event.recipes.gtceu.canner(`advanced_canning_${item[0]}_data`)
.itemInputs([`3x gtceu:small_${item[2]}_dust`, `8x hostilenetworks:${item[1]}_prediction`])
.inputFluids(Fluid.of("enderio:xp_juice", 500))
.itemOutputs(`2x kubejs:${item[0]}_data`)
.duration(20)
.EUt(960)
})
}
})
ItemEvents.rightClicked(event => {
if (event.item.id === "hostilenetworks:overworld_prediction") {
event.player.addXP(10)
event.item.count--
}
if (event.item.id === "hostilenetworks:nether_prediction") {
event.player.addXP(20)
event.item.count--
}
if (event.item.id === "hostilenetworks:end_prediction") {
event.player.addXP(25)
event.item.count--
}
})
// Crafting recipes for the models
ServerEvents.recipes(event => {
if (doHNN) {
let dataModelData = [
["blaze", "minecraft:blaze_powder", "nether", true],
["creeper", "minecraft:gunpowder", "overworld", true],
["ender_dragon", "kubejs:dragon_lair_data", "end", true],
["enderman", "minecraft:ender_pearl", "end", true],
["ghast", "minecraft:ghast_tear", "nether", true],
["guardian", "minecraft:prismarine_shard", "overworld", true],
["shulker", "minecraft:diamond", "end", true],
["skeleton", "minecraft:bone", "overworld", false],
["slime", "minecraft:slime_ball", "overworld", false],
["spider", "minecraft:spider_eye", "overworld", true],
["warden", "kubejs:deep_dark_data", "overworld", true],
["witch", "minecraft:glass_bottle", "overworld", true],
["wither", "minecraft:nether_star", "nether", false],
["wither_skeleton", "minecraft:wither_skeleton_skull", "nether", true],
["zombie", "minecraft:rotten_flesh", "overworld", false],
["thermal/thermal_elemental", ["kubejs:aerotheum_dust", "kubejs:cryotheum_dust", "kubejs:petrotheum_dust", "kubejs:pyrotheum_dust"], "overworld", true]
]
dataModelData.forEach(modeldata => {
// Is this hacky? Yes. Do i care? No.
let recipeIngredients = [
"hostilenetworks:blank_data_model",
modeldata[1]
]
if (modeldata[3]) {
recipeIngredients.push(`7x hostilenetworks:${modeldata[2]}_prediction`)
}
event.shapeless(
Item.of("hostilenetworks:data_model", JSON.stringify({
data_model: {
data: 6,
id: "hostilenetworks:" + modeldata[0],
}
})),
recipeIngredients
)
})
}
})