Added mod files
This commit is contained in:
4
overrides/kubejs/server_scripts/mods/_mods_readme.md
Normal file
4
overrides/kubejs/server_scripts/mods/_mods_readme.md
Normal file
@@ -0,0 +1,4 @@
|
||||
Mods Scripts for CABIN
|
||||
These are mods that are installed in the pack by default but aren't necessary for beating the modpack.
|
||||
Some people may want to remove a mod from here in favour of adding a mod from the compatability scripts or an entirely different mod.
|
||||
Be aware that some of the side content quests may not work after a mod is removed. The main quest line will remain in tact though.
|
||||
7
overrides/kubejs/server_scripts/mods/aquaculture.js
Normal file
7
overrides/kubejs/server_scripts/mods/aquaculture.js
Normal file
@@ -0,0 +1,7 @@
|
||||
if(Platform.isLoaded("aquaculture")) {
|
||||
unregistered_axes.push("aquaculture:neptunium_axe")
|
||||
|
||||
ServerEvents.recipes(event => {
|
||||
event.recipes.create.crushing([Item.of(Item.of("aquaculture:neptunium_ingot", 2)), Item.of(Item.of("aquaculture:neptunium_nugget", 5)).withChance(.5)], "aquaculture:neptunes_bounty").processingTime(500)
|
||||
})
|
||||
}
|
||||
18
overrides/kubejs/server_scripts/mods/balancedflight.js
Normal file
18
overrides/kubejs/server_scripts/mods/balancedflight.js
Normal file
@@ -0,0 +1,18 @@
|
||||
if(Platform.isLoaded("balancedflight")) {
|
||||
ServerEvents.recipes(event => {
|
||||
event.remove({ mod: "balancedflight" })
|
||||
event.recipes.create.sequenced_assembly([
|
||||
"balancedflight:flight_anchor",
|
||||
], "minecraft:beacon", [
|
||||
event.recipes.create.deploying("kubejs:incomplete_flight_anchor", ["kubejs:incomplete_flight_anchor", "kubejs:gold_machine"]),
|
||||
event.recipes.create.deploying("kubejs:incomplete_flight_anchor", ["kubejs:incomplete_flight_anchor", "kubejs:inductive_mechanism"]),
|
||||
event.recipes.create.deploying("kubejs:incomplete_flight_anchor", ["kubejs:incomplete_flight_anchor", "kubejs:inductive_mechanism"]),
|
||||
event.recipes.create.deploying("kubejs:incomplete_flight_anchor", ["kubejs:incomplete_flight_anchor", "create:shaft"]),
|
||||
event.recipes.create.deploying("kubejs:incomplete_flight_anchor", ["kubejs:incomplete_flight_anchor", Platform.isLoaded("magicfeather") ? "magicfeather:magicfeather" : "minecraft:elytra"]),
|
||||
]).loops(1)
|
||||
.transitionalItem("kubejs:incomplete_flight_anchor")
|
||||
.id("kubejs:compat/balancedflight/flight_anchor")
|
||||
|
||||
event.remove({output: "balancedflight:ascended_flight_ring"})
|
||||
})
|
||||
}
|
||||
139
overrides/kubejs/server_scripts/mods/biomesoplenty.js
Normal file
139
overrides/kubejs/server_scripts/mods/biomesoplenty.js
Normal file
@@ -0,0 +1,139 @@
|
||||
if(Platform.isLoaded("biomesoplenty")) {
|
||||
wood_types.push("biomesoplenty:fir")
|
||||
wood_types.push("biomesoplenty:pine")
|
||||
wood_types.push("biomesoplenty:maple")
|
||||
wood_types.push("biomesoplenty:redwood")
|
||||
wood_types.push("biomesoplenty:mahogany")
|
||||
wood_types.push("biomesoplenty:jacaranda")
|
||||
wood_types.push("biomesoplenty:palm")
|
||||
wood_types.push("biomesoplenty:willow")
|
||||
wood_types.push("biomesoplenty:dead")
|
||||
wood_types.push("biomesoplenty:magic")
|
||||
wood_types.push("biomesoplenty:umbran")
|
||||
wood_types.push("biomesoplenty:hellbark")
|
||||
wood_types.push("biomesoplenty:empyreal")
|
||||
|
||||
ServerEvents.tags("item", event => {
|
||||
// Has the block tag but not the item tag
|
||||
event.add("minecraft:flowers", "biomesoplenty:waterlily")
|
||||
|
||||
event.get("forge:vines").add("biomesoplenty:willow_vine").add("biomesoplenty:spanish_moss")
|
||||
|
||||
event.get("kubejs:strainer/sands").add("biomesoplenty:white_sand").add("biomesoplenty:orange_sand")
|
||||
})
|
||||
ServerEvents.recipes(event => {
|
||||
// Tree Extracting recipes for leaves that don't match their log names
|
||||
addTreeOutput(event, "minecraft:oak_log", "biomesoplenty:origin_leaves")
|
||||
addTreeOutput(event, "minecraft:oak_log", "biomesoplenty:flowering_oak_leaves")
|
||||
addTreeOutput(event, "minecraft:spruce_log", "biomesoplenty:cypress_leaves")
|
||||
addTreeOutput(event, "minecraft:birch_log", "biomesoplenty:rainbow_birch_leaves")
|
||||
addTreeOutput(event, "minecraft:cherry_log", "biomesoplenty:snowblossom_leaves")
|
||||
addTreeOutput(event, "biomesoplenty:maple_log", "biomesoplenty:yellow_maple_leaves")
|
||||
addTreeOutput(event, "biomesoplenty:maple_log", "biomesoplenty:orange_maple_leaves")
|
||||
addTreeOutput(event, "biomesoplenty:maple_log", "biomesoplenty:red_maple_leaves")
|
||||
|
||||
// kubejs throws a duplicate recipe error, we'd need to change how resin recipes are created to avoid that error
|
||||
// event.custom({
|
||||
// type: "thermal:tree_extractor",
|
||||
// trunk: {
|
||||
// Name: "biomesoplenty:magic_log",
|
||||
// Properties: {
|
||||
// axis: "y"
|
||||
// }
|
||||
// },
|
||||
// leaves: {
|
||||
// Name: "biomesoplenty:magic_leaves",
|
||||
// Properties: {
|
||||
// persistent: "false"
|
||||
// }
|
||||
// },
|
||||
// result: {
|
||||
// fluid: "create:potion",
|
||||
// amount: 25,
|
||||
// nbt: {
|
||||
// Bottle: 'REGULAR',
|
||||
// Potion: "minecraft:thick"
|
||||
// }
|
||||
// }
|
||||
// })//.id('kubejs:devices/tree_extractor/tree_extractor_magic')
|
||||
|
||||
// Wash sand into clay
|
||||
event.recipes.create.splashing([Item.of("minecraft:clay_ball", 1).withChance(0.25)], "biomesoplenty:black_sand")
|
||||
event.recipes.create.splashing([Item.of("minecraft:clay_ball", 1).withChance(0.25)], "biomesoplenty:white_sand")
|
||||
event.recipes.create.splashing([Item.of("minecraft:clay_ball", 1).withChance(0.25)], "biomesoplenty:orange_sand")
|
||||
// Flesh igeneous extruder recipe.
|
||||
event.custom({
|
||||
"type": "thermal:rock_gen",
|
||||
"adjacent": "biomesoplenty:blood",
|
||||
"result": { "item": "biomesoplenty:flesh"}
|
||||
})
|
||||
})
|
||||
|
||||
// Fix biome tags
|
||||
// onEvent("tags.worldgen.biome", event=>{
|
||||
// const BOP_OVERWORLD = [
|
||||
// "biomesoplenty:bamboo_grove",
|
||||
// "biomesoplenty:bayou",
|
||||
// "biomesoplenty:bog",
|
||||
// "biomesoplenty:boreal_forest",
|
||||
// "biomesoplenty:cherry_blossom_grove",
|
||||
// "biomesoplenty:clover_patch",
|
||||
// "biomesoplenty:cold_desert",
|
||||
// "biomesoplenty:coniferous_forest",
|
||||
// "biomesoplenty:crag",
|
||||
// "biomesoplenty:dead_forest",
|
||||
// "biomesoplenty:dryland",
|
||||
// "biomesoplenty:dune_beach",
|
||||
// "biomesoplenty:field",
|
||||
// "biomesoplenty:fir_clearing",
|
||||
// "biomesoplenty:floodplain",
|
||||
// "biomesoplenty:forested_field",
|
||||
// "biomesoplenty:fungal_jungle",
|
||||
// "biomesoplenty:glowing_grotto",
|
||||
// "biomesoplenty:grassland",
|
||||
// "biomesoplenty:highland",
|
||||
// "biomesoplenty:highland_moor",
|
||||
// "biomesoplenty:jade_cliffs",
|
||||
// "biomesoplenty:lavender_field",
|
||||
// "biomesoplenty:lavender_forest",
|
||||
// "biomesoplenty:lush_desert",
|
||||
// "biomesoplenty:lush_savanna",
|
||||
// "biomesoplenty:maple_woods",
|
||||
// "biomesoplenty:marsh",
|
||||
// "biomesoplenty:mediterranean_forest",
|
||||
// "biomesoplenty:muskeg",
|
||||
// "biomesoplenty:mystic_grove",
|
||||
// "biomesoplenty:old_growth_dead_forest",
|
||||
// "biomesoplenty:old_growth_woodland",
|
||||
// "biomesoplenty:ominous_woods",
|
||||
// "biomesoplenty:orchard",
|
||||
// "biomesoplenty:origin_valley",
|
||||
// "biomesoplenty:pasture",
|
||||
// "biomesoplenty:prairie",
|
||||
// "biomesoplenty:pumpkin_patch",
|
||||
// "biomesoplenty:rainbow_hills",
|
||||
// "biomesoplenty:rainforest",
|
||||
// "biomesoplenty:redwood_forest",
|
||||
// "biomesoplenty:rocky_rainforest",
|
||||
// "biomesoplenty:rocky_shrubland",
|
||||
// "biomesoplenty:scrubland",
|
||||
// "biomesoplenty:seasonal_forest",
|
||||
// "biomesoplenty:shrubland",
|
||||
// "biomesoplenty:snowy_coniferous_forest",
|
||||
// "biomesoplenty:snowy_fir_clearing",
|
||||
// "biomesoplenty:snowy_maple_woods",
|
||||
// "biomesoplenty:spider_nest",
|
||||
// "biomesoplenty:tropics",
|
||||
// "biomesoplenty:tundra",
|
||||
// "biomesoplenty:volcanic_plains",
|
||||
// "biomesoplenty:volcano",
|
||||
// "biomesoplenty:wasteland",
|
||||
// "biomesoplenty:wetland",
|
||||
// "biomesoplenty:wooded_scrubland",
|
||||
// "biomesoplenty:wooded_wasteland",
|
||||
// "biomesoplenty:woodland"
|
||||
// ]
|
||||
// event.get("forge:is_overworld").add(BOP_OVERWORLD)
|
||||
// event.get("ae2:has_meteorites").add(BOP_OVERWORLD)
|
||||
// })
|
||||
}
|
||||
20
overrides/kubejs/server_scripts/mods/computercraft.js
Normal file
20
overrides/kubejs/server_scripts/mods/computercraft.js
Normal file
@@ -0,0 +1,20 @@
|
||||
if (Platform.isLoaded("computercraft")) {
|
||||
ServerEvents.recipes(event => {
|
||||
event.replaceInput({ id: "computercraft:cable" }, "minecraft:redstone", "projectred_core:red_ingot")
|
||||
event.replaceInput({ id: "computercraft:wired_modem" }, "minecraft:redstone", "projectred_core:red_ingot")
|
||||
|
||||
event.remove({ id: "computercraft:turtle_advanced" })
|
||||
event.remove({ id: "computercraft:turtle_advanced_upgrade" })
|
||||
event.remove({ id: "computercraft:turtle_normal" })
|
||||
|
||||
leadMachine(event, "computercraft:computer_normal", "projectred_core:red_ingot")
|
||||
leadMachine(event, "computercraft:computer_advanced", "minecraft:netherite_scrap")
|
||||
leadMachine(event, "computercraft:disk_drive", "computercraft:disk")
|
||||
leadMachine(event, "computercraft:printer", "minecraft:paper")
|
||||
|
||||
createMachine("computercraft:computer_normal", event, "computercraft:turtle_normal", "thermal:invar_gear")
|
||||
createMachine("computercraft:computer_advanced", event, "computercraft:turtle_advanced", "thermal:invar_gear")
|
||||
createMachine("computercraft:computer_normal", event, "computercraft:monitor_normal", "minecraft:glass_pane")
|
||||
createMachine("computercraft:computer_advanced", event, "computercraft:monitor_advanced", "minecraft:glass_pane")
|
||||
})
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
if(Platform.isLoaded("create_central_kitchen")) {
|
||||
ServerEvents.recipes(event => {
|
||||
// fix cooking guide recipe since sturdy sheets are removed in CABIN
|
||||
event.remove({ id: "create_central_kitchen:crafting/cooking_guide" })
|
||||
event.shapeless("create_central_kitchen:cooking_guide", ["create:schedule", "farmersdelight:canvas"])
|
||||
|
||||
// Some sequenced assembly recipes don't exist for some reason
|
||||
let transitional = "create_central_kitchen:incomplete_mutton_wrap"
|
||||
event.recipes.create.sequenced_assembly([
|
||||
"farmersdelight:mutton_wrap",
|
||||
], "#forge:bread", [
|
||||
event.recipes.create.deploying(transitional, [transitional, "#forge:cooked_mutton"]),
|
||||
event.recipes.create.deploying(transitional, [transitional, "#forge:crops/cabbage"]),
|
||||
event.recipes.create.deploying(transitional, [transitional, "#forge:crops/onion"])
|
||||
]).transitionalItem(transitional)
|
||||
.loops(1)
|
||||
.id("kubejs:mutton_wrap")
|
||||
|
||||
transitional = "create_central_kitchen:incomplete_hamburger"
|
||||
event.recipes.create.sequenced_assembly([
|
||||
"farmersdelight:hamburger",
|
||||
], "#forge:bread", [
|
||||
event.recipes.create.deploying(transitional, [transitional, "farmersdelight:beef_patty"]),
|
||||
event.recipes.create.deploying(transitional, [transitional, "#forge:crops/cabbage"]),
|
||||
event.recipes.create.deploying(transitional, [transitional, "#forge:crops/tomato"]),
|
||||
event.recipes.create.deploying(transitional, [transitional, "#forge:crops/onion"])
|
||||
]).transitionalItem(transitional)
|
||||
.loops(1)
|
||||
.id("kubejs:hamburger")
|
||||
|
||||
event.remove({ mod: "create_central_kitchen", output: "create:dough" })
|
||||
|
||||
})
|
||||
|
||||
ServerEvents.tags("item", event => {
|
||||
// Create central kitchen somes ends up removing automatic shapeless recipes while providing no alternatives.
|
||||
// This is mainly an issue with bowl recipes
|
||||
event.get("create:ignored_in_automatic_shapeless")
|
||||
.remove("minecraft:bowl")
|
||||
})
|
||||
}
|
||||
62
overrides/kubejs/server_scripts/mods/create_crystal_clear.js
Normal file
62
overrides/kubejs/server_scripts/mods/create_crystal_clear.js
Normal file
@@ -0,0 +1,62 @@
|
||||
if (Platform.isLoaded("create_crystal_clear")) {
|
||||
ServerEvents.recipes(event => {
|
||||
let tweak_glass_casing = (name) => {
|
||||
// event.remove({ output: ("create_crystal_clear:" + name + "_glass_casing") })
|
||||
event.remove({ id: (`create_crystal_clear:${name}_clear_glass_casing`) })
|
||||
event.custom({
|
||||
type: "create:item_application",
|
||||
ingredients: [
|
||||
{ item: `create_crystal_clear:${name}_casing` },
|
||||
{ item: "tconstruct:clear_glass" }
|
||||
],
|
||||
results: [
|
||||
{ item: `create_crystal_clear:${name}_clear_glass_casing` }
|
||||
]
|
||||
}).id(`kubejs:mods/create_crystal_clear/item_application/${name}_clear_glass_casing`)
|
||||
event.shapeless(`create_crystal_clear:${name}_glass_casing`, [`create:${name}_casing`, "minecraft:glass"]).id("kubejs:mods/create_crystal_clear/" + name + "_glass_casing")
|
||||
event.shapeless(`create_crystal_clear:${name}_clear_glass_casing`, [`create:${name}_casing`, "tconstruct:clear_glass"]).id("kubejs:mods/create_crystal_clear/" + name + "_clear_glass_casing")
|
||||
}
|
||||
|
||||
tweak_glass_casing("andesite")
|
||||
tweak_glass_casing("copper")
|
||||
tweak_glass_casing("brass")
|
||||
|
||||
event.remove({ id: ("create_crystal_clear:train_clear_glass_casing") })
|
||||
event.custom({
|
||||
type: "create:item_application",
|
||||
ingredients: [
|
||||
{ item: "create:railway_casing" },
|
||||
{ item: "tconstruct:clear_glass" }
|
||||
],
|
||||
results: [
|
||||
{ item: "create_crystal_clear:train_clear_glass_casing" }
|
||||
]
|
||||
}).id("kubejs:mods/create_crystal_clear/item_application/train_clear_glass_casing")
|
||||
event.shapeless("create_crystal_clear:train_glass_casing", ["create:railway_casing", "minecraft:glass"]).id("kubejs:mods/create_crystal_clear/train_glass_casing")
|
||||
event.shapeless("create_crystal_clear:train_clear_glass_casing", ["create:railway_casing", "tconstruct:clear_glass"]).id("kubejs:mods/create_crystal_clear/train_clear_glass_casing")
|
||||
})
|
||||
|
||||
ServerEvents.blockLootTables(event => {
|
||||
// Fix broken loot tables
|
||||
let cogwheelDrop = {
|
||||
type: "minecraft:block",
|
||||
pools: [
|
||||
{
|
||||
rolls: 1,
|
||||
entries: [
|
||||
{
|
||||
type: "minecraft:item",
|
||||
conditions: [{ condition: "minecraft:survives_explosion" }],
|
||||
name: "create:large_cogwheel"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
let cogwheelCasings = ["andesite", "brass", "train"]
|
||||
cogwheelCasings.forEach(casing=>{
|
||||
event.addJson(`create_crystal_clear:${casing}_glass_encased_large_cogwheel`, cogwheelDrop)
|
||||
event.addJson(`create_crystal_clear:${casing}_clear_glass_encased_large_cogwheel`, cogwheelDrop)
|
||||
})
|
||||
})
|
||||
}
|
||||
23
overrides/kubejs/server_scripts/mods/curios.js
Normal file
23
overrides/kubejs/server_scripts/mods/curios.js
Normal file
@@ -0,0 +1,23 @@
|
||||
if (Platform.isLoaded("curios")) {
|
||||
ServerEvents.lowPriorityData(event=>{
|
||||
event.addJson("kubejs:curios/slots/goggles", {
|
||||
"order": 20,
|
||||
"size": 1,
|
||||
"icon": "cabin:slot/empty_goggles_slot",
|
||||
"dropRule": "ALWAYS_KEEP"
|
||||
})
|
||||
event.addJson("kubejs:curios/entities/player", {
|
||||
"entities": ["player"],
|
||||
"slots": ["goggles"]
|
||||
})
|
||||
|
||||
event.addJson("kubejs:curios/slots/head", {
|
||||
"size": 0
|
||||
})
|
||||
})
|
||||
|
||||
ServerEvents.tags("item", event=>{
|
||||
event.add("curios:goggles", "create:goggles")
|
||||
event.remove("curios:head", "create:goggles")
|
||||
})
|
||||
}
|
||||
22
overrides/kubejs/server_scripts/mods/dungeoncrawl.js
Normal file
22
overrides/kubejs/server_scripts/mods/dungeoncrawl.js
Normal file
@@ -0,0 +1,22 @@
|
||||
if (Platform.isLoaded("dungeoncrawl")) {
|
||||
ServerEvents.lowPriorityData(event => {
|
||||
event.addJson("dungeoncrawl:worldgen/structure_set/dungeons", {
|
||||
"structures": [
|
||||
{
|
||||
"structure": "dungeoncrawl:dungeon",
|
||||
"weight": 1
|
||||
}
|
||||
],
|
||||
"placement": {
|
||||
"type": "integrated_api:advanced_random_spread",
|
||||
"super_exclusion_zone": {
|
||||
"chunk_count": 12,
|
||||
"other_set": "#cabin:dungeon_crawl_avoid"
|
||||
},
|
||||
"salt": 10387313,
|
||||
"spacing": 32,
|
||||
"separation": 12
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
87
overrides/kubejs/server_scripts/mods/functionalstorage.js
Normal file
87
overrides/kubejs/server_scripts/mods/functionalstorage.js
Normal file
@@ -0,0 +1,87 @@
|
||||
if(Platform.isLoaded("functionalstorage")) {
|
||||
ServerEvents.recipes(event => {
|
||||
zincMachine(event, Item.of("functionalstorage:storage_controller", 1), "minecraft:diamond")
|
||||
zincMachine(event, Item.of("functionalstorage:controller_extension", 1), "minecraft:gold_ingot")
|
||||
zincMachine(event, Item.of("functionalstorage:simple_compacting_drawer", 1), "create:mechanical_piston")
|
||||
zincMachine(event, Item.of("functionalstorage:compacting_drawer", 1), "create:sticky_mechanical_piston")
|
||||
enderiumMachine(event, Item.of("functionalstorage:fluid_1", 4))
|
||||
enderiumMachine(event, Item.of("functionalstorage:fluid_2", 4))
|
||||
enderiumMachine(event, Item.of("functionalstorage:fluid_4", 4))
|
||||
enderiumMachine(event, Item.of("functionalstorage:ender_drawer", 1))
|
||||
|
||||
event.remove({id:"functionalstorage:oak_drawer_alternate_x1"})
|
||||
event.remove({id:"functionalstorage:oak_drawer_alternate_x2"})
|
||||
event.remove({id:"functionalstorage:oak_drawer_alternate_x4"})
|
||||
// framed drawers
|
||||
event.remove({id:"functionalstorage:compacting_framed_drawer"})
|
||||
event.remove({id:"functionalstorage:framed_storage_controller"})
|
||||
event.remove({id:"functionalstorage:framed_controller_extension"})
|
||||
event.remove({id:"functionalstorage:framed_simple_compacting_drawer"})
|
||||
let pattern = ["III","IDI","III"]
|
||||
event.shaped(Item.of("functionalstorage:compacting_framed_drawer", 1), pattern,
|
||||
{I:"#forge:nuggets/iron", D:"functionalstorage:compacting_drawer"})
|
||||
event.shaped(Item.of("functionalstorage:framed_storage_controller", 1), pattern,
|
||||
{I:"#forge:nuggets/iron", D:"functionalstorage:storage_controller"})
|
||||
event.shaped(Item.of("functionalstorage:framed_controller_extension", 1), pattern,
|
||||
{I:"#forge:nuggets/iron", D:"functionalstorage:controller_extension"})
|
||||
event.shaped(Item.of("functionalstorage:framed_simple_compacting_drawer", 1), pattern,
|
||||
{I:"#forge:nuggets/iron", D:"functionalstorage:simple_compacting_drawer"})
|
||||
|
||||
event.remove({ id: "functionalstorage:copper_upgrade" })
|
||||
event.remove({ id: "functionalstorage:gold_upgrade" })
|
||||
event.remove({ id: "functionalstorage:diamond_upgrade" })
|
||||
event.remove({ id: "functionalstorage:netherite_upgrade" })
|
||||
|
||||
let upgradePattern = ["IBI", "CDC", "IBI"]
|
||||
|
||||
event.shaped(Item.of("functionalstorage:copper_upgrade", 2), upgradePattern, {
|
||||
B: "#forge:storage_blocks/andesite_alloy",
|
||||
C: "#forge:chests/wooden",
|
||||
D: "#functionalstorage:drawer",
|
||||
I: "#forge:ingots/zinc"
|
||||
})
|
||||
|
||||
event.shaped(Item.of("functionalstorage:gold_upgrade", 2), upgradePattern, {
|
||||
B: "functionalstorage:copper_upgrade",
|
||||
C: "#forge:chests/wooden",
|
||||
D: "#functionalstorage:drawer",
|
||||
I: "#forge:ingots/amethyst_bronze"
|
||||
})
|
||||
|
||||
event.shaped(Item.of("functionalstorage:diamond_upgrade", 2), upgradePattern, {
|
||||
B: "functionalstorage:gold_upgrade",
|
||||
C: "#forge:chests/wooden",
|
||||
D: "#functionalstorage:drawer",
|
||||
I: "#forge:ingots/lumium"
|
||||
})
|
||||
|
||||
event.shaped(Item.of("functionalstorage:netherite_upgrade", 2), upgradePattern, {
|
||||
B: "functionalstorage:diamond_upgrade",
|
||||
C: "#forge:chests/wooden",
|
||||
D: "#functionalstorage:drawer",
|
||||
I: "#forge:ingots/hepatizon"
|
||||
})
|
||||
|
||||
event.remove({ id:"functionalstorage:iron_downgrade" })
|
||||
donutCraft(event, Item.of("functionalstorage:iron_downgrade", 4), "#functionalstorage:drawer", "#forge:ingots/iron")
|
||||
|
||||
event.remove({ id:"functionalstorage:redstone_upgrade"})
|
||||
event.shaped(Item.of("functionalstorage:redstone_upgrade", 4), [
|
||||
"IBI",
|
||||
"CDC",
|
||||
"IBI"
|
||||
], {
|
||||
B: "minecraft:redstone_block",
|
||||
C: "minecraft:comparator",
|
||||
D: "#functionalstorage:drawer",
|
||||
I: "minecraft:redstone"
|
||||
})
|
||||
event.remove({ id:"functionalstorage:void_upgrade"})
|
||||
donutCraft(event, Item.of("functionalstorage:void_upgrade", 4), "#functionalstorage:drawer", "minecraft:obsidian")
|
||||
})
|
||||
|
||||
ServerEvents.tags("block", event => {
|
||||
event.add("create:wrench_pickup", /functionalstorage/)
|
||||
event.add("create:wrench_pickup", /everycomp:fs\//)
|
||||
})
|
||||
}
|
||||
24
overrides/kubejs/server_scripts/mods/moreminecarts.js
Normal file
24
overrides/kubejs/server_scripts/mods/moreminecarts.js
Normal file
@@ -0,0 +1,24 @@
|
||||
if(Platform.isLoaded("moreminecarts")) {
|
||||
ServerEvents.tags("block", event => {
|
||||
// None of the blocks from this mod have tags for some reason
|
||||
event.get("minecraft:mineable/pickaxe")
|
||||
.add("moreminecarts:silica_steel_block")
|
||||
.add("moreminecarts:chunkrodite_block")
|
||||
.add("moreminecarts:corrugated_silica_steel")
|
||||
.add("moreminecarts:silica_steel_pillar")
|
||||
.add("moreminecarts:organic_glass")
|
||||
.add("moreminecarts:organic_glass_pane")
|
||||
.add("moreminecarts:chiseled_organic_glass")
|
||||
.add("moreminecarts:chiseled_organic_glass_pane")
|
||||
.add("moreminecarts:holo_scaffold_generator")
|
||||
.add("moreminecarts:chunk_loader")
|
||||
.add("moreminecarts:minecart_loader")
|
||||
.add("moreminecarts:minecart_unloader")
|
||||
.add("moreminecarts:filter_unloader")
|
||||
.add("moreminecarts:pearl_stasis_chamber")
|
||||
})
|
||||
LootJS.modifiers((event) => {
|
||||
event.addBlockLootModifier("moreminecarts:filter_unloader")
|
||||
.addLoot("moreminecarts:filter_unloader")
|
||||
})
|
||||
}
|
||||
80
overrides/kubejs/server_scripts/mods/prettypipes.js
Normal file
80
overrides/kubejs/server_scripts/mods/prettypipes.js
Normal file
@@ -0,0 +1,80 @@
|
||||
if (Platform.isLoaded("prettypipes")) {
|
||||
ServerEvents.recipes(event => {
|
||||
// There are so few recipes that we want to keep that we're better off removing them all
|
||||
event.remove({ mod: "prettypipes" })
|
||||
// machine recipes
|
||||
brassMachine(event, Item.of("prettypipes:item_terminal", 1), "thermal:diamond_gear")
|
||||
brassMachine(event, Item.of("prettypipes:pressurizer", 1), "create:propeller")
|
||||
|
||||
event.shaped(Item.of("prettypipes:pipe", 8), [
|
||||
"PMP"
|
||||
], {
|
||||
P: "create:brass_sheet",
|
||||
M: "create:brass_ingot"
|
||||
})
|
||||
event.shaped("prettypipes:wrench", [
|
||||
"PI ",
|
||||
"II ",
|
||||
" R"
|
||||
], {
|
||||
P: "prettypipes:pipe",
|
||||
I: "#forge:ingots/iron",
|
||||
R: "#forge:dyes/red"
|
||||
})
|
||||
event.shaped("prettypipes:crafting_terminal", [
|
||||
" T ",
|
||||
"RIR",
|
||||
" R "
|
||||
], {
|
||||
T: "minecraft:crafting_table",
|
||||
I: "prettypipes:item_terminal",
|
||||
R: "#forge:dusts/redstone"
|
||||
})
|
||||
event.shapeless("prettypipes:pipe_frame", ["minecraft:item_frame", "prettypipes:pipe", "#forge:dusts/redstone"])
|
||||
|
||||
let module = (type, result) => {
|
||||
// event.remove({ output: "prettypipes:"+result })
|
||||
event.stonecutting("prettypipes:" + result, "kubejs:pipe_module_" + type)
|
||||
}
|
||||
|
||||
module("utility", "filter_increase_modifier")
|
||||
module("utility", "tag_filter_modifier")
|
||||
module("utility", "mod_filter_modifier")
|
||||
module("utility", "nbt_filter_modifier")
|
||||
module("utility", "damage_filter_modifier")
|
||||
module("utility", "round_robin_sorting_modifier")
|
||||
module("utility", "random_sorting_modifier")
|
||||
module("utility", "redstone_module")
|
||||
module("utility", "stack_size_module")
|
||||
module("utility", "low_high_priority_module")
|
||||
module("utility", "medium_high_priority_module")
|
||||
module("utility", "high_high_priority_module")
|
||||
module("utility", "low_low_priority_module")
|
||||
module("utility", "medium_low_priority_module")
|
||||
module("utility", "high_low_priority_module")
|
||||
|
||||
let tiers = ["low", "medium", "high"]
|
||||
for (let i = 0; i < tiers.length; i++) {
|
||||
let tier = "tier_" + (i + 1)
|
||||
let prefix = tiers[i] + "_"
|
||||
module(tier, prefix + "extraction_module")
|
||||
module(tier, prefix + "retrieval_module")
|
||||
module(tier, prefix + "speed_module")
|
||||
module(tier, prefix + "filter_module")
|
||||
module(tier, prefix + "crafting_module")
|
||||
}
|
||||
|
||||
let attachment_base = (id, amount, other_ingredient) => {
|
||||
event.remove({ output: id })
|
||||
if (other_ingredient) {
|
||||
event.smithing(Item.of(id, amount), "kubejs:attachment_base", other_ingredient)
|
||||
event.recipes.create.mechanical_crafting(Item.of(id, amount), "AB", { A: "kubejs:attachment_base", B: other_ingredient })
|
||||
}
|
||||
else
|
||||
event.stonecutting(Item.of(id, amount), "kubejs:attachment_base")
|
||||
}
|
||||
attachment_base("thermal:turbo_servo_attachment", 1)
|
||||
attachment_base("thermal:filter_attachment", 1)
|
||||
attachment_base("thermal:energy_limiter_attachment", 1)
|
||||
})
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
if (Platform.isLoaded("projectred_illumination")) {
|
||||
ServerEvents.recipes(event => {
|
||||
event.remove({ mod: "projectred_illumination" })
|
||||
let convert = (c, id) => {
|
||||
let lamp = `projectred_illumination:${c}${id}`
|
||||
let inverted = `projectred_illumination:${c}_inverted${id}`
|
||||
event.shapeless(inverted, [lamp])
|
||||
event.shapeless(lamp, [inverted])
|
||||
}
|
||||
|
||||
colours.forEach(c => {
|
||||
event.shaped(Item.of(`projectred_illumination:${c}_illumar_lamp`, 1), [
|
||||
"G",
|
||||
"C",
|
||||
"S"
|
||||
], {
|
||||
G: "#forge:glass/colorless",
|
||||
C: `projectred_core:${c}_illumar`,
|
||||
S: "minecraft:redstone"
|
||||
})
|
||||
|
||||
event.stonecutting(Item.of(`projectred_illumination:${c}_fixture_light`, 4), `projectred_illumination:${c}_illumar_lamp`)
|
||||
event.stonecutting(Item.of(`projectred_illumination:${c}_fallout_light`, 4), `projectred_illumination:${c}_illumar_lamp`)
|
||||
event.stonecutting(Item.of(`projectred_illumination:${c}_lantern`, 4), `projectred_illumination:${c}_illumar_lamp`)
|
||||
event.stonecutting(Item.of(`projectred_illumination:${c}_cage_light`, 4), `projectred_illumination:${c}_illumar_lamp`)
|
||||
convert(c, "_illumar_lamp")
|
||||
convert(c, "_fallout_light")
|
||||
convert(c, "_lantern")
|
||||
convert(c, "_cage_light")
|
||||
convert(c, "_fixture_light")
|
||||
})
|
||||
})
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
if (Platform.isLoaded("projectred_integration")) {
|
||||
ServerEvents.recipes(event => {
|
||||
let p_circuit = (id) => event.stonecutting(Item.of("projectred_integration:" + id + "_gate", 1), "projectred_core:platformed_plate")
|
||||
|
||||
event.remove({ mod:"projectred_integration" })
|
||||
|
||||
p_circuit("or")
|
||||
p_circuit("nor")
|
||||
p_circuit("not")
|
||||
p_circuit("and")
|
||||
p_circuit("nand")
|
||||
p_circuit("xor")
|
||||
p_circuit("xnor")
|
||||
p_circuit("buffer")
|
||||
p_circuit("multiplexer")
|
||||
p_circuit("pulse")
|
||||
p_circuit("repeater")
|
||||
p_circuit("randomizer")
|
||||
p_circuit("sr_latch")
|
||||
p_circuit("toggle_latch")
|
||||
p_circuit("transparent_latch")
|
||||
p_circuit("light_sensor")
|
||||
p_circuit("rain_sensor")
|
||||
p_circuit("timer")
|
||||
p_circuit("sequencer")
|
||||
p_circuit("counter")
|
||||
p_circuit("state_cell")
|
||||
p_circuit("synchronizer")
|
||||
p_circuit("bus_transceiver")
|
||||
p_circuit("null_cell")
|
||||
p_circuit("invert_cell")
|
||||
p_circuit("buffer_cell")
|
||||
p_circuit("comparator")
|
||||
p_circuit("and_cell")
|
||||
p_circuit("bus_randomizer")
|
||||
p_circuit("bus_converter")
|
||||
p_circuit("bus_input_panel")
|
||||
p_circuit("segment_display")
|
||||
p_circuit("dec_randomizer")
|
||||
})
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
if (Platform.isLoaded("projectred_transmission")) {
|
||||
ServerEvents.recipes(event => {
|
||||
event.remove({ id: "projectred_transmission:wired_plate" })
|
||||
event.remove({ id: "projectred_transmission:bundled_plate" })
|
||||
})
|
||||
}
|
||||
134
overrides/kubejs/server_scripts/mods/quark.js
Normal file
134
overrides/kubejs/server_scripts/mods/quark.js
Normal file
@@ -0,0 +1,134 @@
|
||||
if(Platform.isLoaded("quark")) {
|
||||
|
||||
// Add quark wood types to the arrays of wood types
|
||||
wood_types.push("quark:ancient")
|
||||
wood_types.push("quark:azalea")
|
||||
wood_types.push("quark:blossom")
|
||||
|
||||
ServerEvents.recipes(event => {
|
||||
// Unwanted duplicate compressed block recipes
|
||||
event.remove({ id: "quark:building/crafting/compressed/charcoal_block"})
|
||||
event.remove({ id: "quark:building/crafting/compressed/sugar_cane_block"})
|
||||
event.remove({ id: "quark:building/crafting/compressed/gunpowder_sack"})
|
||||
event.remove({ id: "quark:building/crafting/compressed/apple_crate"})
|
||||
event.remove({ id: "quark:building/crafting/compressed/potato_crate"})
|
||||
event.remove({ id: "quark:building/crafting/compressed/carrot_crate"})
|
||||
event.remove({ id: "quark:building/crafting/compressed/beetroot_crate"})
|
||||
event.remove({ id: "quark:building/crafting/compressed/bamboo_block"})
|
||||
|
||||
// Tree resin
|
||||
addTreeOutput(event, "quark:blossom_log", "quark:blue_blossom_leaves")
|
||||
addTreeOutput(event, "quark:blossom_log", "quark:lavender_blossom_leaves")
|
||||
addTreeOutput(event, "quark:blossom_log", "quark:orange_blossom_leaves")
|
||||
addTreeOutput(event, "quark:blossom_log", "quark:yellow_blossom_leaves")
|
||||
addTreeOutput(event, "quark:blossom_log", "quark:red_blossom_leaves")
|
||||
|
||||
// Stone generation
|
||||
event.custom({
|
||||
"type": "thermal:rock_gen",
|
||||
"adjacent": "kubejs:chromatic_waste",
|
||||
"below": "minecraft:end_stone",
|
||||
"result": { "item": "quark:myalite"}
|
||||
})
|
||||
event.custom({
|
||||
"type": "thermal:rock_gen",
|
||||
"adjacent": "kubejs:chromatic_waste",
|
||||
"below": "minecraft:clay",
|
||||
"result": { "item": "quark:shale"}
|
||||
})
|
||||
event.custom({
|
||||
"type": "thermal:rock_gen",
|
||||
"adjacent": "kubejs:chromatic_waste",
|
||||
"below": "minecraft:quartz_block",
|
||||
"result": { "item": "quark:jasper"}
|
||||
})
|
||||
|
||||
// Modify quark easy sticks recipe to prevent conflicts with decorative blocks wood beams
|
||||
event.replaceInput({ id: "quark:tweaks/crafting/utility/misc/easy_sticks" }, "#minecraft:logs", "#kubejs:easy_sticks_logs")
|
||||
})
|
||||
|
||||
ServerEvents.tags("block", event => {
|
||||
|
||||
event.add("create:wrench_pickup", "quark:ender_watcher")
|
||||
// I really don't know why these blocks are missing the pressure plate tag
|
||||
// All the other pressure plates from quark and forbidden have the tag.
|
||||
event.add("minecraft:pressure_plates", "quark:obsidian_pressure_plate")
|
||||
})
|
||||
|
||||
ServerEvents.tags("item", event => {
|
||||
// Create a new set of tags for logs ok to use for the easy sticks recipe
|
||||
const easy_sticks = event.get("minecraft:logs").getObjectIds()
|
||||
const easy_sticks_blacklist = Ingredient.of("/.*stripped.*/")
|
||||
easy_sticks.forEach(easy_sticks => {
|
||||
if (!easy_sticks_blacklist.test(easy_sticks)) event.add("kubejs:easy_sticks_logs", easy_sticks)
|
||||
})
|
||||
// We only want to remove stripped logs, not stripped wood
|
||||
event.add("kubejs:easy_sticks_logs", "#forge:stripped_wood")
|
||||
})
|
||||
|
||||
ServerEvents.lowPriorityData(event => {
|
||||
addChiselingRecipe(event, "kubejs:chiseling_recipes/compat/quark/limestone", [
|
||||
"create:limestone",
|
||||
"quark:limestone",
|
||||
"quark:polished_limestone",
|
||||
"quark:limestone_bricks",
|
||||
"quark:chiseled_limestone_bricks",
|
||||
"quark:limestone_pillar"
|
||||
])
|
||||
addChiselingRecipe(event, "kubejs:chiseling_recipes/compat/quark/apple_block", ["thermal:apple_block", "quark:apple_crate"])
|
||||
addChiselingRecipe(event, "kubejs:chiseling_recipes/compat/quark/beetroot_block", ["farmersdelight:beetroot_crate", "quark:beetroot_crate"])
|
||||
addChiselingRecipe(event, "kubejs:chiseling_recipes/compat/quark/carrot_block", ["farmersdelight:carrot_crate", "quark:carrot_crate"])
|
||||
addChiselingRecipe(event, "kubejs:chiseling_recipes/compat/quark/charcoal_block", ["thermal:charcoal_block", "quark:charcoal_block"])
|
||||
addChiselingRecipe(event, "kubejs:chiseling_recipes/compat/quark/gunpowder_block", ["thermal:gunpowder_block", "quark:gunpowder_sack"])
|
||||
addChiselingRecipe(event, "kubejs:chiseling_recipes/compat/quark/potato_block", ["farmersdelight:potato_crate", "quark:potato_crate"])
|
||||
addChiselingRecipe(event, "kubejs:chiseling_recipes/compat/quark/sugar_cane_block", ["thermal:sugar_cane_block", "quark:sugar_cane_block"])
|
||||
|
||||
// Remove the Forgotten Hat from the forgotten's drop pool (spawns in strongholds with integrated strongholds)
|
||||
event.addJson("quark:loot_tables/entities/forgotten", {
|
||||
"type": "minecraft:entity",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"functions": [
|
||||
{
|
||||
"function": "minecraft:set_count",
|
||||
"count": {"min": 4.0, "max": 8.0, "type": "minecraft:uniform"}
|
||||
},
|
||||
{
|
||||
"function": "minecraft:looting_enchant",
|
||||
"count": {"min": 1.0, "max": 2.0}
|
||||
}
|
||||
],
|
||||
"name": "minecraft:arrow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"functions": [
|
||||
{
|
||||
"function": "minecraft:set_count",
|
||||
"count": {"min": 2.0, "max": 3.0, "type": "minecraft:uniform"}
|
||||
},
|
||||
{
|
||||
"function": "minecraft:looting_enchant",
|
||||
"count": {"min": 0.0, "max": 1.0}
|
||||
}
|
||||
],
|
||||
"name": "minecraft:bone"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
// remove soul beads
|
||||
event.addJson("quark:loot_tables/entities/wraith", {})
|
||||
})
|
||||
}
|
||||
7
overrides/kubejs/server_scripts/mods/reliquary.js
Normal file
7
overrides/kubejs/server_scripts/mods/reliquary.js
Normal file
@@ -0,0 +1,7 @@
|
||||
if(Platform.isLoaded("reliquary")) {
|
||||
ServerEvents.recipes(event => {
|
||||
event.forEachRecipe({id: /alkahestry/}, recipe => {
|
||||
recipe.id(recipe.getId() + "_manual_only")
|
||||
})
|
||||
})
|
||||
}
|
||||
133
overrides/kubejs/server_scripts/mods/sophstorage.js
Normal file
133
overrides/kubejs/server_scripts/mods/sophstorage.js
Normal file
@@ -0,0 +1,133 @@
|
||||
/**
|
||||
* Configuration of Sophisticated Storage
|
||||
*/
|
||||
ServerEvents.recipes(event => {
|
||||
// const modids = ["sophisticatedstorage", "sophisticatedbackpacks"]
|
||||
|
||||
// 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$/ })
|
||||
|
||||
// Barrel, Chest, Shulker Box upgrading
|
||||
const sophStorageMaterials = [
|
||||
["", null, null],
|
||||
// ["copper_", "tconstruct:steel_ingot", "lead"],
|
||||
["iron_", "bronze"],
|
||||
["gold_", "invar"],
|
||||
["diamond_", "slimesteel"],
|
||||
["netherite_", "manyullyn"],
|
||||
]
|
||||
const sophStorageTypes = [
|
||||
["", "barrel"],
|
||||
["", "chest"],
|
||||
["", "shulker_box"]
|
||||
]
|
||||
|
||||
let upgradePattern = ["NIN", "NCN", "NIN"]
|
||||
|
||||
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`,
|
||||
upgradePattern, {
|
||||
N: `#forge:nuggets/${material[1]}`,
|
||||
I: `#forge:ingots/${material[1]}`,
|
||||
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": upgradePattern,
|
||||
"key": {
|
||||
"N": {
|
||||
"tag": `forge:nuggets/${material[1]}`
|
||||
},
|
||||
"I": {
|
||||
"tag": `forge:ingots/${material[1]}`
|
||||
},
|
||||
"C": {
|
||||
"item": inputStorage
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": outputStorage
|
||||
}
|
||||
});
|
||||
})
|
||||
})
|
||||
|
||||
enderiumMachine(event, Item.of("sophisticatedstorage:controller", 1), "functionalstorage:storage_controller")
|
||||
enderiumMachine(event, Item.of("sophisticatedstorage:controller", 1), "functionalstorage:controller_extension")
|
||||
leadMachine(event, Item.of("sophisticatedstorage:storage_input", 1))
|
||||
leadMachine(event, Item.of("sophisticatedstorage:storage_output", 1))
|
||||
|
||||
// Stack upgrades
|
||||
let stackupgrade = [
|
||||
["", "create:andesite_alloy", ""],
|
||||
["stack_upgrade_tier_1", "create:brass_ingot", "upgrade_base"],
|
||||
["stack_upgrade_tier_2", "thermal:invar_ingot", "stack_upgrade_tier_1"],
|
||||
["stack_upgrade_tier_3", "thermal:enderium_ingot", "stack_upgrade_tier_2"],
|
||||
["stack_upgrade_tier_4", "kubejs:calculation_mechanism", "stack_upgrade_tier_3"]
|
||||
]
|
||||
|
||||
event.remove({ output: "sophisticatedstorage:stack_upgrade_tier_1_plus" })
|
||||
|
||||
for (let i = 1;i < stackupgrade.length;++i) {
|
||||
let upgrade = stackupgrade[i][0]
|
||||
let baseUpgrade = stackupgrade[i][2]
|
||||
|
||||
let ingredient = stackupgrade[i][1]
|
||||
let previousIngredient = stackupgrade[i - 1][1]
|
||||
|
||||
event.remove({ output: `sophisticatedstorage:${upgrade}` })
|
||||
donutCraft(event, `sophisticatedstorage:${upgrade}`, `sophisticatedstorage:${baseUpgrade}`, `${previousIngredient}`)
|
||||
event.remove({ output: `sophisticatedbackpacks:${upgrade}` })
|
||||
donutCraft(event, `sophisticatedbackpacks:${upgrade}`, `sophisticatedbackpacks:${baseUpgrade}`, `${ingredient}`)
|
||||
}
|
||||
|
||||
// Sophisticated Backpacks starter upgrade
|
||||
event.remove({ output: "sophisticatedbackpacks:stack_upgrade_starter_tier" })
|
||||
donutCraft(event, "sophisticatedbackpacks:stack_upgrade_starter_tier", "sophisticatedbackpacks:upgrade_base", "create:andesite_alloy")
|
||||
donutCraft(event, "sophisticatedbackpacks:stack_upgrade_tier_1", "sophisticatedbackpacks:stack_upgrade_starter_tier", "create:brass_ingot")
|
||||
// Sophisticated Storage tier 5 upgrade
|
||||
event.remove({ output: "sophisticatedstorage:stack_upgrade_tier_5" })
|
||||
donutCraft(event, "sophisticatedstorage:stack_upgrade_tier_5", "sophisticatedstorage:stack_upgrade_tier_4", "kubejs:calculation_mechanism")
|
||||
|
||||
event.remove({ id: "sophisticatedbackpacks:inception_upgrade"})
|
||||
event.remove({ id: "sophisticatedbackpacks:stack_upgrade_omega_tier"})
|
||||
event.remove({ output: "sophisticatedstorage:stack_upgrade_omega_tier" })
|
||||
|
||||
// Upgrades
|
||||
brassMachine(event, Item.of("sophisticatedstorage:advanced_hopper_upgrade", 2))
|
||||
})
|
||||
57
overrides/kubejs/server_scripts/mods/supplementaries.js
Normal file
57
overrides/kubejs/server_scripts/mods/supplementaries.js
Normal file
@@ -0,0 +1,57 @@
|
||||
if (Platform.isLoaded("supplementaries")) {
|
||||
ServerEvents.recipes(event => {
|
||||
// Lumisene
|
||||
event.custom({
|
||||
"type": "tconstruct:melting",
|
||||
"ingredient": {"item": "minecraft:glow_berries"},
|
||||
"result": {
|
||||
"fluid": "supplementaries:lumisene",
|
||||
"amount": 125
|
||||
},
|
||||
"temperature": 200,
|
||||
"time": 6
|
||||
}).id("kubejs:smeltery/melting/lumisene")
|
||||
|
||||
event.recipes.thermal.crucible(Fluid.of("supplementaries:lumisene", 125), "minecraft:glow_berries", 0, 1000)
|
||||
|
||||
event.recipes.create.filling("supplementaries:lumisene_bottle", ["minecraft:glass_bottle", Fluid.of("supplementaries:lumisene", 250).toJson()])
|
||||
event.recipes.create.emptying([Fluid.of("supplementaries:lumisene", 250), "minecraft:glass_bottle"], "supplementaries:lumisene_bottle")
|
||||
|
||||
// Timber Frame
|
||||
event.remove({ id:"supplementaries:timber_frame" })
|
||||
donutCraft(event, Item.of("supplementaries:timber_frame", 2), "minecraft:air", "#forge:rods/wooden")
|
||||
|
||||
event.stonecutting("supplementaries:timber_frame", "#kubejs:timber_frame")
|
||||
event.stonecutting("supplementaries:timber_brace", "#kubejs:timber_frame")
|
||||
event.stonecutting("supplementaries:timber_cross_brace", "#kubejs:timber_frame")
|
||||
|
||||
// Fix crafting table dye removal recipes for these items
|
||||
event.shapeless(Item.of("create:copper_valve_handle"), ["#create:valve_handles","supplementaries:soap"] ).id("kubejs:soap_clean_valve_handle_manual_only")
|
||||
// Copy the NBT data for this one so that removing dye doesn't eat our stuff.
|
||||
event.shapeless(Item.of("create:brown_toolbox"), ["#create:toolboxes","supplementaries:soap"] ).id("kubejs:soap_clean_toolbox_manual_only").modifyResult((grid, result) => {
|
||||
const item = grid.find(Ingredient.of("#create:toolboxes"))
|
||||
return result.withNBT(item.nbt)
|
||||
})
|
||||
})
|
||||
|
||||
ServerEvents.tags("item", event => {
|
||||
event.get("kubejs:timber_frame")
|
||||
.add("supplementaries:timber_frame")
|
||||
.add("supplementaries:timber_brace")
|
||||
.add("supplementaries:timber_cross_brace")
|
||||
})
|
||||
|
||||
ServerEvents.tags("block", event => {
|
||||
// Whitelist these items to allow the removal of dye in-world using soap (see supplementaries common config)
|
||||
const dyedHandles = event.get("create:valve_handles").getObjectIds()
|
||||
const dyedHandlesBlacklist = Ingredient.of(/.*copper.*/)
|
||||
dyedHandles.forEach(handle => {
|
||||
if (!dyedHandlesBlacklist.test(handle)) event.add("kubejs:valve_handles_dyed", handle)
|
||||
})
|
||||
const dyedToolboxes = event.get("create:toolboxes").getObjectIds()
|
||||
const dyedToolboxesBlacklist = Ingredient.of(/.*brown.*/)
|
||||
dyedToolboxes.forEach(toolbox => {
|
||||
if (!dyedToolboxesBlacklist.test(toolbox)) event.add("kubejs:toolboxes_dyed", toolbox)
|
||||
})
|
||||
})
|
||||
}
|
||||
65
overrides/kubejs/server_scripts/mods/trials.js
Normal file
65
overrides/kubejs/server_scripts/mods/trials.js
Normal file
@@ -0,0 +1,65 @@
|
||||
// Trial Chamber backport
|
||||
if (Platform.isLoaded("trials")) {
|
||||
ServerEvents.recipes(event => {
|
||||
// Broken Item
|
||||
event.remove({ id:"trials:crafter" })
|
||||
if (Platform.isLoaded("quark")) {
|
||||
event.shapeless("quark:crafter", ["trials:crafter"])
|
||||
}
|
||||
})
|
||||
ServerEvents.lowPriorityData(event => {
|
||||
|
||||
// Make a Trial Processor using IntegratedAPI and Lithostitched
|
||||
// Integrated API's waterlog fix processor is used to fix blocks being waterlogged when the structure generates over water
|
||||
// Lithostitched is used to swap blocks while copying over properties. (without it this processor would be almost 3000 lines long)
|
||||
event.addJson("trials:worldgen/processor_list/generic", {
|
||||
"processors": [
|
||||
{
|
||||
"processor_type": "integrated_api:waterlogging_fix_processor"
|
||||
},
|
||||
{
|
||||
"processor_type": "lithostitched:block_swap",
|
||||
"blocks": {
|
||||
"minecraft:waxed_copper_block": "kubejs:trial_copper_block",
|
||||
"minecraft:waxed_cut_copper": "kubejs:trial_cut_copper",
|
||||
"trials:waxed_chiseled_copper": "kubejs:trial_chiseled_copper",
|
||||
"trials:waxed_copper_grate": "kubejs:trial_copper_grate",
|
||||
"minecraft:waxed_cut_copper_stairs": "kubejs:trial_cut_copper_stairs",
|
||||
"minecraft:waxed_cut_copper_slab": "kubejs:trial_cut_copper_slab",
|
||||
"minecraft:waxed_oxidized_copper": "kubejs:trial_oxidized_copper",
|
||||
"minecraft:waxed_oxidized_cut_copper": "kubejs:trial_oxidized_cut_copper",
|
||||
"trials:waxed_chiseled_copper_oxidized": "kubejs:trial_chiseled_copper_oxidized",
|
||||
"trials:waxed_copper_grate_oxidized": "kubejs:trial_copper_grate_oxidized",
|
||||
"minecraft:waxed_oxidized_cut_copper_stairs": "kubejs:trial_oxidized_cut_copper_stairs",
|
||||
"minecraft:waxed_oxidized_cut_copper_slab": "kubejs:trial_oxidized_cut_copper_slab"
|
||||
}
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
event.addJson("trials:worldgen/structure_set/trial_chambers", {
|
||||
"structures": [
|
||||
{
|
||||
"structure": "trials:trials_chambers",
|
||||
"weight": 1
|
||||
}
|
||||
],
|
||||
"placement": {
|
||||
"type": "integrated_api:advanced_random_spread",
|
||||
"super_exclusion_zone": {
|
||||
"chunk_count": 12,
|
||||
"other_set": "#cabin:trial_chambers_avoid"
|
||||
},
|
||||
"spacing": 32,
|
||||
"separation": 21,
|
||||
"salt": 412788945
|
||||
}
|
||||
})
|
||||
|
||||
// Loot Tables are changed in the data folder.
|
||||
|
||||
// We need to change the type of loot tables to 'chest' so that emi Loot chooses to render it
|
||||
// The loot tables still work in trial vaults when they're set to the 'chest' type
|
||||
// Even if Lootjs were good in this version, we would still likely need to use a datapack to change the loot type
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user