init
This commit is contained in:
commit
a956daf8e2
2351 changed files with 163047 additions and 0 deletions
281
kubejs/server_scripts/mods/Sophisticated_Storage.js
Normal file
281
kubejs/server_scripts/mods/Sophisticated_Storage.js
Normal file
|
|
@ -0,0 +1,281 @@
|
|||
/**
|
||||
* Configuration of Sophisticated Storage
|
||||
*/
|
||||
ServerEvents.recipes(event => {
|
||||
const modids = ["sophisticatedstorage", "sophisticatedbackpacks"]
|
||||
|
||||
// Remove default backpack recipe (Loot it!)
|
||||
event.remove({ output: "sophisticatedbackpacks:backpack" })
|
||||
|
||||
// Remove XP pump upgrades
|
||||
event.remove({ id: "sophisticatedstorage:xp_pump_upgrade" })
|
||||
event.remove({ id: "sophisticatedbackpacks:xp_pump_upgrade" })
|
||||
|
||||
// Remove Limited barrels
|
||||
event.remove({ id: /^sophisticatedstorage:.*limited.+barrel.+$/ })
|
||||
event.remove({ output: /^sophisticatedstorage:limited_barrel.+$/ })
|
||||
|
||||
// Remove Copper tier storage (not used)
|
||||
event.remove({ output: "sophisticatedstorage:copper_barrel" })
|
||||
event.remove({ output: "sophisticatedstorage:copper_chest" })
|
||||
event.remove({ output: "sophisticatedstorage:copper_shulker_box" })
|
||||
// Remove Copper tier upgrades
|
||||
event.remove({ output: /^sophisticatedstorage:.*copper.*tier_upgrade$/ })
|
||||
event.remove({ input: /^sophisticatedstorage:.*copper.*tier_upgrade$/ })
|
||||
|
||||
// Remove iron (bronze) tier storage in NM
|
||||
if (!doSteamAge) {
|
||||
event.remove({ output: "sophisticatedstorage:iron_barrel" })
|
||||
event.remove({ output: "sophisticatedstorage:iron_chest" })
|
||||
event.remove({ output: "sophisticatedstorage:iron_shulker_box" })
|
||||
event.remove({ output: /^sophisticatedstorage:.*iron.*tier_upgrade$/ })
|
||||
event.remove({ input: /^sophisticatedstorage:.*iron.*tier_upgrade$/ })
|
||||
}
|
||||
|
||||
// Standard backpack recipe if you don't want to loot it
|
||||
event.shaped("sophisticatedbackpacks:backpack", [
|
||||
" N ",
|
||||
"ICI",
|
||||
"N N"
|
||||
], {
|
||||
"N": "#forge:leather",
|
||||
"I": "minecraft:iron_ingot",
|
||||
"C": "#forge:chests/wooden"
|
||||
})
|
||||
|
||||
// Backpack upgrading
|
||||
const sophBackpacksMaterials = [
|
||||
["", null, null],
|
||||
["copper_", "bronze", "lead"],
|
||||
["iron_", "steel", "invar"],
|
||||
["gold_", "aluminium", "electrum"],
|
||||
["diamond_", "stainless_steel", "signalum"],
|
||||
["netherite_", "tungsten_steel", "enderium"]
|
||||
]
|
||||
sophBackpacksMaterials.forEach((material, index) => {
|
||||
if (index == 0) return;
|
||||
|
||||
// Works for upgrades as the recipe type implies, but doesn't work for making new backpacks from scratch
|
||||
let outputBackpack = `sophisticatedbackpacks:${material[0]}backpack`
|
||||
let inputBackpack = `sophisticatedbackpacks:${sophBackpacksMaterials[index - 1][0]}backpack`
|
||||
event.remove({ mod: "sophisticatedbackpacks", output: outputBackpack })
|
||||
event.custom({
|
||||
"type": "sophisticatedbackpacks:backpack_upgrade",
|
||||
"conditions": [
|
||||
{
|
||||
"type": "sophisticatedcore:item_enabled",
|
||||
"itemRegistryName": outputBackpack
|
||||
}
|
||||
],
|
||||
"pattern": [
|
||||
" N ",
|
||||
"ICI",
|
||||
"N N"
|
||||
],
|
||||
"key": {
|
||||
"N": {
|
||||
"tag": (`forge:nuggets/${material[1]}`)
|
||||
},
|
||||
"I": {
|
||||
"tag": (`forge:ingots/${material[2]}`),
|
||||
},
|
||||
"C": {
|
||||
"item": inputBackpack
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": outputBackpack
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
// Barrel, Chest, Shulker Box upgrading
|
||||
const sophStorageMaterials = [
|
||||
["", null, null],
|
||||
["iron_", "bronze", "lead"],
|
||||
["gold_", "steel", "tin"],
|
||||
["diamond_", "aluminium", "copper"],
|
||||
["netherite_", "stainless_steel", "gold"],
|
||||
]
|
||||
const sophStorageTypes = [
|
||||
["", "barrel"],
|
||||
["", "chest"],
|
||||
["", "shulker_box"]
|
||||
]
|
||||
|
||||
// Skip bronze tier storage in NM
|
||||
if (!doSteamAge) {
|
||||
sophStorageMaterials.splice(1, 1);
|
||||
}
|
||||
|
||||
sophStorageMaterials.forEach((material, toIndex) => {
|
||||
if (toIndex == 0) return;
|
||||
|
||||
// Tier upgrade items
|
||||
for (let fromIndex = 0; fromIndex < toIndex; fromIndex++) {
|
||||
let fromTierName = (fromIndex == 0 ? "basic_" : sophStorageMaterials[fromIndex][0]);
|
||||
let prevTierName = (toIndex - 1 == 0 ? "basic_" : sophStorageMaterials[toIndex - 1][0]);
|
||||
let toTierName = material[0];
|
||||
|
||||
event.shaped(`sophisticatedstorage:${fromTierName}to_${toTierName}tier_upgrade`, [
|
||||
"IPI",
|
||||
"ICI",
|
||||
"IPI"
|
||||
], {
|
||||
I: `#forge:ingots/${material[1]}`,
|
||||
P: `#forge:plates/${material[2]}`,
|
||||
C: (fromTierName == prevTierName ? "minecraft:redstone_torch" : `sophisticatedstorage:${fromTierName}to_${prevTierName}tier_upgrade`)
|
||||
}).id(`sophisticatedstorage:${fromTierName}to_${toTierName}tier_upgrade`)
|
||||
}
|
||||
|
||||
// Barrel-in-table upgrades
|
||||
sophStorageTypes.forEach(storageType => {
|
||||
// Works for upgrades as the recipe type implies, but doesn't work for making new barrels/chests/boxes from scratch
|
||||
let outputStorage = `sophisticatedstorage:${storageType[0]}${material[0]}${storageType[1]}`
|
||||
let inputStorage = `sophisticatedstorage:${storageType[0]}${sophStorageMaterials[toIndex - 1][0]}${storageType[1]}`
|
||||
event.remove({ mod: "sophisticatedstorage", output: outputStorage })
|
||||
event.custom({
|
||||
"type": "sophisticatedstorage:storage_tier_upgrade",
|
||||
"conditions": [
|
||||
{
|
||||
"type": "sophisticatedcore:item_enabled",
|
||||
"itemRegistryName": outputStorage
|
||||
}
|
||||
],
|
||||
"pattern": [
|
||||
"IPI",
|
||||
"ICI",
|
||||
"IPI"
|
||||
],
|
||||
"key": {
|
||||
"I": {
|
||||
"tag": (`forge:ingots/${material[1]}`)
|
||||
},
|
||||
"P": {
|
||||
"tag": (`forge:plates/${material[2]}`)
|
||||
},
|
||||
"C": {
|
||||
"item": inputStorage
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": outputStorage
|
||||
}
|
||||
});
|
||||
})
|
||||
})
|
||||
|
||||
event.remove({ output: "sophisticatedstorage:controller" })
|
||||
|
||||
event.replaceInput([
|
||||
{ id: "sophisticatedstorage:storage_io" },
|
||||
{ id: "sophisticatedstorage:storage_input" },
|
||||
{ id: "sophisticatedstorage:storage_output" }],
|
||||
"#forge:stone", "#forge:plates/steel")
|
||||
event.replaceInput([
|
||||
{ id: "sophisticatedstorage:storage_io" },
|
||||
{ id: "sophisticatedstorage:storage_input" },
|
||||
{ id: "sophisticatedstorage:storage_output" }],
|
||||
"minecraft:repeater", "#gtceu:circuits/lv")
|
||||
|
||||
event.shaped("sophisticatedstorage:controller", [
|
||||
"III",
|
||||
"CDC",
|
||||
"IEI"
|
||||
], {
|
||||
I: "#forge:plates/steel",
|
||||
C: "#gtceu:circuits/lv",
|
||||
D: "#sophisticatedstorage:base_tier_wooden_storage",
|
||||
E: "#forge:storage_blocks/diamond"
|
||||
})
|
||||
event.shaped("sophisticatedstorage:controller", [
|
||||
"III",
|
||||
"CDC",
|
||||
"IEI"
|
||||
], {
|
||||
I: "#forge:plates/steel",
|
||||
C: "#gtceu:circuits/lv",
|
||||
D: "#sophisticatedstorage:base_tier_wooden_storage",
|
||||
E: "#forge:storage_blocks/emerald"
|
||||
})
|
||||
|
||||
// Stack upgrades
|
||||
let stackupgrade = [
|
||||
["stack_upgrade_tier_1", "gtceu:energetic_alloy", "upgrade_base"],
|
||||
["stack_upgrade_tier_2", "gtceu:stainless_steel", "stack_upgrade_tier_1"],
|
||||
["stack_upgrade_tier_3", "gtceu:tungsten_steel", "stack_upgrade_tier_2"],
|
||||
["stack_upgrade_tier_4", "gtceu:osmiridium", "stack_upgrade_tier_3"]
|
||||
]
|
||||
event.remove({ output: "sophisticatedbackpacks:stack_upgrade_starter_tier" })
|
||||
event.remove({ output: "sophisticatedstorage:stack_upgrade_tier_1_plus" })
|
||||
|
||||
stackupgrade.forEach(material => {
|
||||
modids.forEach(mod => {
|
||||
event.remove({ output: `${mod}:${material[0]}` })
|
||||
event.shaped(`${mod}:${material[0]}`, [
|
||||
"III",
|
||||
"IUI",
|
||||
"BIB"
|
||||
], {
|
||||
I: `${material[1]}_plate`,
|
||||
B: `${material[1]}_gear`,
|
||||
U: `${mod}:${material[2]}`
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
event.remove({ output: "sophisticatedstorage:stack_upgrade_tier_5" })
|
||||
event.shaped("sophisticatedstorage:stack_upgrade_tier_5", [
|
||||
"III",
|
||||
"IUI",
|
||||
"BIB"
|
||||
], {
|
||||
I: "gtceu:naquadah_alloy_plate",
|
||||
B: "gtceu:naquadah_alloy_gear",
|
||||
U: "sophisticatedstorage:stack_upgrade_tier_4"
|
||||
}),
|
||||
|
||||
|
||||
// Upgrades
|
||||
event.remove({ output: "sophisticatedstorage:hopper_upgrade" })
|
||||
event.shaped("4x sophisticatedstorage:hopper_upgrade", [
|
||||
" H ",
|
||||
"IUI",
|
||||
"RRR"
|
||||
], {
|
||||
U: "sophisticatedstorage:upgrade_base",
|
||||
I: "minecraft:iron_ingot",
|
||||
H: "minecraft:hopper",
|
||||
R: "gtceu:red_alloy_plate"
|
||||
})
|
||||
|
||||
event.remove({ output: "sophisticatedstorage:advanced_hopper_upgrade" })
|
||||
event.shaped("sophisticatedstorage:advanced_hopper_upgrade", [
|
||||
" R ",
|
||||
"IUI",
|
||||
"RRR"
|
||||
], {
|
||||
U: "sophisticatedstorage:upgrade_base",
|
||||
I: "gtceu:lv_conveyor_module",
|
||||
R: "gtceu:steel_plate"
|
||||
})
|
||||
|
||||
// Compression upgrades are removed in EM like Compacting Drawers
|
||||
if (!doCompacting) {
|
||||
event.remove({ output: /^sophisticated.*(compacting|compression)_upgrade$/ })
|
||||
}
|
||||
|
||||
// Magnet upgrades
|
||||
modids.forEach(mod => {
|
||||
event.remove({ output: `${mod}:magnet_upgrade` })
|
||||
event.shaped(`${mod}:magnet_upgrade`, [
|
||||
"IAI",
|
||||
"IUI",
|
||||
"I I"
|
||||
], {
|
||||
U: `${mod}:pickup_upgrade`,
|
||||
I: "minecraft:iron_ingot",
|
||||
A: "enderio:vacuum_chest",
|
||||
})
|
||||
})
|
||||
})
|
||||
Loading…
Add table
Add a link
Reference in a new issue