diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a382615d..31b330bc4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,12 @@ - Unlocked steel steam machines (again, yes). - Added translation for ru_ru inside TFG-Core. - Fixed alternator multiblock (now works fine). +- Return raw ore blocks from GregTech. +- True way to remove TFC ores from EMI. +- True way to remove Firmelife ores from EMI. +- True way to hide AE2 facades. +- True way to hide chisel and bits bits, yes. +- Fix double removing honey liquid from EMI. - ... ### Updated mods - ?? diff --git a/kubejs/assets/emi/index/stacks/items.json b/kubejs/assets/emi/index/stacks/items.json index c9288b43b..d6b8b397a 100644 --- a/kubejs/assets/emi/index/stacks/items.json +++ b/kubejs/assets/emi/index/stacks/items.json @@ -1,8 +1,3 @@ { - "filters": [ - "/tfc:ore/[^*]+/[^*]+/", - "/firmalife:ore/[^*]+/[^*]+/", - "ae2:facade", - "chiselandbits:block_bit" - ] + "filters": [] } \ No newline at end of file diff --git a/kubejs/assets/emi/recipe/filters/categories.json b/kubejs/assets/emi/recipe/filters/categories.json index 2aa0f16a3..9e54ab81b 100644 --- a/kubejs/assets/emi/recipe/filters/categories.json +++ b/kubejs/assets/emi/recipe/filters/categories.json @@ -1,55 +1,5 @@ { "filters": [ - { - "category": "minecraft:campfire_cooking" - }, - { - "category": "minecraft:brewing" - }, - { - "category": "minecraft:stonecutting" - }, - { - "category": "emi:anvil_repairing" - }, - { - "category": "emi:world_interaction" - }, - { - "category": "gtceu:primitive_blast_furnace" - }, - { - "category": "create:mystery_conversion" - }, - { - "category": "jumbofurnace:jumbo_furnace_upgrade" - }, - { - "category": "jumbofurnace:jumbo_smelting" - }, - { - "category": "emi:composting" - }, - { - "category": "emi:fuel" - }, - { - "id": "/emi:/crafting/repairing/[^*]+/" - }, - { - "id": "/emi:/grindstone/repairing/minecraft/[^*]+/" - }, - { - "id": "/emi:/crafting/shulker_box_dying/minecraft/[^*]+/" - }, - { - "id": "/create:create.toolbox.color.block.create.[^*]+/" - }, - { - "id": "/sophisticatedbackpacks:single_color_[^*]+/" - }, - { - "id": "sophisticatedbackpacks:multiple_colors" - } + ] } \ No newline at end of file diff --git a/kubejs/jsconfig.json b/kubejs/jsconfig.json new file mode 100644 index 000000000..e2acac6af --- /dev/null +++ b/kubejs/jsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "lib": [ + "ES5", + "ES2015" + ], + "rootDirs": [ + "probe/generated", + "probe/user", + "server_scripts", + "startup_scripts", + "client_scripts" + ], + "target": "ES2015" + } +} \ No newline at end of file diff --git a/kubejs/server_scripts/ae2/tags.js b/kubejs/server_scripts/ae2/tags.js index 719cf7567..842adba74 100644 --- a/kubejs/server_scripts/ae2/tags.js +++ b/kubejs/server_scripts/ae2/tags.js @@ -2,6 +2,8 @@ const registerAE2ItemTags = (event) => { + event.add('c:hidden_from_recipe_viewers', "ae2:facade") + global.AE2_DISABLED_ITEMS.forEach(item => { event.removeAllTagsFrom(item) event.add('c:hidden_from_recipe_viewers', item) diff --git a/kubejs/server_scripts/chisel_and_bits/tags.js b/kubejs/server_scripts/chisel_and_bits/tags.js index 648608b25..86552e617 100644 --- a/kubejs/server_scripts/chisel_and_bits/tags.js +++ b/kubejs/server_scripts/chisel_and_bits/tags.js @@ -3,13 +3,13 @@ const registerChiselAndBitsItemTags = (event) => { if (Platform.isLoaded('chiselsandbits')) { + event.add('c:hidden_from_recipe_viewers', "chiselandbits:block_bit") + global.CHISEL_AND_BITS_DISABLED_ITEMS.forEach(item => { event.removeAllTagsFrom(item) event.add('c:hidden_from_recipe_viewers', item) }) } - - } const registerChiselAndBitsBlockTags = (event) => { diff --git a/kubejs/server_scripts/firmalife/tags.js b/kubejs/server_scripts/firmalife/tags.js index c2098d5fc..c12c73a0a 100644 --- a/kubejs/server_scripts/firmalife/tags.js +++ b/kubejs/server_scripts/firmalife/tags.js @@ -2,49 +2,66 @@ const registerFirmaLifeItemTags = (event) => { - // Удаление тегов у отключенных предметов + //#region Удаление тегов и скрытие руд + const ALL_FIRMALIFE_ORES = Ingredient.of(/firmalife:ore\/[^*]+\/[^*]+/).itemIds + + ALL_FIRMALIFE_ORES.forEach(element => { + event.removeAllTagsFrom(element) + event.add('c:hidden_from_recipe_viewers', element) + }) + //#endregion + + //#region Удаление тегов и скрытие предметов global.FIRMALIFE_DISABLED_ITEMS.forEach(item => { event.removeAllTagsFrom(item) event.add('c:hidden_from_recipe_viewers', item) }) + //#endregion - // Просто предметы для скрытия + //#region Скрытие предметов global.FIRMALIFE_HIDED_ITEMS.forEach(item => { event.add('c:hidden_from_recipe_viewers', item) }) - - // Удаление тегов у руд - event.removeAllTagsFrom("/tfc:ore/[^*]+/[^*]+/") + //#endregion } const registerFirmaLifeBlockTags = (event) => { - // Удаление тегов у отключенных предметов + //#region Удаление тегов и скрытие руд + const ALL_FIRMALIFE_ORES = Ingredient.of(/firmalife:ore\/[^*]+\/[^*]+/).itemIds + + ALL_FIRMALIFE_ORES.forEach(element => { + event.removeAllTagsFrom(element) + event.add('c:hidden_from_recipe_viewers', element) + }) + //#endregion + + //#region Удаление тегов и скрытие предметов global.FIRMALIFE_DISABLED_ITEMS.forEach(item => { event.removeAllTagsFrom(item) + event.add('c:hidden_from_recipe_viewers', item) }) - - // Удаление тегов у руд - event.removeAllTagsFrom("/tfc:ore/[^*]+/[^*]+/") + //#endregion // Для того, чтобы стенками greenhouse могли быть фреймы грега (для передачи воды) - event.add('tfc:always_valid_greenhouse_wall', '#forge:frames') + event.add('firmalife:always_valid_greenhouse_wall', '#forge:frames') } const registerFirmaLifeFluidTags = (event) => { - // Добавляем тег для скрытия в EMI + //#region Скрытие магического хрома event.add('c:hidden_from_recipe_viewers', 'firmalife:metal/chromium') + //#endregion } const registerFirmaLifePlacedFeatures = (event) => { + + //#region Удаление из генерации жил const ALL_DISABLED_FIRMALIFE_VEINS = [ 'firmalife:vein/normal_chromite', 'firmalife:vein/deep_chromite' ] - // Удаление - ALL_DISABLED_FIRMALIFE_VEINS.forEach(vein => { - event.remove('tfc:in_biome/veins', vein) - }) + ALL_DISABLED_FIRMALIFE_VEINS.forEach(vein => event.remove('tfc:in_biome/veins', vein)) + //#endregion } \ No newline at end of file diff --git a/kubejs/server_scripts/gregtech/recipes.js b/kubejs/server_scripts/gregtech/recipes.js index 52f2c93c1..865da32c4 100644 --- a/kubejs/server_scripts/gregtech/recipes.js +++ b/kubejs/server_scripts/gregtech/recipes.js @@ -1,6 +1,10 @@ // priority: 0 const registerGregTechRecipes = (event) => { + +} + +const registerGregTechRecipes1 = (event) => { //#region Выход: Удобрение // В обычном миксере @@ -1492,4 +1496,694 @@ const registerGregTechRecipes = (event) => { // * Отключение генерации рецептов: 2 стержня + молот = длинный стержень (верстак). // * */ // @Redirect(method = "processLongStick", at = @At(value = "INVOKE", target = "Lcom/gregtechceu/gtceu/data/recipe/VanillaRecipeHelper;addShapedRecipe(Ljava/util/function/Consumer;Ljava/lang/String;Lnet/minecraft/world/item/ItemStack;[Ljava/lang/Object;)V", ordinal = 3), remap = false) -// private static void tfg$processLongStick$vanillaRecipeHelper$addShapedRecipe$longStick(Consumer provider, String regName, ItemStack result, Object[] recipe) {} \ No newline at end of file +// private static void tfg$processLongStick$vanillaRecipeHelper$addShapedRecipe$longStick(Consumer provider, String regName, ItemStack result, Object[] recipe) {} + +//public static void init(Consumer provider) { + // registerTFCRockDecompositionRecipes(provider); + // registerExtruderMoldRecipes(provider); + // registerCastingMoldRecipes(provider); + // registerExtruderMoldCopyingRecipes(provider); + // registerCastingMoldCopyingRecipes(provider); + // registerProcessingToolHeadsRecipes(provider); + // registerTagPrefixHandlerRecipes(provider); + // } + + // private static void registerTFCRockDecompositionRecipes(Consumer provider) { + // // Gabbro + // CENTRIFUGE_RECIPES.recipeBuilder(TFGCore.id("gabbro_dust_separation")) + // .EUt(VA[MV]).duration(480) + // .inputItems(dust, Gabbro) + // .chancedOutput(dustTiny, Titanium, 6700, 700) + // .chancedOutput(dustTiny, Iron, 3700, 700) + // .chancedOutput(dustTiny, MetalMixture, 1700, 700) + // .save(provider); + // + // // Shale + // CENTRIFUGE_RECIPES.recipeBuilder(TFGCore.id("shale_dust_separation")) + // .EUt(VA[MV]).duration(480) + // .inputItems(dust, Shale) + // .chancedOutput(dustTiny, Sodium, 7500, 500) + // .chancedOutput(dustTiny, MetalMixture, 1500, 500) + // .outputFluids(Oxygen.getFluid(16)) + // .save(provider); + // + // // Claystone + // CENTRIFUGE_RECIPES.recipeBuilder(TFGCore.id("claystone_dust_separation")) + // .duration(480).EUt(VA[MV]) + // .inputItems(dust, Claystone) + // .chancedOutput(dustTiny, Aluminium, 6700, 700) + // .chancedOutput(dustTiny, Silicon, 6700, 700) + // .chancedOutput(dustTiny, Hematite, 6700, 700) + // .outputFluids(Oxygen.getFluid(5)) + // .save(provider); + // + // // Limestone + // CENTRIFUGE_RECIPES.recipeBuilder(TFGCore.id("limestone_dust_separation")) + // .duration(480).EUt(VA[MV]) + // .inputItems(dust, Limestone) + // .chancedOutput(dustTiny, Calcium, 8700, 700) + // .chancedOutput(dustTiny, MetalMixture, 1700, 700) + // .outputFluids(Oxygen.getFluid(36)) + // .save(provider); + // + // // Conglomerate + // CENTRIFUGE_RECIPES.recipeBuilder(TFGCore.id("conglomerate_dust_separation")) + // .duration(480).EUt(VA[MV]) + // .inputItems(dust, Conglomerate) + // .chancedOutput(dustTiny, Hematite, 6700, 700) + // .chancedOutput(dustTiny, Silicon, 4700, 700) + // .chancedOutput(dustTiny, TricalciumPhosphate, 3700, 700) + // .outputFluids(Oxygen.getFluid(5)) + // .save(provider); + // + // // Dolomite + // CENTRIFUGE_RECIPES.recipeBuilder(TFGCore.id("dolomite_dust_separation")) + // .duration(480).EUt(VA[MV]) + // .inputItems(dust, Dolomite) + // .chancedOutput(dustTiny, Magnesium, 6700, 700) + // .chancedOutput(dustTiny, Calcium, 5700, 700) + // .chancedOutput(dustTiny, MetalMixture, 3700, 700) + // .outputFluids(Oxygen.getFluid(16)) + // .save(provider); + // + // // Chert + // CENTRIFUGE_RECIPES.recipeBuilder(TFGCore.id("chert_dust_separation")) + // .duration(480).EUt(VA[MV]) + // .inputItems(dust, Chert) + // .chancedOutput(dustTiny, Silicon, 6700, 700) + // .chancedOutput(dustTiny, MetalMixture, 5700, 700) + // .outputFluids(Oxygen.getFluid(24)) + // .save(provider); + // + // // Chalk + // CENTRIFUGE_RECIPES.recipeBuilder(TFGCore.id("chalk_dust_separation")) + // .duration(480).EUt(VA[MV]) + // .inputItems(dust, Chalk) + // .chancedOutput(dustTiny, Calcium, 6700, 700) + // .chancedOutput(dustTiny, Carbon, 3700, 700) + // .chancedOutput(dustTiny, MetalMixture, 1700, 700) + // .outputFluids(Oxygen.getFluid(12)) + // .save(provider); + // + // // Rhyolite + // CENTRIFUGE_RECIPES.recipeBuilder(TFGCore.id("rhyolite_dust_separation")) + // .duration(480).EUt(VA[MV]) + // .inputItems(dust, Rhyolite) + // .chancedOutput(dustTiny, SiliconDioxide, 8700, 700) + // .chancedOutput(dustTiny, MetalMixture, 800, 700) + // .save(provider); + // + // // Dacite + // CENTRIFUGE_RECIPES.recipeBuilder(TFGCore.id("dacite_dust_separation")) + // .duration(480).EUt(VA[MV]) + // .inputItems(dust, Dacite) + // .chancedOutput(dustTiny, Sodium, 6700, 700) + // .chancedOutput(dustTiny, Calcium, 5700, 700) + // .chancedOutput(dustTiny, SiliconDioxide, 4700, 700) + // .chancedOutput(dustTiny, Aluminium, 3700, 700) + // .chancedOutput(dustTiny, MetalMixture, 150, 700) + // .outputFluids(Oxygen.getFluid(12)) + // .save(provider); + // + // // Slate + // CENTRIFUGE_RECIPES.recipeBuilder(TFGCore.id("slate_dust_separation")) + // .duration(480).EUt(VA[MV]) + // .inputItems(dust, Slate) + // .chancedOutput(dustTiny, MetalMixture, 780, 480) + // .outputFluids(Oxygen.getFluid(6)) + // .save(provider); + // + // // Phyllite + // CENTRIFUGE_RECIPES.recipeBuilder(TFGCore.id("phyllite_dust_separation")) + // .duration(480).EUt(VA[MV]) + // .inputItems(dust, Phyllite) + // .chancedOutput(dustTiny, Quartzite, 5700, 700) + // .chancedOutput(dustTiny, CalciumChloride, 1700, 700) + // .outputFluids(Oxygen.getFluid(2)) + // .save(provider); + // + // // Schist + // CENTRIFUGE_RECIPES.recipeBuilder(TFGCore.id("schist_dust_separation")) + // .duration(480).EUt(VA[MV]) + // .inputItems(dust, Schist) + // .chancedOutput(dustTiny, Mica, 6700, 700) + // .chancedOutput(dustTiny, Talc, 5700, 700) + // .chancedOutput(dustTiny, Graphite, 4700, 700) + // .chancedOutput(dustTiny, MetalMixture, 780, 700) + // .outputFluids(Oxygen.getFluid(12)) + // .save(provider); + // + // // Gneiss + // CENTRIFUGE_RECIPES.recipeBuilder(TFGCore.id("gneiss_dust_separation")) + // .duration(480).EUt(VA[MV]) + // .inputItems(dust, Gneiss) + // .chancedOutput(dustTiny, Quartzite, 6700, 700) + // .chancedOutput(dustTiny, Biotite, 3700, 700) + // .outputFluids(Oxygen.getFluid(2)) + // .save(provider); + // } + + // private static void registerExtruderMoldRecipes(Consumer provider) { + // VanillaRecipeHelper.addStrictShapedRecipe(provider, + // TFGCore.id("shape_extruder_mining_hammer_head"), + // SHAPE_EXTRUDER_MINING_HAMMER_HEAD.asStack(), + // "Sfh", " ", " ", 'S', SHAPE_EMPTY.asStack()); + // + // VanillaRecipeHelper.addStrictShapedRecipe(provider, + // TFGCore.id("shape_extruder_sword_head"), + // SHAPE_EXTRUDER_SWORD_HEAD.asStack(), + // "Shf", " ", " ", 'S', SHAPE_EMPTY.asStack()); + // + // VanillaRecipeHelper.addStrictShapedRecipe(provider, + // TFGCore.id("shape_extruder_pickaxe_head"), + // SHAPE_EXTRUDER_PICKAXE_HEAD.asStack(), + // "S ", "hf ", " ", 'S', SHAPE_EMPTY.asStack()); + // + // VanillaRecipeHelper.addStrictShapedRecipe(provider, + // TFGCore.id("shape_extruder_axe_head"), + // SHAPE_EXTRUDER_AXE_HEAD.asStack(), + // "S ", " fh", " ", 'S', SHAPE_EMPTY.asStack()); + // + // VanillaRecipeHelper.addStrictShapedRecipe(provider, + // TFGCore.id("shape_extruder_hoe_head"), + // SHAPE_EXTRUDER_HOE_HEAD.asStack(), + // "S ", " hf", " ", 'S', SHAPE_EMPTY.asStack()); + // + // VanillaRecipeHelper.addStrictShapedRecipe(provider, + // TFGCore.id("shape_extruder_scythe_head"), + // SHAPE_EXTRUDER_SCYTHE_HEAD.asStack(), + // "S ", " ", "fh ", 'S', SHAPE_EMPTY.asStack()); + // + // VanillaRecipeHelper.addStrictShapedRecipe(provider, + // TFGCore.id("shape_extruder_file_head"), + // SHAPE_EXTRUDER_FILE_HEAD.asStack(), + // "S ", " ", "hf ", 'S', SHAPE_EMPTY.asStack()); + // + // VanillaRecipeHelper.addStrictShapedRecipe(provider, + // TFGCore.id("shape_extruder_hammer_head"), + // SHAPE_EXTRUDER_HAMMER_HEAD.asStack(), + // "Sf ", " h ", " ", 'S', SHAPE_EMPTY.asStack()); + // + // VanillaRecipeHelper.addStrictShapedRecipe(provider, + // TFGCore.id("shape_extruder_saw_head"), + // SHAPE_EXTRUDER_SAW_HEAD.asStack(), + // "Sh ", " f ", " ", 'S', SHAPE_EMPTY.asStack()); + // + // VanillaRecipeHelper.addStrictShapedRecipe(provider, + // TFGCore.id("shape_extruder_knife_head"), + // SHAPE_EXTRUDER_KNIFE_HEAD.asStack(), + // "S f", " ", " h", 'S', SHAPE_EMPTY.asStack()); + // + // VanillaRecipeHelper.addStrictShapedRecipe(provider, + // TFGCore.id("shape_extruder_butchery_head_head"), + // SHAPE_EXTRUDER_BUTCHERY_KNIFE_HEAD.asStack(), + // "S h", " ", " f", 'S', SHAPE_EMPTY.asStack()); + // + // VanillaRecipeHelper.addStrictShapedRecipe(provider, + // TFGCore.id("shape_extruder_shovel_head"), + // SHAPE_EXTRUDER_SHOVEL_HEAD.asStack(), + // "S ", "f ", "h ", 'S', SHAPE_EMPTY.asStack()); + // + // VanillaRecipeHelper.addStrictShapedRecipe(provider, + // TFGCore.id("shape_extruder_spade_head"), + // SHAPE_EXTRUDER_SPADE_HEAD.asStack(), + // "S ", "f ", " h", 'S', SHAPE_EMPTY.asStack()); + // + // VanillaRecipeHelper.addStrictShapedRecipe(provider, + // TFGCore.id("shape_extruder_propick_head"), + // SHAPE_EXTRUDER_PROPICK_HEAD.asStack(), + // "Sxf", " ", " ", 'S', SHAPE_EMPTY.asStack()); + // + // VanillaRecipeHelper.addStrictShapedRecipe(provider, + // TFGCore.id("shape_extruder_javelin_head"), + // SHAPE_EXTRUDER_JAVELIN_HEAD.asStack(), + // "S x", "f ", " ", 'S', SHAPE_EMPTY.asStack()); + // + // VanillaRecipeHelper.addStrictShapedRecipe(provider, + // TFGCore.id("shape_extruder_chisel_head"), + // SHAPE_EXTRUDER_CHISEL_HEAD.asStack(), + // "S ", "xf ", " ", 'S', SHAPE_EMPTY.asStack()); + // + // VanillaRecipeHelper.addStrictShapedRecipe(provider, + // TFGCore.id("shape_extruder_mace_head"), + // SHAPE_EXTRUDER_MACE_HEAD.asStack(), + // "S ", " xf", " ", 'S', SHAPE_EMPTY.asStack()); + // } + + // private static void registerCastingMoldRecipes(Consumer provider) { + // VanillaRecipeHelper.addStrictShapedRecipe(provider, + // TFGCore.id("shape_mold_unfinished_lamp"), + // SHAPE_MOLD_UNFINISHED_LAMP.asStack(), + // "Sh ", " ", " ", 'S', SHAPE_EMPTY.asStack()); + // + // VanillaRecipeHelper.addStrictShapedRecipe(provider, + // TFGCore.id("shape_mold_trapdoor"), + // SHAPE_MOLD_TRAPDOOR.asStack(), + // "S h", " ", " ", 'S', SHAPE_EMPTY.asStack()); + // + // VanillaRecipeHelper.addStrictShapedRecipe(provider, + // TFGCore.id("shape_mold_chain"), + // SHAPE_MOLD_CHAIN.asStack(), + // "S ", "h ", " ", 'S', SHAPE_EMPTY.asStack()); + // + // VanillaRecipeHelper.addStrictShapedRecipe(provider, + // TFGCore.id("shape_mold_bell"), + // SHAPE_MOLD_BELL.asStack(), + // "S ", " h ", " ", 'S', SHAPE_EMPTY.asStack()); + // } + + // private static void registerExtruderMoldCopyingRecipes(Consumer provider) { + // for (var shapeMold : TFGItems.SHAPE_EXTRUDERS) { + // FORMING_PRESS_RECIPES.recipeBuilder(TFGCore.id("copy_mold_" + shapeMold.get())) + // .duration(120).EUt(22) + // .notConsumable(shapeMold) + // .inputItems(SHAPE_EMPTY) + // .outputItems(shapeMold) + // .save(provider); + // } + // } + + // private static void registerCastingMoldCopyingRecipes(Consumer provider) { + // for (var shapeMold : TFGItems.SHAPE_MOLDS) { + // FORMING_PRESS_RECIPES.recipeBuilder(TFGCore.id("copy_mold_" + shapeMold.get() + "_casting_mold")) + // .duration(120).EUt(22) + // .notConsumable(shapeMold) + // .inputItems(SHAPE_EMPTY) + // .outputItems(shapeMold) + // .save(provider); + // } + // } + + // private static void registerProcessingToolHeadsRecipes(Consumer consumer) { + // for (var material : GTCEuAPI.materialManager.getRegisteredMaterials()) { + // if (material.hasProperty(PropertyKey.TOOL)) { + // + // int counter = 0; + // + // processToolHead(toolHeadAxe, material, SHAPE_EXTRUDER_AXE_HEAD, counter++, consumer); + // processToolHead(toolHeadHoe, material, SHAPE_EXTRUDER_HOE_HEAD, counter++, consumer); + // processToolHead(toolHeadShovel, material, SHAPE_EXTRUDER_SHOVEL_HEAD, counter++, consumer); + // processToolHead(toolHeadKnife, material, SHAPE_EXTRUDER_KNIFE_HEAD, counter++, consumer); + // processToolHead(toolHeadMiningHammer, material, SHAPE_EXTRUDER_MINING_HAMMER_HEAD, counter++, consumer); + // processToolHead(toolHeadSword, material, SHAPE_EXTRUDER_SWORD_HEAD, counter++, consumer); + // processToolHead(toolHeadPickaxe, material, SHAPE_EXTRUDER_PICKAXE_HEAD, counter++, consumer); + // processToolHead(toolHeadScythe, material, SHAPE_EXTRUDER_SCYTHE_HEAD, counter++, consumer); + // processToolHead(toolHeadFile, material, SHAPE_EXTRUDER_FILE_HEAD, counter++, consumer); + // processToolHead(toolHeadHammer, material, SHAPE_EXTRUDER_HAMMER_HEAD, counter++, consumer); + // processToolHead(toolHeadSaw, material, SHAPE_EXTRUDER_SAW_HEAD, counter++, consumer); + // processToolHead(toolHeadButcheryKnife, material, SHAPE_EXTRUDER_BUTCHERY_KNIFE_HEAD, counter++, consumer); + // processToolHead(toolHeadSpade, material, SHAPE_EXTRUDER_SPADE_HEAD, counter++, consumer); + // processToolHead(toolHeadPropick, material, SHAPE_EXTRUDER_PROPICK_HEAD, counter++, consumer); + // processToolHead(toolHeadJavelin, material, SHAPE_EXTRUDER_JAVELIN_HEAD, counter++, consumer); + // processToolHead(toolHeadChisel, material, SHAPE_EXTRUDER_CHISEL_HEAD, counter++, consumer); + // processToolHead(toolHeadMace, material, SHAPE_EXTRUDER_MACE_HEAD, counter, consumer); + // } + // } + // } + + // private static void registerTagPrefixHandlerRecipes(Consumer provider) { + // ingotDouble.executeHandler(provider, TFGPropertyKeys.TFC_PROPERTY, TFGRecipes::processDoubleIngot); + // plate.executeHandler(provider, TFGPropertyKeys.TFC_PROPERTY, TFGRecipes::processPlate); + // + // anvil.executeHandler(provider, TFGPropertyKeys.TFC_PROPERTY, TFGRecipes::proccessAnvil); + // lamp.executeHandler(provider, TFGPropertyKeys.TFC_PROPERTY, TFGRecipes::proccessLamp); + // lampUnfinished.executeHandler(provider, TFGPropertyKeys.TFC_PROPERTY, TFGRecipes::proccessUnfinishedLamp); + // trapdoor.executeHandler(provider, TFGPropertyKeys.TFC_PROPERTY, TFGRecipes::proccessTrapdoor); + // chain.executeHandler(provider, TFGPropertyKeys.TFC_PROPERTY, TFGRecipes::proccessChain); + // bell.executeHandler(provider, TFGPropertyKeys.TFC_PROPERTY, TFGRecipes::proccessBell); + // } + + // private static void processDoubleIngot(TagPrefix prefix, Material material, TFCProperty property, Consumer provider) { + // var ingotStack = ChemicalHelper.get(ingot, material); + // var doubleIngotStack = ChemicalHelper.get(prefix, material); + // + // BENDER_RECIPES.recipeBuilder(TFGCore.id(material.getName() + "_double_ingot")) + // .EUt(VA[ULV]).duration((int) material.getMass()) + // .inputItems(ingotStack.copyWithCount(2)) + // .circuitMeta(6) + // .outputItems(doubleIngotStack) + // .save(provider); + // + // EXTRACTOR_RECIPES.recipeBuilder(TFGCore.id("extract_" + material.getName() + "_double_ingot")) + // .EUt(VA[ULV]).duration((int) material.getMass()) + // .inputItems(doubleIngotStack) + // .outputFluids(material.getFluid(288)) + // .save(provider); + // + // MACERATOR_RECIPES.recipeBuilder(TFGCore.id("macerate_" + material.getName() + "_double_ingot")) + // .EUt(VA[ULV]).duration((int) material.getMass()) + // .inputItems(doubleIngotStack) + // .outputItems(dust, material, 2) + // .save(provider); + // } + + // private static void processPlate(TagPrefix prefix, Material material, TFCProperty property, Consumer provider) { + // var plateStack = ChemicalHelper.get(prefix, material); + // var doubleIngotStack = ChemicalHelper.get(ingotDouble, material); + // + // if (material.hasFlag(TFGMaterialFlags.GENERATE_DOUBLE_INGOTS)) { + // FORGE_HAMMER_RECIPES.recipeBuilder(TFGCore.id("hammer_" + material.getName() + "_plate")) + // .EUt(VA[ULV]).duration((int) material.getMass() * 4) + // .inputItems(doubleIngotStack) + // .outputItems(plateStack) + // .save(provider); + // } + // } + + // private static void proccessAnvil(TagPrefix prefix, Material material, TFCProperty property, Consumer provider) { + // var anvil = ChemicalHelper.get(prefix, material); + // var outputMaterial = property.getOutputMaterial() == null ? material : property.getOutputMaterial(); + // + // ALLOY_SMELTER_RECIPES.recipeBuilder(TFGCore.id(material.getName() + "_anvil_from_ingots")) + // .EUt(VA[ULV]).duration((int) material.getMass() * 6) + // .inputItems(ingot, outputMaterial, 14) + // .notConsumable(GTItems.SHAPE_MOLD_ANVIL) + // .outputItems(anvil) + // .save(provider); + // + // FLUID_SOLIDFICATION_RECIPES.recipeBuilder(TFGCore.id(material.getName() + "_anvil_from_fluid")) + // .EUt(VA[ULV]).duration((int) material.getMass() * 6) + // .inputFluids(outputMaterial.getFluid(2016)) + // .notConsumable(GTItems.SHAPE_MOLD_ANVIL) + // .outputItems(anvil) + // .save(provider); + // } + + // private static void proccessLamp(TagPrefix prefix, Material material, TFCProperty property, Consumer provider) { + // var finishedLamp = ChemicalHelper.get(prefix, material); + // var unfinishedLamp = ChemicalHelper.get(lampUnfinished, material); + // var outputMaterial = property.getOutputMaterial() == null ? material : property.getOutputMaterial(); + // + // ASSEMBLER_RECIPES.recipeBuilder(TFGCore.id(material.getName() + "_lamp")) + // .EUt(VA[ULV]).duration((int) outputMaterial.getMass() * 7) + // .inputItems(new ItemStack(TFCItems.LAMP_GLASS.get()), unfinishedLamp) + // .circuitMeta(12) + // .outputItems(finishedLamp) + // .save(provider); + // + // ASSEMBLER_RECIPES.recipeBuilder(TFGCore.id(material.getName() + "_lamp_from_liquid")) + // .EUt(VA[ULV]).duration((int) outputMaterial.getMass() * 7) + // .inputItems(unfinishedLamp) + // .inputFluids(Glass.getFluid(576)) + // .circuitMeta(13) + // .outputItems(finishedLamp) + // .save(provider); + // } + + // private static void proccessUnfinishedLamp(TagPrefix prefix, Material material, TFCProperty property, Consumer provider) { + // var unfinishedLamp = ChemicalHelper.get(prefix, material); + // var outputMaterial = property.getOutputMaterial() == null ? material : property.getOutputMaterial(); + // + // ALLOY_SMELTER_RECIPES.recipeBuilder(TFGCore.id(material.getName() + "_unfinished_lamp_from_ingots")) + // .EUt(VA[ULV]).duration((int) material.getMass() * 7) + // .inputItems(ingot, outputMaterial) + // .notConsumable(SHAPE_MOLD_UNFINISHED_LAMP) + // .outputItems(unfinishedLamp) + // .save(provider); + // + // FLUID_SOLIDFICATION_RECIPES.recipeBuilder(TFGCore.id(material.getName() + "_unfinished_lamp_from_fluid")) + // .EUt(VA[ULV]).duration((int) material.getMass() * 7) + // .inputFluids(outputMaterial.getFluid(144)) + // .notConsumable(SHAPE_MOLD_UNFINISHED_LAMP) + // .outputItems(unfinishedLamp) + // .save(provider); + // } + + // private static void proccessTrapdoor(TagPrefix prefix, Material material, TFCProperty property, Consumer provider) { + // var trapdoor = ChemicalHelper.get(prefix, material); + // var outputMaterial = property.getOutputMaterial() == null ? material : property.getOutputMaterial(); + // + // ALLOY_SMELTER_RECIPES.recipeBuilder(TFGCore.id(material.getName() + "_trapdoor_from_ingots")) + // .EUt(VA[ULV]).duration((int) material.getMass() * 6) + // .inputItems(ingot, outputMaterial) + // .notConsumable(SHAPE_MOLD_TRAPDOOR) + // .outputItems(trapdoor) + // .save(provider); + // + // FLUID_SOLIDFICATION_RECIPES.recipeBuilder(TFGCore.id(material.getName() + "_trapdoor_from_fluid")) + // .EUt(VA[ULV]).duration((int) material.getMass() * 6) + // .inputFluids(outputMaterial.getFluid(144)) + // .notConsumable(SHAPE_MOLD_TRAPDOOR) + // .outputItems(trapdoor) + // .save(provider); + // } + + // private static void proccessChain(TagPrefix prefix, Material material, TFCProperty property, Consumer provider) { + // var chain = ChemicalHelper.get(prefix, material); + // var outputMaterial = property.getOutputMaterial() == null ? material : property.getOutputMaterial(); + // + // ALLOY_SMELTER_RECIPES.recipeBuilder(TFGCore.id(material.getName() + "_chain_from_ingots")) + // .EUt(VA[ULV]).duration((int) material.getMass() * 2) + // .inputItems(ingot, outputMaterial) + // .notConsumable(SHAPE_MOLD_CHAIN) + // .outputItems(chain.copyWithCount(9)) + // .save(provider); + // + // FLUID_SOLIDFICATION_RECIPES.recipeBuilder(TFGCore.id(material.getName() + "_chain_from_fluid")) + // .EUt(VA[ULV]).duration((int) material.getMass() * 2) + // .inputFluids(outputMaterial.getFluid(144)) + // .notConsumable(SHAPE_MOLD_CHAIN) + // .outputItems(chain.copyWithCount(9)) + // .save(provider); + // } + + // private static void proccessBell(TagPrefix prefix, Material material, TFCProperty property, Consumer provider) { + // var bell = ChemicalHelper.get(prefix, material); + // var outputMaterial = property.getOutputMaterial() == null ? material : property.getOutputMaterial(); + // + // + // ALLOY_SMELTER_RECIPES.recipeBuilder(TFGCore.id(material.getName() + "_bell_from_ingots")) + // .EUt(VA[ULV]).duration((int) material.getMass() * 4) + // .inputItems(ingot, outputMaterial) + // .notConsumable(SHAPE_MOLD_BELL) + // .outputItems(bell) + // .save(provider); + // + // FLUID_SOLIDFICATION_RECIPES.recipeBuilder(TFGCore.id(material.getName() + "_bell_from_fluid")) + // .EUt(VA[ULV]).duration((int) material.getMass() * 4) + // .inputFluids(outputMaterial.getFluid(144)) + // .notConsumable(SHAPE_MOLD_BELL) + // .outputItems(bell) + // .save(provider); + // } + + // private static void processToolHead(TagPrefix prefix, Material material, ItemEntry extruderShape, int circuitValue, Consumer consumer) { + // var output = ChemicalHelper.get(prefix, material); + // if (output.isEmpty()) return; + // + // if (material.hasProperty(PropertyKey.INGOT)) { + // EXTRUDER_RECIPES.recipeBuilder(TFGCore.id("extrude_" + material.getName() + "_ingot_to_" + prefix.name().toLowerCase() + "_head")) + // .duration(12).EUt(32) + // .notConsumable(extruderShape) + // .inputItems(ingot, material, (int) (prefix.materialAmount() / GTValues.M)) + // .outputItems(output) + // .save(consumer); + // } else if (material.hasProperty(PropertyKey.GEM)) { + // LASER_ENGRAVER_RECIPES.recipeBuilder(TFGCore.id("engrave_" + material.getName() + "_gem_to_" + prefix.name().toLowerCase() + "_head")) + // .duration(12).EUt(32) + // .circuitMeta(circuitValue) + // .notConsumable(ChemicalHelper.get(TagPrefix.lens, Glass)) + // .inputItems(gem, material, (int) (prefix.materialAmount() / GTValues.M)) + // .outputItems(output) + // .save(consumer); + // } + // } + + + /** + * Замена ванильного камня в рецепте ступки на тфк камень. + */ +// @Redirect(method = "registerMortarRecipes", at = @At(value = "INVOKE", target = "Lcom/gregtechceu/gtceu/data/recipe/generated/ToolRecipeHandler;addToolRecipe(Ljava/util/function/Consumer;Lcom/gregtechceu/gtceu/api/data/chemical/material/Material;Lcom/gregtechceu/gtceu/api/item/tool/GTToolType;Z[Ljava/lang/Object;)V"), remap = false) +// private static void tfg$registerMortarRecipes$toolRecipeHandler$addToolRecipe(Consumer provider, Material material, GTToolType tool, boolean mirrored, Object[] recipe) { +// addToolRecipe(provider, material, GTToolType.MORTAR, false, +// " I ", "SIS", "SSS", +// 'I', new UnificationEntry(material.hasProperty(PropertyKey.GEM) ? TagPrefix.gem : TagPrefix.ingot, material), +// 'S', TFGTags.Items.RawRockBlocks); +// } + + /** + * Отключение рецептов MiningHammer, только для металлов, которые дублирует TFC. + */ +// @Redirect(method = "processTool", at = @At(value = "INVOKE", target = "Lcom/gregtechceu/gtceu/data/recipe/generated/ToolRecipeHandler;addToolRecipe(Ljava/util/function/Consumer;Lcom/gregtechceu/gtceu/api/data/chemical/material/Material;Lcom/gregtechceu/gtceu/api/item/tool/GTToolType;Z[Ljava/lang/Object;)V", ordinal = 0), remap = false) +// private static void tfg$processMiningHammer$toolRecipeHandler$addToolRecipe(Consumer provider, Material material, GTToolType tool, boolean mirrored, Object[] recipe) { +// if (!material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) +// tfg$addToolRecipe(provider, material, GTToolType.MINING_HAMMER, TFGTagPrefix.toolHeadMiningHammer); +// else +// new TFGAdvancedShapedToolRecipeBuilder("mining_hammer_" + material.getName()) +// .input(ChemicalHelper.get(TFGTagPrefix.toolHeadMiningHammer, material)) +// .output(ToolHelper.get(GTToolType.MINING_HAMMER, material)) +// .save(provider); +// } + + /** + * Отключение рецептов Spade, только для металлов, которые дублирует TFC. + */ +// @Redirect(method = "processTool", at = @At(value = "INVOKE", target = "Lcom/gregtechceu/gtceu/data/recipe/generated/ToolRecipeHandler;addToolRecipe(Ljava/util/function/Consumer;Lcom/gregtechceu/gtceu/api/data/chemical/material/Material;Lcom/gregtechceu/gtceu/api/item/tool/GTToolType;Z[Ljava/lang/Object;)V", ordinal = 1), remap = false) +// private static void processSpade$toolRecipeHandler$addToolRecipe(Consumer provider, Material material, GTToolType tool, boolean mirrored, Object[] recipe) { +// if (!material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) +// tfg$addToolRecipe(provider, material, GTToolType.SPADE, TFGTagPrefix.toolHeadSpade); +// else +// new TFGAdvancedShapedToolRecipeBuilder("spade_" + material.getName()) +// .input(ChemicalHelper.get(TFGTagPrefix.toolHeadSpade, material)) +// .output(ToolHelper.get(GTToolType.SPADE, material)) +// .save(provider); +// } + + /** + * Отключение рецептов Saw, только для металлов, которые дублирует TFC. + */ +// @Redirect(method = "processTool", at = @At(value = "INVOKE", target = "Lcom/gregtechceu/gtceu/data/recipe/generated/ToolRecipeHandler;addToolRecipe(Ljava/util/function/Consumer;Lcom/gregtechceu/gtceu/api/data/chemical/material/Material;Lcom/gregtechceu/gtceu/api/item/tool/GTToolType;Z[Ljava/lang/Object;)V", ordinal = 2), remap = false) +// private static void tfg$processSaw$toolRecipeHandler$addToolRecipe(Consumer provider, Material material, GTToolType tool, boolean mirrored, Object[] recipe) { +// if (!material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) +// tfg$addToolRecipe(provider, material, GTToolType.SAW, TFGTagPrefix.toolHeadSaw); +// else +// new TFGAdvancedShapedToolRecipeBuilder("saw_" + material.getName()) +// .input(ChemicalHelper.get(TFGTagPrefix.toolHeadSaw, material)) +// .output(ToolHelper.get(GTToolType.SAW, material)) +// .save(provider); +// } + + /** + * Отключение рецептов Axe, только для металлов, которые дублирует TFC. + */ +// @Redirect(method = "processTool", at = @At(value = "INVOKE", target = "Lcom/gregtechceu/gtceu/data/recipe/generated/ToolRecipeHandler;addToolRecipe(Ljava/util/function/Consumer;Lcom/gregtechceu/gtceu/api/data/chemical/material/Material;Lcom/gregtechceu/gtceu/api/item/tool/GTToolType;Z[Ljava/lang/Object;)V", ordinal = 3), remap = false) +// private static void tfg$processAxe$toolRecipeHandler$addToolRecipe(Consumer provider, Material material, GTToolType tool, boolean mirrored, Object[] recipe) { +// if (!material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) +// tfg$addToolRecipe(provider, material, GTToolType.AXE, TFGTagPrefix.toolHeadAxe); +// else +// new TFGAdvancedShapedToolRecipeBuilder("axe_" + material.getName()) +// .input(ChemicalHelper.get(TFGTagPrefix.toolHeadAxe, material)) +// .output(ToolHelper.get(GTToolType.AXE, material)) +// .save(provider); +// } + + /** + * Отключение рецептов Hoe, только для металлов, которые дублирует TFC. + */ +// @Redirect(method = "processTool", at = @At(value = "INVOKE", target = "Lcom/gregtechceu/gtceu/data/recipe/generated/ToolRecipeHandler;addToolRecipe(Ljava/util/function/Consumer;Lcom/gregtechceu/gtceu/api/data/chemical/material/Material;Lcom/gregtechceu/gtceu/api/item/tool/GTToolType;Z[Ljava/lang/Object;)V", ordinal = 4), remap = false) +// private static void tfg$processHoe$toolRecipeHandler$addToolRecipe(Consumer provider, Material material, GTToolType tool, boolean mirrored, Object[] recipe) { +// if (!material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) +// tfg$addToolRecipe(provider, material, GTToolType.HOE, TFGTagPrefix.toolHeadHoe); +// else +// new TFGAdvancedShapedToolRecipeBuilder("hoe_" + material.getName()) +// .input(ChemicalHelper.get(TFGTagPrefix.toolHeadHoe, material)) +// .output(ToolHelper.get(GTToolType.HOE, material)) +// .save(provider); +// } + + /** + * Отключение рецептов Pickaxe, только для металлов, которые дублирует TFC. + */ +// @Redirect(method = "processTool", at = @At(value = "INVOKE", target = "Lcom/gregtechceu/gtceu/data/recipe/generated/ToolRecipeHandler;addToolRecipe(Ljava/util/function/Consumer;Lcom/gregtechceu/gtceu/api/data/chemical/material/Material;Lcom/gregtechceu/gtceu/api/item/tool/GTToolType;Z[Ljava/lang/Object;)V", ordinal = 5), remap = false) +// private static void tfg$processPickaxe$toolRecipeHandler$addToolRecipe(Consumer provider, Material material, GTToolType tool, boolean mirrored, Object[] recipe) { +// if (!material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) +// tfg$addToolRecipe(provider, material, GTToolType.PICKAXE, TFGTagPrefix.toolHeadPickaxe); +// else +// new TFGAdvancedShapedToolRecipeBuilder("pickaxe_" + material.getName()) +// .input(ChemicalHelper.get(TFGTagPrefix.toolHeadPickaxe, material)) +// .output(ToolHelper.get(GTToolType.PICKAXE, material)) +// .save(provider); +// } + + /** + * Отключение рецептов Scythe, только для металлов, которые дублирует TFC. + */ +// @Redirect(method = "processTool", at = @At(value = "INVOKE", target = "Lcom/gregtechceu/gtceu/data/recipe/generated/ToolRecipeHandler;addToolRecipe(Ljava/util/function/Consumer;Lcom/gregtechceu/gtceu/api/data/chemical/material/Material;Lcom/gregtechceu/gtceu/api/item/tool/GTToolType;Z[Ljava/lang/Object;)V", ordinal = 6), remap = false) +// private static void tfg$processScythe$toolRecipeHandler$addToolRecipe(Consumer provider, Material material, GTToolType tool, boolean mirrored, Object[] recipe) { +// if (!material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) +// tfg$addToolRecipe(provider, material, GTToolType.SCYTHE, TFGTagPrefix.toolHeadScythe); +// else +// new TFGAdvancedShapedToolRecipeBuilder("scythe_" + material.getName()) +// .input(ChemicalHelper.get(TFGTagPrefix.toolHeadScythe, material)) +// .output(ToolHelper.get(GTToolType.SCYTHE, material)) +// .save(provider); +// } + + /** + * Отключение рецептов Shovel, только для металлов, которые дублирует TFC. + */ +// @Redirect(method = "processTool", at = @At(value = "INVOKE", target = "Lcom/gregtechceu/gtceu/data/recipe/generated/ToolRecipeHandler;addToolRecipe(Ljava/util/function/Consumer;Lcom/gregtechceu/gtceu/api/data/chemical/material/Material;Lcom/gregtechceu/gtceu/api/item/tool/GTToolType;Z[Ljava/lang/Object;)V", ordinal = 7), remap = false) +// private static void tfg$processShovel$toolRecipeHandler$addToolRecipe(Consumer provider, Material material, GTToolType tool, boolean mirrored, Object[] recipe) { +// if (!material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) +// tfg$addToolRecipe(provider, material, GTToolType.SHOVEL, TFGTagPrefix.toolHeadShovel); +// else +// new TFGAdvancedShapedToolRecipeBuilder("shovel_" + material.getName()) +// .input(ChemicalHelper.get(TFGTagPrefix.toolHeadShovel, material)) +// .output(ToolHelper.get(GTToolType.SHOVEL, material)) +// .save(provider); +// } + + /** + * Отключение рецептов Sword, только для металлов, которые дублирует TFC. + */ +// @Redirect(method = "processTool", at = @At(value = "INVOKE", target = "Lcom/gregtechceu/gtceu/data/recipe/generated/ToolRecipeHandler;addToolRecipe(Ljava/util/function/Consumer;Lcom/gregtechceu/gtceu/api/data/chemical/material/Material;Lcom/gregtechceu/gtceu/api/item/tool/GTToolType;Z[Ljava/lang/Object;)V", ordinal = 8), remap = false) +// private static void tfg$processSword$toolRecipeHandler$addToolRecipe(Consumer provider, Material material, GTToolType tool, boolean mirrored, Object[] recipe) { +// if (!material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) +// tfg$addToolRecipe(provider, material, GTToolType.SWORD, TFGTagPrefix.toolHeadSword); +// else +// new TFGAdvancedShapedToolRecipeBuilder("sword_" + material.getName()) +// .input(ChemicalHelper.get(TFGTagPrefix.toolHeadSword, material)) +// .output(ToolHelper.get(GTToolType.SWORD, material)) +// .save(provider); +// } + + /** + * Отключение рецептов Hammer, только для металлов, которые дублирует TFC. + */ +// @Redirect(method = "processTool", at = @At(value = "INVOKE", target = "Lcom/gregtechceu/gtceu/data/recipe/generated/ToolRecipeHandler;addToolRecipe(Ljava/util/function/Consumer;Lcom/gregtechceu/gtceu/api/data/chemical/material/Material;Lcom/gregtechceu/gtceu/api/item/tool/GTToolType;Z[Ljava/lang/Object;)V", ordinal = 9), remap = false) +// private static void tfg$processHardHammer$toolRecipeHandler$addToolRecipe(Consumer provider, Material material, GTToolType tool, boolean mirrored, Object[] recipe) { +// if (!material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) +// tfg$addToolRecipe(provider, material, GTToolType.HARD_HAMMER, TFGTagPrefix.toolHeadHammer); +// else +// new TFGAdvancedShapedToolRecipeBuilder("hammer_" + material.getName()) +// .input(ChemicalHelper.get(TFGTagPrefix.toolHeadHammer, material)) +// .output(ToolHelper.get(GTToolType.HARD_HAMMER, material)) +// .save(provider); +// } + + /** + * Отключение рецептов File, только для металлов, которые дублирует TFC. + */ +// @Redirect(method = "processTool", at = @At(value = "INVOKE", target = "Lcom/gregtechceu/gtceu/data/recipe/generated/ToolRecipeHandler;addToolRecipe(Ljava/util/function/Consumer;Lcom/gregtechceu/gtceu/api/data/chemical/material/Material;Lcom/gregtechceu/gtceu/api/item/tool/GTToolType;Z[Ljava/lang/Object;)V", ordinal = 10), remap = false) +// private static void tfg$processFile$toolRecipeHandler$addToolRecipe(Consumer provider, Material material, GTToolType tool, boolean mirrored, Object[] recipe) { +// if (!material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) +// tfg$addToolRecipe(provider, material, GTToolType.FILE, TFGTagPrefix.toolHeadFile); +// else +// new TFGAdvancedShapedToolRecipeBuilder("file_" + material.getName()) +// .input(ChemicalHelper.get(TFGTagPrefix.toolHeadFile, material)) +// .output(ToolHelper.get(GTToolType.FILE, material)) +// .save(provider); +// } + + /** + * Отключение рецептов Knife, только для металлов, которые дублирует TFC. + */ +// @Redirect(method = "processTool", at = @At(value = "INVOKE", target = "Lcom/gregtechceu/gtceu/data/recipe/generated/ToolRecipeHandler;addToolRecipe(Ljava/util/function/Consumer;Lcom/gregtechceu/gtceu/api/data/chemical/material/Material;Lcom/gregtechceu/gtceu/api/item/tool/GTToolType;Z[Ljava/lang/Object;)V", ordinal = 11), remap = false) +// private static void tfg$processKnife$toolRecipeHandler$addToolRecipe(Consumer provider, Material material, GTToolType tool, boolean mirrored, Object[] recipe) { +// if (!material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) +// tfg$addToolRecipe(provider, material, GTToolType.KNIFE, TFGTagPrefix.toolHeadKnife); +// else +// new TFGAdvancedShapedToolRecipeBuilder("knife_" + material.getName()) +// .input(ChemicalHelper.get(TFGTagPrefix.toolHeadKnife, material)) +// .output(ToolHelper.get(GTToolType.KNIFE, material)) +// .save(provider); +// } + + /** + * Отключение рецептов ButcheryKnife, только для металлов, которые дублирует TFC. + */ +// @Redirect(method = "processTool", at = @At(value = "INVOKE", target = "Lcom/gregtechceu/gtceu/data/recipe/generated/ToolRecipeHandler;addToolRecipe(Ljava/util/function/Consumer;Lcom/gregtechceu/gtceu/api/data/chemical/material/Material;Lcom/gregtechceu/gtceu/api/item/tool/GTToolType;Z[Ljava/lang/Object;)V", ordinal = 13), remap = false) +// private static void tfg$processButcheryKnife$toolRecipeHandler$addToolRecipe(Consumer provider, Material material, GTToolType tool, boolean mirrored, Object[] recipe) { +// if (!material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) +// tfg$addToolRecipe(provider, material, GTToolType.BUTCHERY_KNIFE, TFGTagPrefix.toolHeadButcheryKnife); +// else +// new TFGAdvancedShapedToolRecipeBuilder("butchery_knife_" + material.getName()) +// .input(ChemicalHelper.get(TFGTagPrefix.toolHeadButcheryKnife, material)) +// .output(ToolHelper.get(GTToolType.BUTCHERY_KNIFE, material)) +// .save(provider); +// } + +// @Unique +// private static void tfg$addToolRecipe(Consumer provider, Material material, GTToolType toolType, TagPrefix tagPrefix) { +// addToolRecipe(provider, material, toolType, false, "H", "S", 'H', new UnificationEntry(tagPrefix, material), 'S', TFGTags.Items.WoodenSticks); +// } \ No newline at end of file diff --git a/kubejs/server_scripts/main_server_script.js b/kubejs/server_scripts/main_server_script.js index 200c45092..f976ab4d1 100644 --- a/kubejs/server_scripts/main_server_script.js +++ b/kubejs/server_scripts/main_server_script.js @@ -12,7 +12,7 @@ ServerEvents.tags('item', event => { // registerCreateAdditionsItemTags(event) // registerExtendedAE2ItemTags(event) // registerFirmaCivItemTags(event) - // registerFirmaLifeItemTags(event) + registerFirmaLifeItemTags(event) // registerFramedBlocksItemTags(event) // registerFTBQuestsItemTags(event) // registerGregTechItemTags(event) @@ -22,7 +22,7 @@ ServerEvents.tags('item', event => { // registerHotOrNotItemTags(event) // registerRailWaysItemTags(event) // registerSophisticatedBackpacksItemTags(event) - // registerTFCItemTags(event) + registerTFCItemTags(event) }) /** @@ -37,7 +37,7 @@ ServerEvents.tags('block', event => { // registerCreateAdditionsBlockTags(event) // registerExtendedAE2BlockTags(event) // registerFirmaCivBlockTags(event) - // registerFirmaLifeBlockTags(event) + registerFirmaLifeBlockTags(event) // registerFramedBlocksBlockTags(event) // registerFTBQuestsBlockTags(event) // registerGregTechBlockTags(event) @@ -47,7 +47,7 @@ ServerEvents.tags('block', event => { // registerHotOrNotBlockTags(event) // registerRailWaysBlockTags(event) // registerSophisticatedBackpacksBlockTags(event) - // registerTFCBlockTags(event) + registerTFCBlockTags(event) }) /** @@ -56,7 +56,7 @@ ServerEvents.tags('block', event => { ServerEvents.tags('fluid', event => { // registerCreateFluidTags(event) // registerCreateAdditionsFluidTags(event) - // registerFirmaLifeBlockTags(event) + registerFirmaLifeBlockTags(event) // registerTFCFluidTags(event) }) @@ -116,7 +116,7 @@ ServerEvents.recipes(event => { // registerFirmaLifeRecipes(event) // registerFramedBlocksRecipes(event) // registerFTBQuestsRecipes(event) - // registerGregTechRecipes(event) + registerGregTechRecipes(event) // registerHandGliderRecipes(event) // registerHotOrNotRecipes(event) // registerMegaCellsRecipes(event) @@ -126,7 +126,7 @@ ServerEvents.recipes(event => { // registerRailWaysRecipes(event) // registerSophisticatedBackpacksRecipes(event) // registerTfceaRecipes(event) - // registerTFCRecipes(event) + registerTFCRecipes(event) // registerTFCGroomingStationRecipes(event) // registerToolBeltRecipes(event) // registerTreeTapRecipes(event) @@ -141,7 +141,6 @@ LootJS.modifiers((event) => { registerGregTechLoots(event) }) - /** * Событие регистрации рудных жил GregTech. */ diff --git a/kubejs/server_scripts/tfc/recipes.js b/kubejs/server_scripts/tfc/recipes.js index af4127197..c3bb07967 100644 --- a/kubejs/server_scripts/tfc/recipes.js +++ b/kubejs/server_scripts/tfc/recipes.js @@ -1,6 +1,10 @@ // priority: 0 const registerTFCRecipes = (event) => { + +} + +const registerTFCRecipes1 = (event) => { //return; TODO тут баг //#region Металлы @@ -3310,3 +3314,55 @@ const registerTFCRecipes = (event) => { //#endregion } + +// { +// "category": "minecraft:campfire_cooking" +// }, +// { +// "category": "minecraft:brewing" +// }, +// { +// "category": "minecraft:stonecutting" +// }, +// { +// "category": "emi:anvil_repairing" +// }, +// { +// "category": "emi:world_interaction" +// }, +// { +// "category": "gtceu:primitive_blast_furnace" +// }, +// { +// "category": "create:mystery_conversion" +// }, +// { +// "category": "jumbofurnace:jumbo_furnace_upgrade" +// }, +// { +// "category": "jumbofurnace:jumbo_smelting" +// }, +// { +// "category": "emi:composting" +// }, +// { +// "category": "emi:fuel" +// }, +// { +// "id": "/emi:/crafting/repairing/[^*]+/" +// }, +// { +// "id": "/emi:/grindstone/repairing/minecraft/[^*]+/" +// }, +// { +// "id": "/emi:/crafting/shulker_box_dying/minecraft/[^*]+/" +// }, +// { +// "id": "/create:create.toolbox.color.block.create.[^*]+/" +// }, +// { +// "id": "/sophisticatedbackpacks:single_color_[^*]+/" +// }, +// { +// "id": "sophisticatedbackpacks:multiple_colors" +// } \ No newline at end of file diff --git a/kubejs/server_scripts/tfc/tags.js b/kubejs/server_scripts/tfc/tags.js index bec616794..3fbba9a36 100644 --- a/kubejs/server_scripts/tfc/tags.js +++ b/kubejs/server_scripts/tfc/tags.js @@ -1,6 +1,28 @@ // priority: 0 const registerTFCItemTags = (event) => { + //#region Удаление тегов и скрытие руд TFC + const ALL_TFC_ORES = Ingredient.of(/tfc:ore\/[^*]+\/[^*]+/).itemIds + + ALL_TFC_ORES.forEach(element => { + event.removeAllTagsFrom(element) + event.add('c:hidden_from_recipe_viewers', element) + }) + //#endregion +} + +const registerTFCBlockTags = (event) => { + //#region Удаление тегов и скрытие руд TFC + const allTFCOres = Ingredient.of(/tfc:ore\/[^*]+\/[^*]+/).itemIds + + allTFCOres.forEach(element => { + event.removeAllTagsFrom(element) + event.add('c:hidden_from_recipe_viewers', element) + }) + //#endregion +} + +const registerTFCItemTags1 = (event) => { // Теги для соответствия инструментов TFC и GT GTMaterialRegistry.getRegisteredMaterials().forEach(material => { @@ -198,7 +220,7 @@ const registerTFCItemTags = (event) => { event.removeAllTagsFrom("/tfc:ore/[^*]+/[^*]+/") } -const registerTFCBlockTags = (event) => { +const registerTFCBlockTags1 = (event) => { // Теги для каменных ступенек тфк global.TFC_STONE_TYPES.forEach(stoneTypeName => { global.TFC_ROCK_SLAB_BLOCK_TYPES.forEach(slabType => { diff --git a/kubejs/startup_scripts/firmalife/constants.js b/kubejs/startup_scripts/firmalife/constants.js index 27b131cf2..b4e032881 100644 --- a/kubejs/startup_scripts/firmalife/constants.js +++ b/kubejs/startup_scripts/firmalife/constants.js @@ -2,7 +2,7 @@ /** * Список хранит предметы, - * у которых должны быть удалены тэги и они должны быть скрыты в REI. + * у которых должны быть удалены тэги и они должны быть скрыты в EMI. */ global.FIRMALIFE_DISABLED_ITEMS = [ @@ -37,6 +37,10 @@ global.FIRMALIFE_DISABLED_ITEMS = [ 'firmalife:pumping_station' ]; +/** + * Список хранит предметы, + * у которых должны быть скрыты в EMI. + */ global.FIRMALIFE_HIDED_ITEMS = [ 'firmalife:weathered_copper_greenhouse_wall', 'firmalife:weathered_copper_greenhouse_panel_wall', @@ -93,10 +97,10 @@ global.FIRMALIFE_HIDED_ITEMS = [ 'firmalife:weathered_treated_wood_greenhouse_port' ]; - -global.FIRMALIFE_ORE_MATERIALS = [ - 'chromite' -]; +//todo: to remove +// global.FIRMALIFE_ORE_MATERIALS = [ +// 'chromite' +// ]; global.FIRMALIFE_GREENHOUSE_FRUIT_RECIPE_COMPONENTS = [ { input: 'firmalife:plant/cocoa_sapling', fluid_amount: 8000, output: '3x firmalife:food/cocoa_beans', name: 'cocoa_beans' },