diff --git a/config/configswapper/expert/config/entangled-common.toml b/config/configswapper/expert/config/entangled-common.toml index 6d020c5ef..b5469735b 100644 --- a/config/configswapper/expert/config/entangled-common.toml +++ b/config/configswapper/expert/config/entangled-common.toml @@ -1,12 +1,3 @@ -[Client] - # When looking at an Entangled Block, should its bound block be highlighted? - # Allowed values: true, false - Default: true - renderBlockHighlight = true - - # Should the block rendered inside entangled blocks rotate? - # Allowed values: true, false - Default: true - rotateRenderedBlock = true - [General] # Can entangled blocks be bound between different dimensions? Previously bound entangled blocks won't be affected. # Allowed values: true, false - Default: true @@ -14,5 +5,5 @@ # What is the max range in which entangled blocks can be bound? Only affects blocks in the same dimension. -1 for infinite range. Previously bound entangled blocks won't be affected. # Allowed range: -1 ~ 2147483647 - Default: -1 - maxDistance = 128 + maxDistance = 32 diff --git a/config/configswapper/expert/serverconfig/enigmaticunity-server.toml b/config/configswapper/expert/serverconfig/enigmaticunity-server.toml index 635c2a06c..cdc6ab708 100644 --- a/config/configswapper/expert/serverconfig/enigmaticunity-server.toml +++ b/config/configswapper/expert/serverconfig/enigmaticunity-server.toml @@ -3,7 +3,7 @@ auraConversion = 40.0 #Conversion multiplier from Source to Power #Range: 4.9E-324 ~ 1.7976931348623157E308 -sourceConversion = 250.0 +sourceConversion = 400.0 ["Dim type"] #Power Buffer size of the Dim type @@ -20,10 +20,10 @@ sourceConversion = 250.0 tickinterval = 80 #Amount of Source to convert per Operation with the Dim type #Range: > 0 - amountperoperation = 40 + amountperoperation = 20 #Amount of Aura to drain/provide when theDim type operates #Range: > 0 - change = 750 + change = 800 ["Bright type"] #Power Buffer size of the Bright type @@ -40,10 +40,10 @@ sourceConversion = 250.0 tickinterval = 40 #Amount of Source to convert per Operation with the Bright type #Range: > 0 - amountperoperation = 40 + amountperoperation = 20 #Amount of Aura to drain/provide when theBright type operates #Range: > 0 - change = 3750 + change = 3800 ["Iridescent type"] #Power Buffer size of the Iridescent type @@ -60,8 +60,8 @@ sourceConversion = 250.0 tickinterval = 20 #Amount of Source to convert per Operation with the Iridescent type #Range: > 0 - amountperoperation = 40 + amountperoperation = 20 #Amount of Aura to drain/provide when theIridescent type operates #Range: > 0 - change = 7750 + change = 7800 diff --git a/config/configswapper/normal/config/entangled-common.toml b/config/configswapper/normal/config/entangled-common.toml index ddec105b7..2ae6f412c 100644 --- a/config/configswapper/normal/config/entangled-common.toml +++ b/config/configswapper/normal/config/entangled-common.toml @@ -1,12 +1,3 @@ -[Client] - # When looking at an Entangled Block, should its bound block be highlighted? - # Allowed values: true, false - Default: true - renderBlockHighlight = true - - # Should the block rendered inside entangled blocks rotate? - # Allowed values: true, false - Default: true - rotateRenderedBlock = true - [General] # Can entangled blocks be bound between different dimensions? Previously bound entangled blocks won't be affected. # Allowed values: true, false - Default: true diff --git a/config/ftbquests/quests/chapters/ars_nouveau_expert.snbt b/config/ftbquests/quests/chapters/ars_nouveau_expert.snbt index c00510e76..58bbc445c 100644 --- a/config/ftbquests/quests/chapters/ars_nouveau_expert.snbt +++ b/config/ftbquests/quests/chapters/ars_nouveau_expert.snbt @@ -791,7 +791,7 @@ type: "item" } ] - x: 3.5d + x: 3.0d y: 2.5d } { @@ -816,7 +816,7 @@ item: "ars_nouveau:ritual_cloudshaping" type: "item" }] - x: 0.5d + x: 1.0d y: 2.5d } { @@ -1073,39 +1073,6 @@ x: -6.5d y: -2.0d } - { - dependencies: ["2CFCF5AFECE471E7"] - description: [ - "First shalt thou take out the Holy Pin. Then, shalt thou count to three, no more, no less…" - "" - "Useful for summoning Wilden of all sizes. When augmented with body parts from each of the lesser Wilden, the Wilden Chimera will appear to avenge his kin." - ] - icon: "ars_nouveau:ritual_wilden_summon" - id: "4C8EE3E4E174B4CC" - rewards: [{ - command: "/execute at @p run loot spawn ~ ~1 ~ loot enigmatica:loot_boxes/sorcerers_delight" - icon: "kubejs:sorcerers_delight" - id: "04F678C5D7C1C7F5" - player_command: false - title: "Sorcerer's Delight" - type: "command" - }] - subtitle: "The Beast of Caerbannog" - tasks: [ - { - id: "0609A04F9472F422" - item: "ars_nouveau:ritual_wilden_summon" - type: "item" - } - { - id: "60A51BD60D1A43AC" - item: "ars_nouveau:wilden_tribute" - type: "item" - } - ] - x: 1.5d - y: 3.0d - } { dependencies: ["0558849340629198"] description: [ @@ -1861,7 +1828,7 @@ type: "item" } ] - x: 2.5d + x: 2.0d y: 3.0d } { diff --git a/config/ftbquests/quests/chapters/chapter_three.snbt b/config/ftbquests/quests/chapters/chapter_three.snbt index 44e3a3426..0c83b6d94 100644 --- a/config/ftbquests/quests/chapters/chapter_three.snbt +++ b/config/ftbquests/quests/chapters/chapter_three.snbt @@ -135,6 +135,13 @@ } { dependencies: ["0672B242C31F4A11"] + description: [ + "" + "" + "=================================" + "" + "Teleportation using the Tree of Life is prone to… drift. Be sure to bring along some means to return home as well as to set up a portal on the other side. " + ] icon: "minecraft:chorus_fruit" id: "0EBE44D4C30C0E51" shape: "hexagon" diff --git a/config/ftbquests/quests/chapters/chapter_two.snbt b/config/ftbquests/quests/chapters/chapter_two.snbt index 691df5f42..8d0368cd7 100644 --- a/config/ftbquests/quests/chapters/chapter_two.snbt +++ b/config/ftbquests/quests/chapters/chapter_two.snbt @@ -10,7 +10,13 @@ quests: [ { dependencies: ["4F90F6437D6CF7EC"] - description: ["With items attuned to the destination it is now possible to travel to the Nether."] + description: [ + "With items attuned to the destination it is now possible to travel to the Nether." + "" + "=================================" + "" + "Teleportation using the Tree of Life is prone to… drift. Be sure to bring along some means to return home as well as to set up a portal on the other side. " + ] icon: "minecraft:crimson_fungus" id: "3D0B7DA1DD0A74B1" rewards: [{ @@ -49,7 +55,9 @@ "" "========================================" "" - "The Gateway for this fight is on a short timer. Capture a Wither and defeat the rest to obtain a Nether Star. The captured Wither will be used to mine Blighted Ichor, which may be used to produce more Nether Stars. " + "The Gateway for this fight is on a short timer. " + "" + "Capture a Wither and defeat the rest. The captured Wither will be used to mine Blighted Ichor, which may be used to produce Nether Stars. " "" "Feel free to repeat this fight, but it is not intended to be needed more than once. " ] @@ -233,7 +241,9 @@ "" "========================================" "" - "The Gateway for this fight is on a short timer. Capture a Wilden Chimera and defeat the rest to obtain a Wilden Tribute. The captured Wilden Chimera will be used to mine Magicite, which has multiple uses. " + "The Gateway for this fight is on a short timer. " + "" + "Capture a Wilden Chimera and defeat the rest to obtain a Wilden Tribute. The captured Wilden Chimera will be used to mine Magicite, which has multiple uses. " "" "Feel free to repeat this fight, but it is not intended to be needed more than once. " ] @@ -888,19 +898,31 @@ hide_dependency_lines: true icon: "kubejs:tree_of_life_2" id: "2759988A5B69A455" - rewards: [{ - id: "0FB91854818547CC" - item: { - Count: 1b - id: "trofers:medium_plate" - tag: { - BlockEntityTag: { - Trophy: "trofers:tree_of_life_2" + rewards: [ + { + id: "0FB91854818547CC" + item: { + Count: 1b + id: "trofers:medium_plate" + tag: { + BlockEntityTag: { + Trophy: "trofers:tree_of_life_2" + } } } + type: "item" } - type: "item" - }] + { + count: 2 + id: "0606173E7BE74E39" + item: { + Count: 1b + id: "ars_nouveau:stable_warp_scroll" + tag: { } + } + type: "item" + } + ] shape: "hexagon" tasks: [ { @@ -921,7 +943,13 @@ } { dependencies: ["2759988A5B69A455"] - description: ["With items attuned to the destination and the blessings of the Queen Bee, travel to the Overworld is now achievable."] + description: [ + "With items attuned to the destination and the blessings of the Queen Bee, travel to the Overworld is now achievable." + "" + "=================================" + "" + "Teleportation using the Tree of Life is prone to… drift. Be sure to bring along some means to return home as well as to set up a portal on the other side. " + ] icon: "supplementaries:globe" id: "356B7D1DFF632DBD" rewards: [{ diff --git a/kubejs/assets/kubejs/textures/item/drillhead_steel.png b/kubejs/assets/kubejs/textures/item/drillhead_steel.png new file mode 100644 index 000000000..9ca8a773a Binary files /dev/null and b/kubejs/assets/kubejs/textures/item/drillhead_steel.png differ diff --git a/kubejs/assets/kubejs/textures/item/sawblade.png b/kubejs/assets/kubejs/textures/item/sawblade.png new file mode 100644 index 000000000..a6891427e Binary files /dev/null and b/kubejs/assets/kubejs/textures/item/sawblade.png differ diff --git a/kubejs/client_scripts/constants/jei_hidden_disabled.js b/kubejs/client_scripts/constants/jei_hidden_disabled.js index f4306c825..5aea5fbc8 100644 --- a/kubejs/client_scripts/constants/jei_hidden_disabled.js +++ b/kubejs/client_scripts/constants/jei_hidden_disabled.js @@ -323,6 +323,7 @@ jei.expert.items.disabled = [ 'immersiveengineering:breaker_switch', 'immersiveengineering:current_transformer', 'immersiveengineering:cloche', + 'immersiveengineering:drillhead_iron', /industrialforegoing:.*black_hole/, /industrialforegoing:conveyor/, @@ -470,6 +471,7 @@ jei.expert.items.disabled = [ 'mekanism:hdpe_sheet', 'mekanism:hdpe_rod', 'mekanism:hdpe_pellet', + 'mekanism:steel_casing', 'mekanismgenerators:gas_burning_generator', 'mekanismgenerators:advanced_solar_generator', diff --git a/kubejs/client_scripts/expert/textures.js b/kubejs/client_scripts/expert/textures.js index e7e9d4acf..cb679859b 100644 --- a/kubejs/client_scripts/expert/textures.js +++ b/kubejs/client_scripts/expert/textures.js @@ -32,6 +32,20 @@ ClientEvents.highPriorityAssets((event) => { textures: { layer0: 'kubejs:item/drill_bit_diamond' } } }, + { + path: 'immersiveengineering:models/item/drillhead_steel', + json_model: { + parent: 'minecraft:item/generated', + textures: { layer0: 'kubejs:item/drillhead_steel' } + } + }, + { + path: 'immersiveengineering:models/item/sawblade', + json_model: { + parent: 'minecraft:item/generated', + textures: { layer0: 'kubejs:item/sawblade' } + } + }, { path: 'occultism:models/block/golden_sacrificial_bowl', json_model: { diff --git a/kubejs/client_scripts/lang_modifications.js b/kubejs/client_scripts/lang_modifications.js index 08ba18f25..025a2beac 100644 --- a/kubejs/client_scripts/lang_modifications.js +++ b/kubejs/client_scripts/lang_modifications.js @@ -945,7 +945,14 @@ const entries = { key: 'item.immersiveengineering.drillhead_steel', value: { normal: 'Steel Drill Head', - expert: 'Reinforced Drill Head' + expert: `Skyseeker's Drill Head` + } + }, + { + key: 'item.immersiveengineering.sawblade', + value: { + normal: 'Sawblade', + expert: `Botanist's Sawblade` } }, { diff --git a/kubejs/server_scripts/base/block_events/clear_weather.js b/kubejs/server_scripts/base/block_events/clear_weather.js new file mode 100644 index 000000000..6ecf2f8c4 --- /dev/null +++ b/kubejs/server_scripts/base/block_events/clear_weather.js @@ -0,0 +1,18 @@ +BlockEvents.rightClicked((event) => { + const { entity, block, level, server } = event; + if (!entity.isPlayer() || entity.isFake()) { + return; + } + + const dimension = String(level.getDimension()); + if ( + dimension == 'twilightforest:twilight_forest' && + block.getId().match(/(minecraft:|comforts:).*(_bed|sleeping_bag|hammock_)/) + ) { + // clear weather after 100 ticks + server.scheduleInTicks(100, (schedule) => { + let command = `/execute in minecraft:overworld run weather clear`; + schedule.server.runCommandSilent(command); + }); + } +}); diff --git a/kubejs/server_scripts/base/recipes/lychee/block_interacting.js b/kubejs/server_scripts/base/recipes/lychee/block_interacting.js index 0469cc76f..0c515e865 100644 --- a/kubejs/server_scripts/base/recipes/lychee/block_interacting.js +++ b/kubejs/server_scripts/base/recipes/lychee/block_interacting.js @@ -389,6 +389,37 @@ ServerEvents.recipes((event) => { } ]; + // colors.forEach((color) => { + // [`minecraft:${color}_bed`, `comforts:sleeping_bag_${color}`, `comforts:hammock_${color}`].forEach((bed) => { + // recipes.push({ + // hide_in_viewer: true, + // item_in: { type: 'lychee:always_true' }, + // block_in: bed, + // contextual: [ + // { + // type: 'and', + // contextual: [ + // { type: 'not', contextual: { type: 'weather', weather: 'clear' } }, + // { + // type: 'location', + // predicate: { location: { dimension: 'twilightforest:twilight_forest' } } + // } + // ] + // } + // ], + // post: [ + // { type: 'prevent_default' }, + // { + // type: 'execute', + // command: 'execute in minecraft:overworld run weather clear 3600', + // hide: true + // } + // ], + // id: `${id_prefix}clear_twilight_weather_${bed.split(':')[1]}` + // }); + // }); + // }); + recipes.forEach((recipe) => { recipe.type = 'lychee:block_interacting'; event.custom(recipe).id(recipe.id); diff --git a/kubejs/server_scripts/base/tags/blocks/ars_nouveau/harvest.js b/kubejs/server_scripts/base/tags/blocks/ars_nouveau/harvest.js index 32779fb04..205c90fb3 100644 --- a/kubejs/server_scripts/base/tags/blocks/ars_nouveau/harvest.js +++ b/kubejs/server_scripts/base/tags/blocks/ars_nouveau/harvest.js @@ -1,7 +1,7 @@ ServerEvents.tags('block', (event) => { tree_properties.trees.forEach((tree) => { event.add('ars_nouveau:harvest/foliage', tree.foliage); - event.add('ars_nouveau:harvest/stems', tree.stems); + // event.add('ars_nouveau:harvest/stems', tree.stems); }); tree_properties.shrooms.forEach((shroom) => { diff --git a/kubejs/server_scripts/expert/advancements/the_bumblezone.js b/kubejs/server_scripts/expert/advancements/the_bumblezone.js new file mode 100644 index 000000000..6557f405b --- /dev/null +++ b/kubejs/server_scripts/expert/advancements/the_bumblezone.js @@ -0,0 +1,287 @@ +/// High Priority required or Apotheosis over-writes these. +/* +enchantment_levels: [50, 30, 120, 40], + level at which normal items are enchanted + (same when ench module is disabled) + level at which the affix item is enchanted + (same when ench module is disable) + +*/ +ServerEvents.highPriorityData((event) => { + if (global.isExpertMode == false) { + return; + } + + const id_prefix = 'the_bumblezone:advancements/the_bumblezone/'; + + const advancements = [ + { + id: 'the_queens_desire/journeys_end', + parent: 'the_bumblezone:the_bumblezone/the_queens_desire/vip_trader', + display: { + icon: { item: 'the_bumblezone:essence_of_the_bees' }, + title: { translate: 'advancements.the_bumblezone.the_queens_desire.journeys_end.title' }, + description: { translate: 'advancements.the_bumblezone.the_queens_desire.journeys_end.description' }, + frame: 'challenge', + show_toast: true, + announce_to_chat: true, + hidden: false + }, + rewards: { + experience: 1500, + loot: ['the_bumblezone:advancements/queens_desire_end'] + }, + criteria: { + target_advancement_done_1: { + trigger: 'the_bumblezone:target_advancement_done', + conditions: { target_advancement: 'the_bumblezone:the_bumblezone/the_queens_desire/back_in_action' } + }, + target_advancement_done_2: { + trigger: 'the_bumblezone:target_advancement_done', + conditions: { + target_advancement: 'the_bumblezone:the_bumblezone/the_queens_desire/fighting_the_swarm' + } + }, + target_advancement_done_3: { + trigger: 'the_bumblezone:target_advancement_done', + conditions: { + target_advancement: + 'the_bumblezone:the_bumblezone/the_queens_desire/flooding_the_housing_market' + } + }, + target_advancement_done_4: { + trigger: 'the_bumblezone:target_advancement_done', + conditions: { target_advancement: 'the_bumblezone:the_bumblezone/the_queens_desire/honey_drunk' } + }, + target_advancement_done_5: { + trigger: 'the_bumblezone:target_advancement_done', + conditions: { + target_advancement: 'the_bumblezone:the_bumblezone/the_queens_desire/hungry_hungry_bees' + } + }, + target_advancement_done_7: { + trigger: 'the_bumblezone:target_advancement_done', + conditions: { + target_advancement: 'the_bumblezone:the_bumblezone/the_queens_desire/love_bees' + } + }, + target_advancement_done_8: { + trigger: 'the_bumblezone:target_advancement_done', + conditions: { + target_advancement: 'the_bumblezone:the_bumblezone/the_queens_desire/otherworldly_mites' + } + }, + target_advancement_done_9: { + trigger: 'the_bumblezone:target_advancement_done', + conditions: { + target_advancement: 'the_bumblezone:the_bumblezone/the_queens_desire/peak_inefficiency' + } + }, + target_advancement_done_10: { + trigger: 'the_bumblezone:target_advancement_done', + conditions: { + target_advancement: 'the_bumblezone:the_bumblezone/the_queens_desire/poison_warfare' + } + }, + target_advancement_done_11: { + trigger: 'the_bumblezone:target_advancement_done', + conditions: { + target_advancement: 'the_bumblezone:the_bumblezone/the_queens_desire/pollen_fight' + } + }, + target_advancement_done_12: { + trigger: 'the_bumblezone:target_advancement_done', + conditions: { + target_advancement: 'the_bumblezone:the_bumblezone/the_queens_desire/slimy_mitosis' + } + }, + target_advancement_done_13: { + trigger: 'the_bumblezone:target_advancement_done', + conditions: { + target_advancement: 'the_bumblezone:the_bumblezone/the_queens_desire/terror_fangs' + } + }, + target_advancement_done_14: { + trigger: 'the_bumblezone:target_advancement_done', + conditions: { + target_advancement: 'the_bumblezone:the_bumblezone/the_queens_desire/the_crazy_florist' + } + }, + target_advancement_done_16: { + trigger: 'the_bumblezone:target_advancement_done', + conditions: { + target_advancement: 'the_bumblezone:the_bumblezone/the_queens_desire/too_many_legs' + } + }, + target_advancement_done_17: { + trigger: 'the_bumblezone:target_advancement_done', + conditions: { + target_advancement: 'the_bumblezone:the_bumblezone/the_queens_desire/vip_trader' + } + } + }, + requirements: [ + ['target_advancement_done_1'], + ['target_advancement_done_2'], + ['target_advancement_done_3'], + ['target_advancement_done_4'], + ['target_advancement_done_5'], + ['target_advancement_done_7'], + ['target_advancement_done_8'], + ['target_advancement_done_9'], + ['target_advancement_done_10'], + ['target_advancement_done_11'], + ['target_advancement_done_12'], + ['target_advancement_done_13'], + ['target_advancement_done_14'], + ['target_advancement_done_16'], + ['target_advancement_done_17'] + ] + }, + { + id: 'the_queens_desire/vip_trader', + parent: 'the_bumblezone:the_bumblezone/the_queens_desire/otherworldly_mites', + display: { + icon: { + item: 'the_bumblezone:bee_queen_spawn_egg' + }, + title: { + translate: 'advancements.the_bumblezone.the_queens_desire.vip_trader.title' + }, + description: { + translate: 'advancements.the_bumblezone.the_queens_desire.vip_trader.description' + }, + frame: 'challenge', + show_toast: true, + announce_to_chat: false, + hidden: false + }, + rewards: { + experience: 300, + loot: ['the_bumblezone:advancements/queens_desire'] + }, + criteria: { + bee_queen_trading: { + trigger: 'the_bumblezone:bee_queen_trading', + conditions: { + target_count: 256 + } + } + }, + requirements: [['bee_queen_trading']] + }, + { + id: 'the_queens_desire/hungry_hungry_bees', + parent: 'the_bumblezone:the_bumblezone/the_queens_desire/the_crazy_florist', + display: { + icon: { + item: 'the_bumblezone:bee_queen_spawn_egg' + }, + title: { + translate: 'advancements.the_bumblezone.the_queens_desire.hungry_hungry_bees.title' + }, + description: { + translate: 'advancements.the_bumblezone.the_queens_desire.hungry_hungry_bees.description' + }, + frame: 'challenge', + show_toast: true, + announce_to_chat: false, + hidden: false + }, + rewards: { + experience: 100, + loot: ['the_bumblezone:advancements/queens_desire'] + }, + criteria: { + bee_fed: { + trigger: 'the_bumblezone:bee_fed', + conditions: { + target_count: 64 + } + } + }, + requirements: [['bee_fed']] + }, + + // Disabled Advancements due to placement + { + id: 'the_queens_desire/intimidation', + parent: 'the_bumblezone:the_bumblezone/the_queens_desire/essence_infusion', + display: { + icon: { + item: 'the_bumblezone:bee_queen_spawn_egg' + }, + title: { + translate: 'advancements.the_bumblezone.the_queens_desire.intimidation.title' + }, + description: { + translate: 'advancements.the_bumblezone.the_queens_desire.intimidation.description' + }, + frame: 'challenge', + show_toast: true, + announce_to_chat: false, + hidden: true + }, + rewards: { + experience: 200, + loot: ['the_bumblezone:advancements/queens_desire'] + }, + criteria: { impossible: { trigger: 'minecraft:impossible' } }, + requirements: [['impossible']] + }, + { + id: 'the_queens_desire/the_great_dragon_slayer', + parent: 'the_bumblezone:the_bumblezone/the_queens_desire/intimidation', + display: { + icon: { + item: 'the_bumblezone:bee_queen_spawn_egg' + }, + title: { + translate: 'advancements.the_bumblezone.the_queens_desire.the_great_dragon_slayer.title' + }, + description: { + translate: 'advancements.the_bumblezone.the_queens_desire.the_great_dragon_slayer.description' + }, + frame: 'challenge', + show_toast: true, + announce_to_chat: false, + hidden: true + }, + rewards: { + experience: 150, + loot: ['the_bumblezone:advancements/queens_desire'] + }, + criteria: { impossible: { trigger: 'minecraft:impossible' } }, + requirements: [['impossible']] + }, + { + id: 'the_queens_desire/peak_inefficiency', + parent: 'the_bumblezone:the_bumblezone/the_queens_desire/the_great_dragon_slayer', + display: { + icon: { + item: 'the_bumblezone:bee_queen_spawn_egg' + }, + title: { + translate: 'advancements.the_bumblezone.the_queens_desire.peak_inefficiency.title' + }, + description: { + translate: 'advancements.the_bumblezone.the_queens_desire.peak_inefficiency.description' + }, + frame: 'challenge', + show_toast: true, + announce_to_chat: false, + hidden: true + }, + rewards: { + experience: 500, + loot: ['the_bumblezone:advancements/queens_desire'] + }, + criteria: { impossible: { trigger: 'minecraft:impossible' } }, + requirements: [['impossible']] + } + ]; + + advancements.forEach((advancement) => { + event.addJson(`${id_prefix}${advancement.id}.json`, advancement); + }); +}); diff --git a/kubejs/server_scripts/expert/recipes/create/item_application.js b/kubejs/server_scripts/expert/recipes/create/item_application.js index 2fe48ee50..1f85ed0bd 100644 --- a/kubejs/server_scripts/expert/recipes/create/item_application.js +++ b/kubejs/server_scripts/expert/recipes/create/item_application.js @@ -25,6 +25,11 @@ ServerEvents.recipes((event) => { ingredients: [{ tag: 'forge:treated_wood' }, { tag: 'forge:ingots/energized_steel' }], results: [{ item: 'create:brass_casing' }], id: `${id_prefix}brass_casing_from_treated_wood` + }, + { + ingredients: [{ item: 'pneumaticcraft:compressed_brick_tile' }, { tag: 'forge:plates/lumium' }], + results: [{ item: 'create:railway_casing' }], + id: 'create:item_application/railway_casing' } ]; diff --git a/kubejs/server_scripts/expert/recipes/create/mixing.js b/kubejs/server_scripts/expert/recipes/create/mixing.js index fa793061c..79b514c4b 100644 --- a/kubejs/server_scripts/expert/recipes/create/mixing.js +++ b/kubejs/server_scripts/expert/recipes/create/mixing.js @@ -22,7 +22,12 @@ ServerEvents.recipes((event) => { count: 1 } ], - ingredients: [{ tag: 'create:crushed_ores/iron' }, { fluidTag: 'forge:sulfuric_acid', amount: 30 }], + ingredients: [ + { tag: 'create:crushed_ores/iron' }, + { tag: 'create:crushed_ores/iron' }, + { tag: 'create:crushed_ores/iron' }, + { fluidTag: 'forge:sulfuric_acid', amount: 30 } + ], heatRequirement: 'superheated', id: `${id_prefix}iron_dust_from_sulfuric_acid` diff --git a/kubejs/server_scripts/expert/recipes/create/sequenced_assembly.js b/kubejs/server_scripts/expert/recipes/create/sequenced_assembly.js index d53bc0b43..56de59daf 100644 --- a/kubejs/server_scripts/expert/recipes/create/sequenced_assembly.js +++ b/kubejs/server_scripts/expert/recipes/create/sequenced_assembly.js @@ -12,13 +12,13 @@ ServerEvents.recipes((event) => { { item: 'thermal:slag', chance: 3 } ], input: 'thermal:rich_slag', - transitionalItem: 'ae2:sky_dust', + transitionalItem: 'thermal:rich_slag', loops: 4, sequence: [ { type: 'create:filling', - ingredients: [{ item: 'ae2:sky_dust' }, { fluidTag: 'forge:redstone_acid', amount: 25 }], - results: [{ item: 'ae2:sky_dust' }] + ingredients: [{ item: 'thermal:rich_slag' }, { fluidTag: 'forge:redstone_acid', amount: 25 }], + results: [{ item: 'thermal:rich_slag' }] } ], id: `${id_prefix}sky_dust_silver_osmium_clump` diff --git a/kubejs/server_scripts/expert/recipes/create/shaped.js b/kubejs/server_scripts/expert/recipes/create/shaped.js index 764c47909..ef3c34a15 100644 --- a/kubejs/server_scripts/expert/recipes/create/shaped.js +++ b/kubejs/server_scripts/expert/recipes/create/shaped.js @@ -299,7 +299,7 @@ ServerEvents.recipes((event) => { pattern: [' A ', 'BAC', 'DA '], key: { A: 'naturesaura:ancient_stick', - B: '#forge:gears/compressed_iron', + B: 'immersiveengineering:light_engineering', C: 'create:brass_hand', D: '#forge:wooden_grip' }, @@ -311,7 +311,7 @@ ServerEvents.recipes((event) => { key: { A: 'immersiveengineering:component_electronic', B: 'create:brass_casing', - C: '#forge:gears/osmium' + C: '#forge:gears/aluminum' }, id: `create:crafting/kinetics/rotation_speed_controller` }, @@ -321,7 +321,7 @@ ServerEvents.recipes((event) => { key: { A: 'immersiveengineering:component_electronic', B: 'create:railway_casing', - C: '#forge:gears/compressed_iron' + C: '#forge:gears/lumium' }, id: `create:crafting/kinetics/controls` }, @@ -357,7 +357,7 @@ ServerEvents.recipes((event) => { pattern: ['ABA', 'ACA', 'ABA'], key: { A: '#forge:rods/iron', - B: '#forge:treated_wood', + B: '#forge:treated_wood_slab', C: '#forge:gravel' }, id: `${id_prefix}track_from_iron` @@ -367,7 +367,7 @@ ServerEvents.recipes((event) => { pattern: ['ABA', 'ACA', 'ABA'], key: { A: '#forge:rods/osmium', - B: '#forge:treated_wood', + B: '#forge:treated_wood_slab', C: '#forge:gravel' }, id: `${id_prefix}track_from_osmium` @@ -377,7 +377,7 @@ ServerEvents.recipes((event) => { pattern: ['ABA', 'ACA', 'ABA'], key: { A: '#forge:rods/bronze', - B: '#forge:treated_wood', + B: '#forge:treated_wood_slab', C: '#forge:gravel' }, id: `${id_prefix}track_from_bronze` @@ -441,6 +441,65 @@ ServerEvents.recipes((event) => { D: 'minecraft:smooth_stone' }, id: `create:crafting/schematics/schematicannon` + }, + { + output: 'create:steam_engine', + pattern: [' A ', 'BCB', ' D '], + key: { + A: '#forge:rods/aluminum', + B: '#forge:essences/air', + C: 'pneumaticcraft:cannon_barrel', + D: '#forge:storage_blocks/bronze' + }, + id: `create:crafting/kinetics/steam_engine` + }, + { + output: 'create:super_glue', + pattern: ['AB', 'CA'], + key: { + A: '#forge:slimeballs', + B: '#forge:plates/tin', + C: '#forge:nuggets/tin' + }, + id: `create:crafting/kinetics/super_glue` + }, + { + output: '16x create:metal_bracket', + pattern: ['AAA', 'BCB'], + key: { + A: ['#forge:nuggets/nickel', '#forge:nuggets/iron'], + B: ['#forge:ingots/nickel', '#forge:ingots/iron'], + C: 'pneumaticcraft:compressed_stone' + }, + id: `create:crafting/kinetics/metal_bracket` + }, + { + output: '16x create:wooden_bracket', + pattern: ['AAA', 'BCB'], + key: { + A: '#forge:rods/wooden', + B: '#minecraft:planks', + C: 'pneumaticcraft:compressed_stone' + }, + id: `create:crafting/kinetics/wooden_bracket` + }, + { + output: '16x create:metal_girder', + pattern: ['AAA', 'BBB'], + key: { + A: ['#forge:plates/nickel', '#forge:plates/iron'], + B: 'pneumaticcraft:compressed_stone' + }, + id: `create:crafting/kinetics/metal_girder` + }, + { + output: 'create:minecart_coupling', + pattern: [' B', ' A ', 'B '], + key: { + A: ['#forge:plates/nickel', '#forge:plates/iron'], + B: 'pneumaticcraft:compressed_stone' + }, + id: `create:crafting/curiosities/minecart_coupling` } ]; diff --git a/kubejs/server_scripts/expert/recipes/enigmatica/remove.js b/kubejs/server_scripts/expert/recipes/enigmatica/remove.js index 7a2beaddb..7e8dec4ba 100644 --- a/kubejs/server_scripts/expert/recipes/enigmatica/remove.js +++ b/kubejs/server_scripts/expert/recipes/enigmatica/remove.js @@ -136,6 +136,10 @@ ServerEvents.recipes((event) => { { id: 'hexerei:mixing_cauldron' }, { id: `hexerei:moon_dust_from_mixing_cauldron` }, + { id: /empty_shell/, mod: 'immersiveengineering' }, + { id: /empty_casing/, mod: 'immersiveengineering' }, + { id: /immersiveengineering:crusher\/coal/ }, + { id: /immersiveengineering:crusher\/coke/ }, { id: /immersiveengineering:blastfurnace\/fuel_/ }, { id: /immersiveengineering:crafting\/.*_mix/ }, { id: /immersiveengineering:crafting\/toolupgrade_powerpack_/ }, @@ -176,10 +180,7 @@ ServerEvents.recipes((event) => { { id: 'immersiveengineering:blueprint/circuit_board' }, { id: 'immersiveengineering:blueprint/component_electronic_adv' }, { id: 'immersiveengineering:metalpress/melon' }, - { id: /empty_shell/, mod: 'immersiveengineering' }, - { id: /empty_casing/, mod: 'immersiveengineering' }, - { id: /immersiveengineering:crusher\/coal/ }, - { id: /immersiveengineering:crusher\/coke/ }, + { id: 'immersiveengineering:crafting/drillhead_iron' }, { id: /industrialforegoing:laser_drill_ore/ }, { id: /industrialforegoing:.*black_hole/ }, @@ -343,6 +344,7 @@ ServerEvents.recipes((event) => { { id: 'mekanism:hdpe_stick' }, { id: 'mekanism:hdpe_sheet' }, { id: 'mekanism:hdpe_rod' }, + { id: 'mekanism:steel_casing' }, { id: /minecraft:diamond_(helmet|chestplate|leggings|boots)/ }, { id: /minecraft:diamond_(sword|pickaxe|axe|shovel|hoe)/ }, @@ -437,6 +439,9 @@ ServerEvents.recipes((event) => { { id: /quark:.*rainbow_rune/ }, { id: 'quark:building/smelting/moss_paste' }, + { id: /railways:sequenced_assembly\/track_/ }, + { id: /railways:sequenced_assembly\/.*conductor_cap/ }, + { id: 'rftoolsbase:dimensionalshard' }, { id: 'rftoolsbase:infused_diamond' }, { id: 'rftoolsbase:infused_enderpearl' }, diff --git a/kubejs/server_scripts/expert/recipes/immersiveengineering/shaped.js b/kubejs/server_scripts/expert/recipes/immersiveengineering/shaped.js index 30370e4e0..d69ccd715 100644 --- a/kubejs/server_scripts/expert/recipes/immersiveengineering/shaped.js +++ b/kubejs/server_scripts/expert/recipes/immersiveengineering/shaped.js @@ -128,10 +128,11 @@ ServerEvents.recipes((event) => { }, { output: Item.of('immersiveengineering:sawblade', { Unbreakable: 1 }), - pattern: ['AA ', 'ABA', ' AA'], + pattern: ['CA ', 'ABA', ' AC'], key: { - A: '#forge:ingots/compressed_iron', - B: 'create:shaft' + A: '#forge:ingots/ironwood', + B: 'thermal:redstone_servo', + C: '#forge:ingots/infused_iron' }, id: `immersiveengineering:crafting/sawblade` }, @@ -139,26 +140,17 @@ ServerEvents.recipes((event) => { output: Item.of('immersiveengineering:rockcutter', { Unbreakable: 1 }), pattern: ['CA ', 'ABA', ' AC'], key: { - A: '#forge:ingots/compressed_iron', - B: 'create:shaft', + A: '#forge:ingots/ironwood', + B: 'thermal:redstone_servo', C: '#forge:ingots/sky' }, id: `immersiveengineering:crafting/rockcutter` }, - { - output: Item.of('immersiveengineering:drillhead_iron', { Unbreakable: 1 }), - pattern: [' A', 'AA ', 'BA '], - key: { - A: '#forge:ingots/iron', - B: 'thermal:redstone_servo' - }, - id: `immersiveengineering:crafting/drillhead_iron` - }, { output: Item.of('immersiveengineering:drillhead_steel', { Unbreakable: 1 }), pattern: [' A', 'AA ', 'BA '], key: { - A: '#forge:ingots/compressed_iron', + A: '#forge:ingots/sky', B: 'thermal:redstone_servo' }, id: `immersiveengineering:crafting/drillhead_steel` @@ -198,11 +190,12 @@ ServerEvents.recipes((event) => { }, { output: 'immersiveengineering:drill', - pattern: [' A', ' BA', 'C '], + pattern: [' DA', 'DBA', 'C '], key: { A: '#forge:wooden_grip', - B: 'immersiveengineering:heavy_engineering', - C: '#forge:gears/compressed_iron' + B: 'immersiveengineering:light_engineering', + C: '#forge:gears/diamond', + D: '#forge:plates/obsidian' }, id: `immersiveengineering:crafting/drill` }, @@ -211,9 +204,9 @@ ServerEvents.recipes((event) => { pattern: [' A', 'DBA', 'CD '], key: { A: '#forge:wooden_grip', - B: 'immersiveengineering:heavy_engineering', - C: '#forge:gears/compressed_iron', - D: '#forge:plates/invar' + B: 'immersiveengineering:light_engineering', + C: '#forge:gears/diamond', + D: '#forge:plates/obsidian' }, id: `immersiveengineering:crafting/buzzsaw` }, diff --git a/kubejs/server_scripts/expert/recipes/minecraft/shaped.js b/kubejs/server_scripts/expert/recipes/minecraft/shaped.js index e49222249..d3d30557f 100644 --- a/kubejs/server_scripts/expert/recipes/minecraft/shaped.js +++ b/kubejs/server_scripts/expert/recipes/minecraft/shaped.js @@ -136,6 +136,15 @@ ServerEvents.recipes((event) => { B: 'quark:rainbow_rune' }, id: 'minecraft:conduit' + }, + { + output: 'minecraft:shield', + pattern: ['A A', 'ABA', ' A '], + key: { + A: '#minecraft:planks', + B: '#forge:ingots/bronze' + }, + id: 'minecraft:shield' } ]; diff --git a/kubejs/server_scripts/expert/recipes/occultism/ritual.js b/kubejs/server_scripts/expert/recipes/occultism/ritual.js index 7da57a716..956718f74 100644 --- a/kubejs/server_scripts/expert/recipes/occultism/ritual.js +++ b/kubejs/server_scripts/expert/recipes/occultism/ritual.js @@ -1097,10 +1097,10 @@ ServerEvents.recipes((event) => { 'immersiveengineering:coil_mv', 'immersiveengineering:coil_mv', 'immersiveengineering:coil_mv', - '#forge:gears/osmium', - '#forge:gears/osmium', - '#forge:gears/osmium', - '#forge:gears/osmium' + '#forge:gears/aluminum', + '#forge:gears/aluminum', + '#forge:gears/aluminum', + '#forge:gears/aluminum' ], entity_to_sacrifice: { tag: 'enigmatica:elementals/earth', diff --git a/kubejs/server_scripts/expert/recipes/railways/shaped.js b/kubejs/server_scripts/expert/recipes/railways/shaped.js new file mode 100644 index 000000000..1dc32bb12 --- /dev/null +++ b/kubejs/server_scripts/expert/recipes/railways/shaped.js @@ -0,0 +1,187 @@ +ServerEvents.recipes((event) => { + if (global.isExpertMode == false) { + return; + } + const id_prefix = 'enigmatica:expert/railways/shaped/'; + + const recipes = [ + { + output: '16x railways:track_monorail', + pattern: ['AAA', 'BBB', 'CCC'], + key: { + A: '#forge:plates/bronze', + B: 'create:metal_bracket', + C: 'create:metal_girder' + }, + id: `${id_prefix}track_monorail_from_bronze` + }, + { + output: '32x railways:track_monorail', + pattern: ['AAA', 'BBB', 'CCC'], + key: { + A: '#forge:plates/iron', + B: 'create:metal_bracket', + C: 'create:metal_girder' + }, + id: `${id_prefix}track_monorail_from_iron` + }, + { + output: '48x railways:track_monorail', + pattern: ['AAA', 'BBB', 'CCC'], + key: { + A: '#forge:plates/osmium', + B: 'create:metal_bracket', + C: 'create:metal_girder' + }, + id: `${id_prefix}track_monorail_from_osmium` + }, + { + output: 'railways:smokestack_caboosestyle', + pattern: ['ABA', ' C '], + key: { + A: 'pneumaticcraft:compressed_stone_slab', + B: 'pneumaticcraft:compressed_stone', + C: 'minecraft:campfire' + }, + id: 'railways:crafting/smokestack_caboosestyle' + }, + { + output: 'railways:smokestack_long', + pattern: ['ACA'], + key: { + A: 'pneumaticcraft:compressed_stone_slab', + C: 'minecraft:campfire' + }, + id: 'railways:crafting/smokestack_long' + }, + { + output: 'railways:smokestack_coalburner', + pattern: ['A A', 'A A', 'ACA'], + key: { + A: 'pneumaticcraft:compressed_stone', + C: 'minecraft:campfire' + }, + id: 'railways:crafting/smokestack_coalburner' + }, + { + output: 'railways:smokestack_oilburner', + pattern: ['A A', 'ACA'], + key: { + A: 'pneumaticcraft:compressed_stone', + C: 'minecraft:campfire' + }, + id: 'railways:crafting/smokestack_oilburner' + }, + { + output: 'railways:smokestack_streamlined', + pattern: ['ACA'], + key: { + A: 'pneumaticcraft:compressed_stone', + C: 'minecraft:campfire' + }, + id: 'railways:crafting/smokestack_streamlined' + }, + { + output: 'railways:smokestack_woodburner', + pattern: ['ABA', 'BCB'], + key: { + A: 'pneumaticcraft:compressed_stone_slab', + B: 'pneumaticcraft:compressed_stone', + C: 'minecraft:campfire' + }, + id: 'railways:crafting/smokestack_woodburner' + }, + { + output: 'railways:smokestack_diesel', + pattern: ['ABA'], + key: { + A: 'pneumaticcraft:compressed_stone', + B: 'create:propeller' + }, + id: 'railways:crafting/smokestack_diesel' + }, + { + output: 'railways:track_coupler', + pattern: ['A', 'B', 'C'], + key: { + A: 'pneumaticcraft:compressed_stone_slab', + B: 'pneumaticcraft:logistics_core', + C: 'create:railway_casing' + }, + id: 'railways:crafting/track_coupler' + }, + { + output: '4x railways:semaphore', + pattern: [' A ', 'BCD', ' A '], + key: { + A: 'pneumaticcraft:compressed_stone', + B: '#minecraft:fences', + C: 'create:andesite_casing', + D: 'pneumaticcraft:logistics_core' + }, + id: 'railways:crafting/semaphore' + }, + { + output: 'railways:conductor_whistle', + pattern: ['AB', ' C'], + key: { + A: '#forge:ingots/bronze', + B: '#forge:nuggets/bronze', + C: '#forge:string' + }, + id: 'railways:crafting/conductor_whistle' + } + ]; + + colors.forEach((color) => { + recipes.push({ + output: `railways:${color}_conductor_cap`, + pattern: ['AAA', 'ABA', 'ACA'], + key: { + A: 'ars_nouveau:magebloom_fiber', + B: '#forge:ingots/silver', + C: `#forge:dyes/${color}` + }, + id: `${id_prefix}${color}_conductor_cap` + }); + }); + + // Convert tracks to shaped + event.forEachRecipe({ type: 'create:sequenced_assembly' }, (r) => { + let source_recipe = JSON.parse(r.json); + let output = source_recipe.results[0].item; + + if (!output.includes('railways:track') || output.includes('monorail')) { + return; + } + + let track_base = source_recipe.ingredient.item; + let track_type = output.split(':')[1]; + let rails = [ + { material: 'iron', count: 32 }, + { material: 'osmium', count: 48 }, + { material: 'bronze', count: 16 } + ]; + let gold_exceptions = ['track_warped', 'track_crimson', 'track_blackstone']; + if (gold_exceptions.includes(track_type)) { + rails.push({ material: 'gold', count: 32 }); + } + + rails.forEach((rail) => { + recipes.push({ + output: Item.of(output).withCount(rail.count), + pattern: ['ABA', 'ACA', 'ABA'], + key: { + A: `#forge:rods/${rail.material}`, + B: track_base, + C: '#forge:gravel' + }, + id: `${id_prefix}${track_type}_from_${rail.material}` + }); + }); + }); + + recipes.forEach((recipe) => { + event.shaped(recipe.output, recipe.pattern, recipe.key).id(recipe.id); + }); +}); diff --git a/kubejs/server_scripts/expert/villager_trades/immersiveengineering/electrician.js b/kubejs/server_scripts/expert/villager_trades/immersiveengineering/electrician.js index 3e5b502c9..6fb8fff7a 100644 --- a/kubejs/server_scripts/expert/villager_trades/immersiveengineering/electrician.js +++ b/kubejs/server_scripts/expert/villager_trades/immersiveengineering/electrician.js @@ -142,7 +142,7 @@ MoreJSEvents.villagerTrades((event) => { inputs: [TradeItem.of('minecraft:emerald', 1, 2)], priceMultiplier: 0.2, level: 5, - maxUses: 16, + maxUses: 8, experience: 5 } ]; diff --git a/kubejs/server_scripts/expert/villager_trades/pneumaticcraft/mechanic.js b/kubejs/server_scripts/expert/villager_trades/pneumaticcraft/mechanic.js index 767b6d824..513efd899 100644 --- a/kubejs/server_scripts/expert/villager_trades/pneumaticcraft/mechanic.js +++ b/kubejs/server_scripts/expert/villager_trades/pneumaticcraft/mechanic.js @@ -113,8 +113,8 @@ MoreJSEvents.villagerTrades((event) => { }, { - output: 'pneumaticcraft:spawner_core_shell', - inputs: [TradeItem.of('minecraft:emerald', 32, 64)], + output: 'ae2:dense_energy_cell', + inputs: [TradeItem.of('minecraft:emerald', 54, 64)], priceMultiplier: 0.2, level: 5, maxUses: 2,