This commit is contained in:
Shiroyasha 2025-09-14 20:52:18 +03:00
commit d8d0e9d536
Signed by: shiroyashik
GPG key ID: E4953D3940D7860A
2567 changed files with 167778 additions and 0 deletions

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.") }