From 1295060fd838744ed278c83cfea8beb30593a284 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Tue, 9 Jan 2024 09:11:45 +0700 Subject: [PATCH] some recipes --- kubejs/client_scripts/main_client_script.js | 5 -- kubejs/server_scripts/gregtech/recipes.js | 66 ++++++++++++++++++++- kubejs/server_scripts/tfc/recipes.js | 56 ++++++++++++++++- kubejs/startup_scripts/gtceu/constants.js | 23 +++++++ 4 files changed, 139 insertions(+), 11 deletions(-) diff --git a/kubejs/client_scripts/main_client_script.js b/kubejs/client_scripts/main_client_script.js index 8a1fc3c60..193a5854f 100644 --- a/kubejs/client_scripts/main_client_script.js +++ b/kubejs/client_scripts/main_client_script.js @@ -15,11 +15,6 @@ JEIEvents.hideItems(event => { hideChiselAndBitsStuff(event) }) -//JEIEvents.groupEntries(event => { -// groupGTCEUStuff(event) -// groupTFCStuff(event) -//}) - JEIEvents.removeCategories(event => { registerMinecraftCategories(event) registerGTCEUCategories(event) diff --git a/kubejs/server_scripts/gregtech/recipes.js b/kubejs/server_scripts/gregtech/recipes.js index 292bbaa7e..2540a17ca 100644 --- a/kubejs/server_scripts/gregtech/recipes.js +++ b/kubejs/server_scripts/gregtech/recipes.js @@ -1,6 +1,8 @@ // priority: 0 const $MaterialFlags = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.info.MaterialFlags') +const $TFGMaterialFlags = Java.loadClass('su.terrafirmagreg.core.compat.gtceu.TFGMaterialFlags') +const $ToolHelper = Java.loadClass('com.gregtechceu.gtceu.api.item.tool.ToolHelper') const registerGTCEURecipes = (event) => { @@ -1258,6 +1260,26 @@ const registerGTCEURecipes = (event) => { //#region Рецепты, которые итерируются по всем материалам GTRegistries.MATERIALS.forEach(material => { + + //#region Рецепты инструментов + + if (material.hasFlag($TFGMaterialFlags.HAS_TFC_TOOL)) { + global.GTCEU_ANVIL_TOOL_TYPES.forEach(toolType => { + let toolStack = $ToolHelper.get(toolType, material) + + event.recipes.tfc.advanced_shaped_crafting(TFC.itemStackProvider.of(toolStack).copyForgingBonus(), [ + 'A', + 'B' + ], { + A: `gtceu:${material}_${toolType.name}_head`, + B: '#forge:rods/wooden' + }, 0, 0).id(`gtceu:shaped/${toolType.name}_${material}`) + + }) + } + + //#endregion + if (material.hasProperty(PropertyKey.ORE)) { // Бедная сырая руда -> Дробленная руда + Дробленная руда (30%) @@ -1276,8 +1298,16 @@ const registerGTCEURecipes = (event) => { .id(`tfg:crushing/${material}_crushed_ore_from_rich_raw_ore`) // Грязная пыль -> Пыль (90%) - event.recipes.createSplashing(Item.of(`gtceu:${material}_dust`).withChance(0.9), `gtceu:${material}_impure_dust`) - .id(`tfg:splashing/${material}_dust`) + event.recipes.createSplashing(Item.of(`#forge:dusts/${material}`).withChance(0.9), `gtceu:${material}_impure_dust`) + .id(`tfg:splashing/${material}_dust_from_impure`) + + // Очищенная пыль -> Пыль (90%) + event.recipes.createSplashing(Item.of(`#forge:dusts/${material}`).withChance(0.9), `gtceu:${material}_pure_dust`) + .id(`tfg:splashing/${material}_dust_from_pure`) + + // Дробленная руда -> Очищенная руда (90%) + event.recipes.createSplashing(Item.of(`#forge:purified_ores/${material}`).withChance(0.9), `gtceu:${material}_crushed_ore`) + .id(`tfg:splashing/${material}_purified_ore`) // Грязная пыль -> Пыль event.custom({ @@ -1292,7 +1322,37 @@ const registerGTCEURecipes = (event) => { } ], result: Item.of(`#forge:dusts/${material}`).toJson() - }).id(`tfg:ae_transform/${material}_dust`) + }).id(`tfg:ae_transform/${material}_dust_from_impure`) + + // Очищенная пыль -> Пыль + event.custom({ + type: "ae2:transform", + circumstance: { + type: "fluid", + tag: "minecraft:water" + }, + ingredients: [ + { + item: `gtceu:${material}_pure_dust` + } + ], + result: Item.of(`#forge:dusts/${material}`).toJson() + }).id(`tfg:ae_transform/${material}_dust_from_pure`) + + // Дробленная руда -> Очищенная руда + event.custom({ + type: "ae2:transform", + circumstance: { + type: "fluid", + tag: "minecraft:water" + }, + ingredients: [ + { + item: `gtceu:${material}_crushed_ore` + } + ], + result: Item.of(`#forge:purified_ores/${material}`).toJson() + }).id(`tfg:ae_transform/${material}_purified_ore`) } if (material.hasFlag($MaterialFlags.GENERATE_PLATE) && material != 'wood') diff --git a/kubejs/server_scripts/tfc/recipes.js b/kubejs/server_scripts/tfc/recipes.js index 193138f8f..589984a5d 100644 --- a/kubejs/server_scripts/tfc/recipes.js +++ b/kubejs/server_scripts/tfc/recipes.js @@ -206,23 +206,31 @@ const registerTFCRecipes = (event) => { // Стержень -> Кольцо // Возможно, когда нибудь, когда они пригодятся + // Длинный стержень -> Металл + event.recipes.tfc.heating(`gtceu:${metal}_long_rod`, metalSpecs.melt_temp) + .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) + .id(`tfc:heating/metal/${metal}_long_rod`) + + // Стержни -> Длинный стержень + event.recipes.tfc.welding(`gtceu:${metal}_long_rod`, `#forge:rods/${metal}`, `#forge:rods/${metal}`) + .tier(metalSpecs.tier) + .id(`tfc:anvil/${metal}_long_rod`) + // Болт -> Металл event.recipes.tfc.heating(`gtceu:${metal}_bolt`, metalSpecs.melt_temp) .resultFluid(Fluid.of(metalSpecs.output_fluid, 36)) .id(`tfc:heating/metal/${metal}_bolt`) + // Стержень -> Болт event.recipes.tfc.anvil(`2x gtceu:${metal}_bolt`, `#forge:rods/${metal}`, ['punch_last', 'draw_second_last', 'draw_third_last']) .tier(metalSpecs.tier) .id(`tfc:anvil/${metal}_bolt`) - // Стержень -> Болт - // Винт -> Металл event.recipes.tfc.heating(`gtceu:${metal}_screw`, metalSpecs.melt_temp) .resultFluid(Fluid.of(metalSpecs.output_fluid, 72)) .id(`tfc:heating/metal/${metal}_screw`) - // Стержень -> Винт event.recipes.tfc.anvil(`gtceu:${metal}_screw`, `#forge:rods/${metal}`, ['punch_last', 'punch_second_last', 'shrink_third_last']) .tier(metalSpecs.tier) @@ -618,6 +626,48 @@ const registerTFCRecipes = (event) => { //#endregion + //#region Молот шахтера + + // Декрафт инструмента в жидкость + event.recipes.tfc.heating(`gtceu:${metal}_mining_hammer`, metalSpecs.melt_temp) + .resultFluid(Fluid.of(metalSpecs.output_fluid, 288)) + .useDurability(true) + .id(`tfc:heating/metal/${metal}_mining_hammer`) + + // Крафт оголовья + event.recipes.tfc.anvil(`gtceu:${metal}_mining_hammer_head`, `#forge:double_ingots/${metal}`, ['punch_last', 'shrink_not_last']) + .tier(metalSpecs.tier) + .bonus(true) + .id(`tfc:anvil/${metal}_mining_hammer_head`) + + // Декрафт оголовья в жидкость + event.recipes.tfc.heating(`gtceu:${metal}_mining_hammer_head`, metalSpecs.melt_temp) + .resultFluid(Fluid.of(metalSpecs.output_fluid, 288)) + .id(`tfc:heating/metal/${metal}_mining_hammer_head`) + + //#endregion + + //#region Большая лопата + + // Декрафт инструмента в жидкость + event.recipes.tfc.heating(`gtceu:${metal}_spade`, metalSpecs.melt_temp) + .resultFluid(Fluid.of(metalSpecs.output_fluid, 288)) + .useDurability(true) + .id(`tfc:heating/metal/${metal}_spade`) + + // Крафт оголовья + event.recipes.tfc.anvil(`gtceu:${metal}_spade_head`, `#forge:double_ingots/${metal}`, ['punch_last', 'hit_not_last']) + .tier(metalSpecs.tier) + .bonus(true) + .id(`tfc:anvil/${metal}_spade_head`) + + // Декрафт оголовья в жидкость + event.recipes.tfc.heating(`gtceu:${metal}_spade_head`, metalSpecs.melt_temp) + .resultFluid(Fluid.of(metalSpecs.output_fluid, 288)) + .id(`tfc:heating/metal/${metal}_spade_head`) + + //#endregion + //#region Ножницы // Сварка оголовий diff --git a/kubejs/startup_scripts/gtceu/constants.js b/kubejs/startup_scripts/gtceu/constants.js index 2b9fde612..e748321dd 100644 --- a/kubejs/startup_scripts/gtceu/constants.js +++ b/kubejs/startup_scripts/gtceu/constants.js @@ -42,4 +42,27 @@ global.GTCEU_DISABLED_ITEMS = [ 'gtceu:rubber_log', 'gtceu:rubber_leaves', 'gtceu:rubber_planks', +]; + +global.GTCEU_ANVIL_TOOL_TYPES = [ + GTToolType.SWORD, + GTToolType.PICKAXE, + GTToolType.SHOVEL, + GTToolType.AXE, + GTToolType.HOE, + GTToolType.MINING_HAMMER, + GTToolType.SPADE, + GTToolType.SAW, + GTToolType.HARD_HAMMER, + // GTToolType.SOFT_MALLET, + // GTToolType.WRENCH, + GTToolType.FILE, + // GTToolType.CROWBAR, + // GTToolType.SCREWDRIVER, + // GTToolType.MORTAR, + // GTToolType.WIRE_CUTTER, + GTToolType.SCYTHE, + GTToolType.KNIFE, + GTToolType.BUTCHERY_KNIFE, + // GTToolType.PLUNGER ]; \ No newline at end of file