diff --git a/.gitignore b/.gitignore index 8964861df..e5ae417b1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,13 +1,17 @@ # Configs config/jei/world/* -config/roughlyenoughitems/* +config/roughlyenoughitems/changelog.txt +config/roughlyenoughitems/hints.json +config/roughlyenoughitems/pinyin.properties +config/roughlyenoughitems/pinyin_double.properties config/oculus.properties config/smoothboot.json config/fml.toml config/forge-client.toml config/chiselsandbits-client.toml config/chiselsandbits-common.toml +config/xaerominimap_entities.json # .minecraft crash-reports/* diff --git a/CHANGELOG.md b/CHANGELOG.md index 67418e550..1a3a6fdb3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,34 @@ # Changelog +## [Unreleased] +### Изменения +- **ВАЖНОЕ ОБНОВЛЕНИЕ. В ИДЕАЛЕ СТОИТ ПЕРЕСОЗДАТЬ МИР И НАЧАТЬ ИГРАТЬ СНАЧАЛА. ЕСЛИ У ВАС КАКИЕ-ТО ОШИБКИ В СТАРЫХ МИРАХ, НЕ ПИШИТЕ МНЕ ПОЖАЛУЙСТА.** +- Добавлено множество рецептов для оголовий биты TFC (Допустим крафт и раскрафт через GTCEu машины). +- Добавлено множество рецептов для оголовий стамески TFC (Допустим крафт и раскрафт через GTCEu машины). +- Добавлено множество рецептов для оголовий кирки шахтера TFC (Допустим крафт и раскрафт через GTCEu машины). +- Добавлено множество рецептов для оголовий копья TFC (Допустим крафт и раскрафт через GTCEu машины). +- Перенастроена система металлов (снова и в последний раз), теперь cast_iron из TFC это ванильной железо. Да и вообщем мы изабвились от TFC слитков и другой херни. +- Добавлено множество рецептов раскрафта пылей, руд GTCEu в металл TFC. +- Добавлены новые 4 формы экструдера. +- Добавлены собственные двойные слитки. +- Исправлены рецепты оголовий из гемов в extruder. +- Исправлен баг, когда с руды в некоторых случаях выпадал предмет с пустым тегом. +- Исправлены рецепты дробления некоторых слитков в пустоту в машинах create. +- Исправлены рецепты с некоторыми пустыми инструментами. +- EMI заменен обратно на REI (вызывает дикие фризы при открытии меню квестов, не имеет возможности скрытий категорий и отображает неправильно некоторые исправленные рецепты). Поддержка JEI + EMI оставлена в коде, если вы замените REI на EMI + JEI скрытие предметов и другие некоторые функции продолжат работать. +- Расширены рецепты в Лазер Энгрейвере. +- Исправлен повышенный выход металла из бедной руды. +- Исправлена ситуация, когда нельзя было получить пыль графита на старте игры, теперь можно выкопать руду молотом и получить ее дробленный вариант, после, раздробить снова, промыть и раздробить, получив порошек. +- Добавлены двойные слитки для Оловянного сплава. +- Добавлен дроп, материала камня из руды. +- Исправлен баг, когда нельзя было расплавить предметы из оловянного сплава в тигле. +- Добавлены рецепты переработки пшеницы в солому + пшеничные зерна с шансом выхода. +- Исправлен конфликт рецептов земли и удобрения. +- В каолинитовые блоки теперь также как и в латунные можно отливать стекло. +- Исправлен рецепт кирпича для коксовой печи. +- Исправлены баги с инструментами (вроде бы), если у вас, что-то не работает, **ПОЖАЛУЙСТА СОЗДАЙТЕ НОВЫЙ МИР И ПРОТЕСТИРУЙТЕ В НОВОМ МИРЕ**. +- Возможно что-то еще, о чем забыл. + ## [0.5.1] - 12.01.2024 ### Изменения - Исправлен квест на наковальни. diff --git a/config/embeddium++.toml b/config/embeddium++.toml index c7ccf9e93..2cf342809 100644 --- a/config/embeddium++.toml +++ b/config/embeddium++.toml @@ -37,7 +37,7 @@ #Toggles Minecraft Fonts shadows #Depending of the case may increase performance #Gives a flat style text - fontShadows = false + fontShadows = true [embeddiumplus.performance.distanceCulling] diff --git a/config/ftbquests/quests/chapters/primitive_age.snbt b/config/ftbquests/quests/chapters/primitive_age.snbt index 19cc2bfe9..a24b34622 100644 --- a/config/ftbquests/quests/chapters/primitive_age.snbt +++ b/config/ftbquests/quests/chapters/primitive_age.snbt @@ -2041,7 +2041,7 @@ ticks: 0L } } - id: "tfc:metal/double_ingot/copper" + id: "gtceu:copper_double_ingot" } type: "item" }] @@ -2156,7 +2156,7 @@ ticks: 0L } } - id: "tfc:metal/double_ingot/wrought_iron" + id: "gtceu:wrought_iron_double_ingot" } type: "item" }] @@ -2177,7 +2177,7 @@ ticks: 0L } } - id: "tfc:metal/double_ingot/steel" + id: "gtceu:steel_double_ingot" } type: "item" }] @@ -2198,7 +2198,7 @@ ticks: 0L } } - id: "tfc:metal/double_ingot/black_steel" + id: "gtceu:black_steel_double_ingot" } type: "item" }] @@ -2209,13 +2209,12 @@ dependencies: ["1FFE279F43B0BA45"] id: "43C737BF10D3AC0E" tasks: [{ - count: 7L - id: "221753242C9F612A" + id: "06B99CF0B7120D13" item: { Count: 1b id: "ftbfiltersystem:smart_filter" tag: { - "ftbfiltersystem:filter": "or(item(tfc:metal/double_ingot/bismuth_bronze)item(tfc:metal/double_ingot/bronze)item(tfc:metal/double_ingot/black_bronze))" + "ftbfiltersystem:filter": "or(item(gtceu:bismuth_bronze_double_ingot)item(gtceu:bronze_double_ingot)item(gtceu:black_bronze_double_ingot))" } } title: "Двойные слитки из любой бронзы" @@ -3395,7 +3394,7 @@ ticks: 0L } } - id: "tfc:metal/double_ingot/red_steel" + id: "gtceu:red_steel_double_ingot" } type: "item" }] @@ -3416,7 +3415,7 @@ ticks: 0L } } - id: "tfc:metal/double_ingot/blue_steel" + id: "gtceu:blue_steel_double_ingot" } type: "item" }] diff --git a/config/roughlyenoughitems/config.json5 b/config/roughlyenoughitems/config.json5 new file mode 100644 index 000000000..f79d21c72 --- /dev/null +++ b/config/roughlyenoughitems/config.json5 @@ -0,0 +1,170 @@ +{ + "basics": { + "favorites": [], + "hiddenFavorites": [], + "displayHistory": [], + // Declares whether cheating mode is on. + "cheating": true, + "favoritesEnabled": true, + "keyBindings": { + "recipeKeybind": { + "keyCode": "key.keyboard.r", + "modifier": 0 + }, + "usageKeybind": { + "keyCode": "key.keyboard.u", + "modifier": 0 + }, + "hideKeybind": { + "keyCode": "key.keyboard.o", + "modifier": 2 + }, + "previousPageKeybind": { + "keyCode": "key.keyboard.unknown", + "modifier": 0 + }, + "nextPageKeybind": { + "keyCode": "key.keyboard.unknown", + "modifier": 0 + }, + "focusSearchFieldKeybind": { + "keyCode": "key.keyboard.unknown", + "modifier": 0 + }, + "copyRecipeIdentifierKeybind": { + "keyCode": "key.mouse.middle", + "modifier": 0 + }, + "favoriteKeybind": { + "keyCode": "key.keyboard.a", + "modifier": 0 + }, + "exportImageKeybind": { + "keyCode": "key.keyboard.f8", + "modifier": 0 + }, + "previousScreenKeybind": { + "keyCode": "key.keyboard.backspace", + "modifier": 0 + } + }, + // Declares whether REI is visible. + "overlayVisible": true, + "cheatingStyle": "GRAB", + "motion": { + "favoritesAnimation": true + } + }, + "advanced": { + "filtering": { + "shouldFilterDisplays": true, + "filteringRules": [ + "{id:\"roughlyenoughitems:manual\",rule:{}}", + "{id:\"roughlyenoughitems:basic\",rule:{}}", + "{id:\"roughlyenoughitems:hidden_from_recipe_viewers\",rule:{}}" + ], + "filteringQuickCraftCategories": { }, + "filteredStacks": [] + }, + "enableJeiCompatibilityLayer": true, + "tooltips": { + // Declares whether REI should append mod names to entries. + "appendModNames": true, + // Declares whether favorites tooltip should be displayed. + "displayFavoritesTooltip": false, + "displayIMEHints": true + }, + "layout": { + // The ordering of the items on the entry panel. + "entryPanelOrdering": "REGISTRY_ASCENDING", + // Declares the maximum amount of recipes displayed in a page if possible. + "maxRecipesPerPage": 8, + // Declares the maximum amount of recipes displayed in a page if possible. + "maxRecipesPageHeight": 300, + // Declares whether entry rendering time should be debugged. + "debugRenderTimeRequired": false, + // Merges displays with equal contents under 1 display. + "mergeDisplayUnderOne": true, + "favoriteAddWidgetMode": "ALWAYS_VISIBLE" + }, + "accessibility": { + "entrySize": 1.0, + // Declares the position of the entry panel. + "displayPanelLocation": "RIGHT", + // Declares how the scrollbar in composite screen should act. + "compositeScrollBarPermanent": false, + "toastDisplayedOnCopyIdentifier": true, + // Declares whether REI should use compact tabs for categories. + "useCompactTabs": true, + // Declares whether REI should use compact tab buttons for categories. + "useCompactTabButtons": false + }, + "search": { + // Declares whether search time should be debugged. + "debugSearchTimeRequired": false, + // Declares whether REI should search async. + "asyncSearch": true, + // Declares how many entries should be grouped one async search. + "asyncSearchPartitionSize": 100, + "patchAsyncThreadCrash": true, + "tooltipSearch": "ALWAYS", + "tagSearch": "PREFIX", + "identifierSearch": "ALWAYS", + "modSearch": "PREFIX" + }, + "commands": { + // Declares the command used to change gamemode. + "gamemodeCommand": "/gamemode {gamemode}", + // Declares the command used in servers to cheat items. + "giveCommand": "/give {player_name} {item_identifier}{nbt} {count}", + // Declares the command used to change weather. + "weatherCommand": "/weather {weather}", + // Declares the command used to change time. + "timeCommand": "/time set {time}" + }, + "miscellaneous": { + // Declares whether arrows in containers should be clickable. + "clickableRecipeArrows": true, + "registerRecipesInAnotherThread": true, + "newFastEntryRendering": true, + "cachingFastEntryRendering": false, + "cachingDisplayLookup": true + } + }, + "appearance": { + "recipeScreenType": "ORIGINAL", + // Declares the appearance of REI windows. + "theme": "DARK", + "layout": { + // Declares the position of the search field. + "searchFieldLocation": "BOTTOM_SIDE", + // Declares the position of the config button. + "configButtonLocation": "LOWER", + // Declares whether the craftable filter button is enabled. + "showCraftableOnlyButton": true + }, + // Declares the appearance of recipe's border. + "recipeBorder": "DEFAULT", + // Declares whether entry panel is scrolled. + "scrollingEntryListWidget": false, + "horizontalEntriesBoundaries": 1.0, + "verticalEntriesBoundaries": 1.0, + "horizontalEntriesBoundariesColumns": 50, + "verticalEntriesBoundariesRows": 1000, + "favoritesHorizontalEntriesBoundaries": 1.0, + "favoritesHorizontalEntriesBoundariesColumns": 50, + "syntaxHighlightingMode": "COLORFUL", + "isFocusModeZoomed": false + }, + "functionality": { + "inputMethod": null, + // Declares whether REI should remove the recipe book. + "disableRecipeBook": false, + // Declares whether mob effects should be on the left side instead of the right side. + "leftSideMobEffects": false, + // Declares whether subsets is enabled. + "isSubsetsEnabled": false, + "allowInventoryHighlighting": true, + "itemCheatingMode": "REI_LIKE" + } +} \ No newline at end of file diff --git a/config/xaerominimap_entities.json b/config/xaerominimap_entities.json deleted file mode 100644 index d7187d221..000000000 --- a/config/xaerominimap_entities.json +++ /dev/null @@ -1,191 +0,0 @@ -{ - "hardInclude": "anything", - "includeList": [], - "includeListInSuperCategory": true, - "excludeMode": "ONLY", - "excludeList": [ - "minecraft:glow_item_frame", - "minecraft:item_frame" - ], - "name": "gui.xaero_entity_category_root", - "protection": true, - "settingOverrides": { - "displayHeight": 0.0, - "displayed": true, - "heightBasedFade": true, - "renderOrder": 0.0, - "color": 13.0, - "displayNameWhenIconFails": true, - "entityNumber": 1000.0, - "alwaysDisplayNametags": false, - "startFadingAt": 0.0, - "dotSize": 2.0, - "renderOverMinimapFrame": 1.0, - "icons": 1.0, - "names": 0.0, - "heightLimit": 20.0, - "iconScale": 1.0 - }, - "subCategories": [ - { - "hardInclude": "living", - "includeList": [], - "includeListInSuperCategory": true, - "excludeMode": "ONLY", - "excludeList": [ - "minecraft:armor_stand" - ], - "name": "gui.xaero_entity_category_living", - "protection": true, - "settingOverrides": { - "renderOrder": 2.0, - "color": 14.0 - }, - "subCategories": [ - { - "hardInclude": "players", - "includeList": [], - "includeListInSuperCategory": true, - "excludeMode": "ONLY", - "excludeList": [], - "name": "gui.xaero_entity_category_players", - "protection": true, - "settingOverrides": { - "renderOrder": 6.0, - "heightLimit": 2050.0, - "color": 15.0 - }, - "subCategories": [ - { - "hardInclude": "nothing", - "includeList": [], - "includeListInSuperCategory": true, - "excludeMode": "ONLY", - "excludeList": [], - "name": "gui.xaero_entity_category_friend", - "protection": true, - "settingOverrides": {}, - "subCategories": [] - }, - { - "hardInclude": "tracked", - "includeList": [], - "includeListInSuperCategory": true, - "excludeMode": "ONLY", - "excludeList": [], - "name": "gui.xaero_entity_category_tracked", - "protection": true, - "settingOverrides": { - "icons": 2.0 - }, - "subCategories": [] - }, - { - "hardInclude": "same-team", - "includeList": [], - "includeListInSuperCategory": true, - "excludeMode": "ONLY", - "excludeList": [], - "name": "gui.xaero_entity_category_same_team", - "protection": true, - "settingOverrides": {}, - "subCategories": [] - }, - { - "hardInclude": "anything", - "includeList": [], - "includeListInSuperCategory": true, - "excludeMode": "ONLY", - "excludeList": [], - "name": "gui.xaero_entity_category_other_teams", - "protection": true, - "settingOverrides": { - "renderOrder": 7.0 - }, - "subCategories": [] - } - ] - }, - { - "hardInclude": "hostile", - "includeList": [], - "includeListInSuperCategory": true, - "excludeMode": "ONLY", - "excludeList": [], - "name": "gui.xaero_entity_category_hostile", - "protection": true, - "settingOverrides": { - "renderOrder": 3.0 - }, - "subCategories": [ - { - "hardInclude": "tamed", - "includeList": [], - "includeListInSuperCategory": true, - "excludeMode": "ONLY", - "excludeList": [], - "name": "gui.xaero_entity_category_hostile_tamed", - "protection": true, - "settingOverrides": { - "renderOrder": 5.0 - }, - "subCategories": [] - } - ] - }, - { - "hardInclude": "anything", - "includeList": [], - "includeListInSuperCategory": true, - "excludeMode": "ONLY", - "excludeList": [], - "name": "gui.xaero_entity_category_friendly", - "protection": true, - "settingOverrides": {}, - "subCategories": [ - { - "hardInclude": "tamed", - "includeList": [], - "includeListInSuperCategory": true, - "excludeMode": "ONLY", - "excludeList": [], - "name": "gui.xaero_entity_category_friendly_tamed", - "protection": true, - "settingOverrides": { - "renderOrder": 4.0 - }, - "subCategories": [] - } - ] - } - ] - }, - { - "hardInclude": "items", - "includeList": [], - "includeListInSuperCategory": true, - "excludeMode": "ONLY", - "excludeList": [], - "name": "gui.xaero_entity_category_items", - "protection": true, - "settingOverrides": { - "renderOrder": 1.0, - "color": 12.0 - }, - "subCategories": [] - }, - { - "hardInclude": "anything", - "includeList": [], - "includeListInSuperCategory": true, - "excludeMode": "ONLY", - "excludeList": [], - "name": "gui.xaero_entity_category_other_entities", - "protection": true, - "settingOverrides": { - "color": 5.0 - }, - "subCategories": [] - } - ] -} \ No newline at end of file diff --git a/kubejs/client_scripts/main_client_script.js b/kubejs/client_scripts/main_client_script.js index 7dad3c070..e7305904d 100644 --- a/kubejs/client_scripts/main_client_script.js +++ b/kubejs/client_scripts/main_client_script.js @@ -1,6 +1,40 @@ // priority: 1 -JEIEvents.hideItems(event => { +if (Platform.isLoaded('jei')) { + + JEIEvents.hideItems(event => { + hideItems(event) + }) + + JEIEvents.hideFluids(event => { + hideFluids(event) + }) + + JEIEvents.removeCategories(event => { + removeCategories(event) // Не работает с EMI + JEI + }) + +} else if (Platform.isLoaded('rei')) { + + REIEvents.hide('items', event => { + hideItems(event) + }) + + REIEvents.hide('fluids', event => { + hideFluids(event) + }) + + REIEvents.removeCategories(event => { + removeCategories(event) + }) + + REIEvents.groupEntries(event => { + groupItems(event) + }) + +} + +const hideItems = (event) => { hideMinecraftStuff(event) hideTFCStuff(event) hideFirmaLifeStuff(event) @@ -14,32 +48,23 @@ JEIEvents.hideItems(event => { hideCreateAdditionsStuff(event) hideChiselAndBitsStuff(event) hideFTBQuestsStuff(event) -}) +} -// REIEvents.groupEntries(event => { -// groupGTCEUStuff(event) -// groupTFCStuff(event) -// }) - -JEIEvents.removeCategories(event => { - // НЕ РАБОТАЕТ СУКА, РАЗРАБ НАСРАЛ! - - // registerMinecraftCategories(event) - // registerGTCEUCategories(event) - // registerMoreRedCategories(event) - // 'jumbofurnace:jumbo_furnace_upgrade, - // event.remove('minecraft:campfire_cooking') - // event.remove('jumbofurnace:jumbo_smelting') - - // console.log(event.getCategoryIds()) - - // event.getCategoryIds() -}) - -JEIEvents.hideFluids(event => { +const hideFluids = (event) => { hideTFCFluids(event) hideFirmaLifeFluids(event) hideCreateFluids(event) hideCreateAdditionsFluids(event) -}) \ No newline at end of file +} + +const removeCategories = (event) => { + registerMinecraftCategories(event) + registerGTCEUCategories(event) + registerMoreRedCategories(event) +} + +const groupItems = (event) => { + groupGTCEUStuff(event) + groupTFCStuff(event) +} \ No newline at end of file diff --git a/kubejs/client_scripts/mods/tfc.js b/kubejs/client_scripts/mods/tfc.js index 4fa0081a4..733655ab5 100644 --- a/kubejs/client_scripts/mods/tfc.js +++ b/kubejs/client_scripts/mods/tfc.js @@ -42,4 +42,14 @@ const hideTFCFluids = (event) => { event.hide('tfc:metal/black_steel') event.hide('tfc:metal/red_steel') event.hide('tfc:metal/blue_steel') + event.hide('tfc:metal/cast_iron') + event.hide('tfc:metal/pig_iron') + event.hide('tfc:metal/high_carbon_steel') + event.hide('tfc:metal/high_carbon_black_steel') + event.hide('tfc:metal/high_carbon_red_steel') + event.hide('tfc:metal/high_carbon_blue_steel') + event.hide('tfc:metal/weak_steel') + event.hide('tfc:metal/weak_red_steel') + event.hide('tfc:metal/weak_blue_steel') + event.hide('tfc:metal/unknown') } \ No newline at end of file diff --git a/kubejs/server_scripts/firmaciv/recipes.js b/kubejs/server_scripts/firmaciv/recipes.js index fcd28554e..a2bf0eaed 100644 --- a/kubejs/server_scripts/firmaciv/recipes.js +++ b/kubejs/server_scripts/firmaciv/recipes.js @@ -3,10 +3,9 @@ const registerFirmaCivRecipes = (event) => { event.remove({ id: '/firmaciv:quern/' }) - event.remove({ id: 'firmaciv:anvil/copper_bolt' }) event.recipes.tfc.heating('firmaciv:oarlock', 1535) - .resultFluid(Fluid.of('tfc:metal/cast_iron', 288)) - .id(`tfg:firmaciv/heating/oarlock`) + .resultFluid(Fluid.of('gtceu:iron', 288)) + .id(`firmaciv:heating/oarlock`) } \ No newline at end of file diff --git a/kubejs/server_scripts/gregtech/loot.js b/kubejs/server_scripts/gregtech/loot.js index c119af447..17a3d7fa1 100644 --- a/kubejs/server_scripts/gregtech/loot.js +++ b/kubejs/server_scripts/gregtech/loot.js @@ -5,13 +5,37 @@ const registerGTCEULoots = (event) => { global.TFC_STONE_TYPES.forEach(stoneType => { GTRegistries.MATERIALS.forEach(material => { if (material.hasProperty(PropertyKey.ORE)) { - event.addBlockLootModifier(`gtceu:${stoneType}_${material}_ore`) - .removeLoot(Ingredient.all) - .addWeightedLoot([ - Item.of(`#forge:rich_raw_materials/${material}`).withChance(0.2), - Item.of(`#forge:raw_materials/${material}`).withChance(0.6), - Item.of(`#forge:poor_raw_materials/${material}`).withChance(0.2) - ]); + + let stoneTypeMaterial = GTMaterials.get(stoneType) + let stoneTypeDust = null + + if (!stoneTypeMaterial != null) stoneTypeDust = ChemicalHelper.get(TagPrefix.dust, stoneTypeMaterial, 1) + + let richRawOre = ChemicalHelper.get(TFGTagPrefix.richRawOre, material, 1) + let normalRawOre = ChemicalHelper.get(TagPrefix.rawOre, material, 1) + let poorRawOre = ChemicalHelper.get(TFGTagPrefix.poorRawOre, material, 1).withChance(0.2) + + let blockName = `gtceu:${stoneType}_${material}_ore` + + if (!richRawOre.isEmpty() && !normalRawOre.isEmpty() && !poorRawOre.isEmpty()) { + + event.addBlockLootModifier(blockName) + .matchMainHand('#minecraft:pickaxes') + .removeLoot(Ingredient.all) + .addWeightedLoot([ + richRawOre.withChance(0.2), + normalRawOre.withChance(0.6), + poorRawOre.withChance(0.2) + ]); + } + + if (!stoneTypeDust.isEmpty()) { + event.addBlockLootModifier(blockName) + .matchMainHand('#minecraft:pickaxes') + .addLoot( + LootEntry.of(stoneTypeDust).when((c) => c.randomChance(0.25)) + ) + } } }) }) diff --git a/kubejs/server_scripts/gregtech/recipes.js b/kubejs/server_scripts/gregtech/recipes.js index c9ecc644a..a3876b9e0 100644 --- a/kubejs/server_scripts/gregtech/recipes.js +++ b/kubejs/server_scripts/gregtech/recipes.js @@ -1,7 +1,5 @@ // priority: 0 - - const registerGTCEURecipes = (event) => { //#region Выход: Удобрение @@ -13,6 +11,7 @@ const registerGTCEURecipes = (event) => { '2x #forge:dusts/wood', '4x #forge:sand' ) + .circuit(1) .inputFluids(Fluid.of('minecraft:water', 1000)) .itemOutputs('4x gtceu:fertilizer') .duration(300) @@ -25,6 +24,7 @@ const registerGTCEURecipes = (event) => { '2x #forge:dusts/wood', '4x #forge:sand' ) + .circuit(1) .inputFluids(Fluid.of('minecraft:water', 1000)) .itemOutputs('4x gtceu:fertilizer') .duration(300) @@ -1110,7 +1110,7 @@ const registerGTCEURecipes = (event) => { A: 'minecraft:clay_ball', B: '#minecraft:sand', C: 'gtceu:brick_wooden_form' - }).replaceIngredient("gtceu:brick_wooden_form", Item.empty).id('gtceu:shaped/compressed_coke_clay') + }).replaceIngredient('gtceu:brick_wooden_form', 'gtceu:brick_wooden_form').id('gtceu:shaped/compressed_coke_clay') // Compressed Coke Clay -> Coke Oven Brick event.recipes.tfc.heating('gtceu:compressed_coke_clay', 1399) @@ -1267,29 +1267,17 @@ const registerGTCEURecipes = (event) => { //#region Рецепты инструментов - if (material.hasFlag($TFGMaterialFlags.HAS_TFC_TOOL)) { + if (material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) { global.GTCEU_ANVIL_TOOL_TYPES.forEach(toolType => { let toolStack = $ToolHelper.get(toolType, material) - if (toolType == GTToolType.BUTCHERY_KNIFE) { - event.recipes.tfc.advanced_shaped_crafting(TFC.itemStackProvider.of(toolStack).copyForgingBonus(), [ - 'A', - 'B' - ], { - A: `gtceu:${material}_knife_butchery_head`, - B: '#forge:rods/wooden' - }, 0, 0).id(`gtceu:shaped/${toolType.name}_${material}`) - } - else { - 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}`) - } - + 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}`) }) } @@ -1410,16 +1398,26 @@ const registerGTCEURecipes = (event) => { } } - if (material.hasProperty(PropertyKey.INGOT)) { - event.recipes.createCrushing(Item.of(`#forge:dusts/${material}`), `#forge:ingots/${material}`) - .processingTime(150) - .id(`tfg:crushing/${material}_dust`) - } - else { - event.recipes.createMilling(Item.of(`#forge:dusts/${material}`), `#forge:gems/${material}`) - .processingTime(150) - .id(`tfg:milling/${material}_dust`) + let ingotStack = ChemicalHelper.get(TagPrefix.ingot, material, 1) + let gemStack = ChemicalHelper.get(TagPrefix.gem, material, 1) + let dustStack = ChemicalHelper.get(TagPrefix.dust, material, 1) + + if (!dustStack.isEmpty()) { + + if (!ingotStack.isEmpty()) { + event.recipes.createCrushing(dustStack, ingotStack) + .processingTime(250) + .id(`tfg:crushing/${material}_dust`) + } + + if (!gemStack.isEmpty()) { + event.recipes.createMilling(dustStack, gemStack) + .processingTime(200) + .id(`tfg:milling/${material}_dust`) + } + } + }); //#endregion diff --git a/kubejs/server_scripts/main_server_script.js b/kubejs/server_scripts/main_server_script.js index cd002aee0..f6fdca0cb 100644 --- a/kubejs/server_scripts/main_server_script.js +++ b/kubejs/server_scripts/main_server_script.js @@ -1,7 +1,6 @@ // priority: 1 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') /** diff --git a/kubejs/server_scripts/tfc/data.js b/kubejs/server_scripts/tfc/data.js index cd4d994f5..a95c8d1a0 100644 --- a/kubejs/server_scripts/tfc/data.js +++ b/kubejs/server_scripts/tfc/data.js @@ -8,9 +8,31 @@ const registerTFCDataForTFC = (event) => { registerTFCFertilizers(event) registerTFCKnappingTypes(event) registerTFCItemSize(event) + registerTFCFoodData(event) } const registerTFCMetals = (event) => { + event.metal('gtceu:copper', 1080, 0.00857, '#forge:ingots/copper', '#forge:double_ingots/copper', '#forge:plates/copper', 1, 'tfc:copper') + event.metal('gtceu:bismuth_bronze', 985, 0.00857, '#forge:ingots/bismuth_bronze', '#forge:double_ingots/bismuth_bronze', '#forge:plates/bismuth_bronze', 2, 'tfc:bismuth_bronze') + event.metal('gtceu:bronze', 950, 0.00857, '#forge:ingots/bronze', '#forge:double_ingots/bronze', '#forge:plates/bronze', 2, 'tfc:bronze') + event.metal('gtceu:black_bronze', 1070, 0.00857, '#forge:ingots/black_bronze', '#forge:double_ingots/black_bronze', '#forge:plates/black_bronze', 2, 'tfc:black_bronze') + event.metal('gtceu:wrought_iron', 1535, 0.00857, '#forge:ingots/wrought_iron', '#forge:double_ingots/wrought_iron', '#forge:plates/wrought_iron', 3, 'tfc:wrought_iron') + event.metal('gtceu:steel', 1540, 0.00857, '#forge:ingots/steel', '#forge:double_ingots/steel', '#forge:plates/steel', 4, 'tfc:steel') + event.metal('gtceu:black_steel', 1485, 0.00857, '#forge:ingots/black_steel', '#forge:double_ingots/black_steel', '#forge:plates/black_steel', 5, 'tfc:black_steel') + event.metal('gtceu:blue_steel', 1540, 0.00857, '#forge:ingots/blue_steel', '#forge:double_ingots/blue_steel', '#forge:plates/blue_steel', 6, 'tfc:blue_steel') + event.metal('gtceu:red_steel', 1540, 0.00857, '#forge:ingots/red_steel', '#forge:double_ingots/red_steel', '#forge:plates/red_steel', 6, 'tfc:red_steel') + + event.metal('gtceu:pig_iron', 1535, 0.00857, '#forge:ingots/pig_iron', null, null, 3, 'tfc:pig_iron') + event.metal('gtceu:high_carbon_steel', 1540, 0.00857, '#forge:ingots/high_carbon_steel', null, null, 3, 'tfc:high_carbon_steel') + event.metal('gtceu:high_carbon_black_steel', 1535, 0.00857, '#forge:ingots/high_carbon_black_steel', null, null, 4, 'tfc:high_carbon_black_steel') + event.metal('gtceu:high_carbon_red_steel', 1535, 0.00857, '#forge:ingots/high_carbon_red_steel', null, null, 5, 'tfc:high_carbon_red_steel') + event.metal('gtceu:high_carbon_blue_steel', 1535, 0.00857, '#forge:ingots/high_carbon_blue_steel', null, null, 5, 'tfc:high_carbon_blue_steel') + event.metal('gtceu:weak_steel', 1540, 0.00857, '#forge:ingots/weak_steel', null, null, 4, 'tfc:weak_steel') + event.metal('gtceu:weak_red_steel', 1540, 0.00857, '#forge:ingots/weak_red_steel', null, null, 5, 'tfc:weak_red_steel') + event.metal('gtceu:weak_blue_steel', 1540, 0.00857, '#forge:ingots/weak_blue_steel', null, null, 5, 'tfc:weak_blue_steel') + event.metal('gtceu:unknown', 400, 0.006, '#forge:ingots/unknown', null, null, 0, 'tfc:unknown') + + event.metal('gtceu:iron', 1535, 0.00857, '#forge:ingots/iron', '#forge:double_ingots/iron', '#forge:plates/iron', 3, 'tfc:cast_iron') event.metal('gtceu:tin', 230, 0.02143, '#forge:ingots/tin', '#forge:double_ingots/tin', '#forge:plates/tin', 1, 'tfc:tin') event.metal('gtceu:bismuth', 270, 0.02143, '#forge:ingots/bismuth', '#forge:double_ingots/bismuth', '#forge:plates/bismuth', 1, 'tfc:bismuth') event.metal('gtceu:zinc', 420, 0.01429, '#forge:ingots/zinc', '#forge:double_ingots/zinc', '#forge:plates/zinc', 1, 'tfc:zinc') @@ -18,77 +40,70 @@ const registerTFCMetals = (event) => { event.metal('gtceu:rose_gold', 960, 0.00857, '#forge:ingots/rose_gold', '#forge:double_ingots/rose_gold', '#forge:plates/rose_gold', 1, 'tfc:rose_gold') event.metal('gtceu:silver', 961, 0.00625, '#forge:ingots/silver', '#forge:double_ingots/silver', '#forge:plates/silver', 1, 'tfc:silver') event.metal('gtceu:gold', 1060, 0.005, '#forge:ingots/gold', '#forge:double_ingots/gold', '#forge:plates/gold', 1, 'tfc:gold') - event.metal('gtceu:copper', 1080, 0.00857, '#forge:ingots/copper', '#forge:double_ingots/copper', '#forge:plates/copper', 1, 'tfc:copper') event.metal('gtceu:nickel', 1453, 0.00625, '#forge:ingots/nickel', '#forge:double_ingots/nickel', '#forge:plates/nickel', 1, 'tfc:nickel') - event.metal('gtceu:brass', 930, 0.00857, '#forge:ingots/brass', '#forge:double_ingots/brass', '#forge:plates/brass', 2, 'tfc:brass') - event.metal('gtceu:bronze', 950, 0.00857, '#forge:ingots/bronze', '#forge:double_ingots/bronze', '#forge:plates/bronze', 2, 'tfc:bronze') - event.metal('gtceu:bismuth_bronze', 985, 0.00857, '#forge:ingots/bismuth_bronze', '#forge:double_ingots/bismuth_bronze', '#forge:plates/bismuth_bronze', 2, 'tfc:bismuth_bronze') - event.metal('gtceu:black_bronze', 1070, 0.00857, '#forge:ingots/black_bronze', '#forge:double_ingots/black_bronze', '#forge:plates/black_bronze', 2, 'tfc:black_bronze') - - // event.metal('gtceu:iron', 1535, 0.00857, '#forge:ingots/iron', '#forge:double_ingots/iron', '#forge:plates/iron', 3, 'tfg:iron') - event.metal('gtceu:wrought_iron', 1535, 0.00857, '#forge:ingots/wrought_iron', '#forge:double_ingots/wrought_iron', '#forge:plates/wrought_iron', 3, 'tfc:wrought_iron') - - event.metal('gtceu:steel', 1540, 0.00857, '#forge:ingots/steel', '#forge:double_ingots/steel', '#forge:plates/steel', 4, 'tfc:steel') - - event.metal('gtceu:black_steel', 1485, 0.00857, '#forge:ingots/black_steel', '#forge:double_ingots/black_steel', '#forge:plates/black_steel', 5, 'tfc:black_steel') - event.metal('gtceu:blue_steel', 1540, 0.00857, '#forge:ingots/blue_steel', '#forge:double_ingots/blue_steel', '#forge:plates/blue_steel', 6, 'tfc:blue_steel') - event.metal('gtceu:red_steel', 1540, 0.00857, '#forge:ingots/red_steel', '#forge:double_ingots/red_steel', '#forge:plates/red_steel', 6, 'tfc:red_steel') - + event.metal('gtceu:redstone', 460, 0.01729, null, null, null, 1, 'tfg:redstone') event.metal('gtceu:red_alloy', 740, 0.01529, '#forge:ingots/red_alloy', null, '#forge:plates/red_alloy', 2, 'tfg:red_alloy') event.metal('gtceu:tin_alloy', 1250, 0.00829, '#forge:ingots/tin_alloy', null, '#forge:plates/tin_alloy', 3, 'tfg:tin_alloy') } const registerTFCHeats = (event) => { - Object.entries(global.METAL_TO_SPECS).forEach(keyValuePair => { - let metal = keyValuePair[0] - let metalSpecs = keyValuePair[1] + + function makeItemHeatByTagPrefix(tagPrefix, material, tfcProperty, heatCapacity) { + let item = ChemicalHelper.get(tagPrefix, material, 1) + if (!item.isEmpty()) event.itemHeat(item, heatCapacity, tfcProperty.getForgingTemp(), tfcProperty.getWeldingTemp()) + } - if (metalSpecs.props.includes('dusts')) { - event.itemHeat(`gtceu:${metal}_tiny_dust`, 0.357, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_small_dust`, 0.714, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_dust`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) + function makeItemHeatByToolType(toolType, material, tfcProperty, heatCapacity) { + let tool = $ToolHelper.get(toolType, material) + if (!tool.isEmpty()) event.itemHeat(tool, heatCapacity, tfcProperty.getForgingTemp(), tfcProperty.getWeldingTemp()) + } - event.itemHeat(`gtceu:${metal}_rod`, 0.567, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_bolt`, 0.245, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_screw`, 0.567, metalSpecs.forging_temp, metalSpecs.welding_temp) - } + GTRegistries.MATERIALS.forEach(material => { + let tfcProperty = material.getProperty(TFGPropertyKey.TFC_PROPERTY) + + if (tfcProperty != null) { + makeItemHeatByTagPrefix(TagPrefix.dustTiny, material, tfcProperty, 0.357) + makeItemHeatByTagPrefix(TagPrefix.dustSmall, material, tfcProperty, 0.714) + makeItemHeatByTagPrefix(TagPrefix.dust, material, tfcProperty, 1.429) + makeItemHeatByTagPrefix(TagPrefix.rod, material, tfcProperty, 0.567) + makeItemHeatByTagPrefix(TagPrefix.bolt, material, tfcProperty, 0.245) + makeItemHeatByTagPrefix(TagPrefix.screw, material, tfcProperty, 0.567) + makeItemHeatByTagPrefix(TagPrefix.nugget, material, tfcProperty, 0.124) + + makeItemHeatByTagPrefix(TagPrefix.rawOre, material, tfcProperty, 1.429) + makeItemHeatByTagPrefix(TFGTagPrefix.richRawOre, material, tfcProperty, 1.429) + makeItemHeatByTagPrefix(TFGTagPrefix.poorRawOre, material, tfcProperty, 1.429) - if (metalSpecs.props.includes('nugget')) { - event.itemHeat(`gtceu:${metal}_nugget`, 0.124, metalSpecs.forging_temp, metalSpecs.welding_temp) - } + makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadSword, material, tfcProperty, 2.875) + makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadShovel, material, tfcProperty, 1.429) + makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadScythe, material, tfcProperty, 1.429) + makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadPickaxe, material, tfcProperty, 1.429) + makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadSaw, material, tfcProperty, 1.429) + makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadKnife, material, tfcProperty, 1.429) + makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadHoe, material, tfcProperty, 1.429) + makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadHammer, material, tfcProperty, 1.429) + makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadAxe, material, tfcProperty, 1.429) + makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadFile, material, tfcProperty, 1.429) + makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadButcheryKnife, material, tfcProperty, 2.875) + makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadMiningHammer, material, tfcProperty, 2.875) + makeItemHeatByTagPrefix(TFGTagPrefix.toolHeadSpade, material, tfcProperty, 2.875) - if (metalSpecs.props.includes('ore_chunks')) { - event.itemHeat(`#forge:rich_raw_materials/${metal}`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`#forge:raw_materials/${metal}`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`#forge:poor_raw_materials/${metal}`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - } - - if (metalSpecs.props.includes('tool')) { - event.itemHeat(`gtceu:${metal}_sword`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_sword_head`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_shovel`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_shovel_head`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_scythe`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_scythe_head`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_pickaxe`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_pickaxe_head`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_saw`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_saw_head`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_knife`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_knife_head`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_hoe`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_hoe_head`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_hammer`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_hammer_head`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_axe`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_axe_head`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_file`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_file_head`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_butchery_knife`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - event.itemHeat(`gtceu:${metal}_knife_butchery_head`, 1.429, metalSpecs.forging_temp, metalSpecs.welding_temp) - } + makeItemHeatByToolType(GTToolType.SWORD, material, tfcProperty, 1.429) + makeItemHeatByToolType(GTToolType.PICKAXE, material, tfcProperty, 1.429) + makeItemHeatByToolType(GTToolType.SHOVEL, material, tfcProperty, 1.429) + makeItemHeatByToolType(GTToolType.AXE, material, tfcProperty, 1.429) + makeItemHeatByToolType(GTToolType.HOE, material, tfcProperty, 1.429) + makeItemHeatByToolType(GTToolType.SAW, material, tfcProperty, 1.429) + makeItemHeatByToolType(GTToolType.HARD_HAMMER, material, tfcProperty, 2.875) + makeItemHeatByToolType(GTToolType.FILE, material, tfcProperty, 1.429) + makeItemHeatByToolType(GTToolType.SCYTHE, material, tfcProperty, 1.429) + makeItemHeatByToolType(GTToolType.KNIFE, material, tfcProperty, 1.429) + makeItemHeatByToolType(GTToolType.BUTCHERY_KNIFE, material, tfcProperty, 2.875) + makeItemHeatByToolType(GTToolType.MINING_HAMMER, material, tfcProperty, 1.429) + makeItemHeatByToolType(GTToolType.SPADE, material, tfcProperty, 2.875) + } }) // Ведро из синей стали @@ -131,4 +146,18 @@ const registerTFCKnappingTypes = (event) => { const registerTFCItemSize = (event) => { // TODO event.itemSize('minecraft:gold_ingot', 'huge', 'very_heavy') +} + +const registerTFCFoodData = (event) => { + event.foodItem('minecraft:golden_apple', food => { + food.hunger(2) + food.fruit(2) + food.decayModifier(0.6) + }) + + event.foodItem('minecraft:enchanted_golden_apple', food => { + food.hunger(3) + food.fruit(2) + food.decayModifier(0.2) + }) } \ No newline at end of file diff --git a/kubejs/server_scripts/tfc/recipes.js b/kubejs/server_scripts/tfc/recipes.js index d7eb39068..8f7bee9ce 100644 --- a/kubejs/server_scripts/tfc/recipes.js +++ b/kubejs/server_scripts/tfc/recipes.js @@ -4,899 +4,1151 @@ const registerTFCRecipes = (event) => { //#region Металлы - Object.entries(global.METAL_TO_SPECS).forEach(keyValuePair => { + // Удаление рецептов руд TFC + event.remove({ id: /tfc:heating\/ore\/poor_*/ }) + event.remove({ id: /tfc:heating\/ore\/normal_*/ }) + event.remove({ id: /tfc:heating\/ore\/rich_*/ }) + + // Удаление рецептов блоков + event.remove({ id: /tfc:crafting\/metal\/block\/*/ }) + event.remove({ id: /tfc:heating\/metal\/*_block/ }) + + // Удаление рецептов ступеней + event.remove({ id: /tfc:crafting\/metal\/block\/*_stairs/ }) + event.remove({ id: /tfc:heating\/metal\/*_block_stairs/ }) + + // Удалание рецептов полублоков + event.remove({ id: /tfc:crafting\/metal\/block\/*_slab/ }) + event.remove({ id: /tfc:heating\/metal\/*_block_slab/ }) + + GTRegistries.MATERIALS.forEach(material => { - let metal = keyValuePair[0] - let metalSpecs = keyValuePair[1] - - if (metalSpecs.props.includes(global.INGOT_GEN)) { - - if (metalSpecs.input_fluid != undefined) { + let tfcProperty = material.getProperty(TFGPropertyKey.TFC_PROPERTY) + + if (tfcProperty != null) { + + let outputMaterial = (tfcProperty.getOutputMaterial() == null) ? material : tfcProperty.getOutputMaterial() + + // Ingots + let ingotItem = ChemicalHelper.get(TagPrefix.ingot, material, 1) + if (!ingotItem.isEmpty()) { + // Декрафт слитка в жидкость + event.recipes.tfc.heating(ingotItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${material}_ingot`) + // Отливка слитка в обычной форме - event.recipes.tfc.casting(Item.of(`#forge:ingots/${metal}`), 'tfc:ceramic/ingot_mold', TFC.fluidStackIngredient(metalSpecs.input_fluid, 144), 0.1) - .id(`tfc:casting/${metal}_ingot`) + event.recipes.tfc.casting(ingotItem, 'tfc:ceramic/ingot_mold', Fluid.of(outputMaterial.getFluid(), 144), 0.1) + .id(`tfc:casting/${material}_ingot`) // Отливка слитка в огнеупорной форме - event.recipes.tfc.casting(Item.of(`#forge:ingots/${metal}`), 'tfc:ceramic/fire_ingot_mold', TFC.fluidStackIngredient(metalSpecs.input_fluid, 144), 0.01) - .id(`tfc:casting/${metal}_fire_ingot`) - } - else - { - // Отливка слитка в обычной форме - event.recipes.tfc.casting(Item.of(`#forge:ingots/${metal}`), 'tfc:ceramic/ingot_mold', TFC.fluidStackIngredient(metalSpecs.output_fluid, 144), 0.1) - .id(`tfc:casting/${metal}_ingot`) - - // Отливка слитка в огнеупорной форме - event.recipes.tfc.casting(Item.of(`#forge:ingots/${metal}`), 'tfc:ceramic/fire_ingot_mold', TFC.fluidStackIngredient(metalSpecs.output_fluid, 144), 0.01) - .id(`tfc:casting/${metal}_fire_ingot`) - } - - // Декрафт слитка в жидкость - event.recipes.tfc.heating(`#forge:ingots/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .id(`tfc:heating/metal/${metal}_ingot`) - } - - if (metalSpecs.props.includes(global.DOUBLE_INGOT_GEN)) { - // Декрафт двойного слитка в жидкость - event.recipes.tfc.heating(`tfc:metal/double_ingot/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 288)) - .id(`tfc:heating/metal/${metal}_double_ingot`) - - // Двойной слиток -> Пластина - event.recipes.tfc.anvil(`gtceu:${metal}_plate`, `tfc:metal/double_ingot/${metal}`, ['hit_last', 'hit_second_last', 'hit_third_last']) - .tier(metalSpecs.tier) - .id(`tfc:anvil/${metal}_sheet`) - } - - if (metalSpecs.props.includes(global.PART_GEN)) { - // Удаление рецептов блоков - event.remove({ id: `tfc:crafting/metal/block/${metal}` }) - event.remove({ id: `tfc:heating/metal/${metal}_block` }) - - // Удаление рецептов ступеней - event.remove({ id: `tfc:crafting/metal/block/${metal}_stairs` }) - event.remove({ id: `tfc:heating/metal/${metal}_block_stairs` }) - - // Удалание рецептов полублоков - event.remove({ id: `tfc:crafting/metal/block/${metal}_slab` }) - event.remove({ id: `tfc:heating/metal/${metal}_block_slab` }) - } - - if (metalSpecs.props.includes(global.BLOCK_GEN)) { - // Декрафт блока в жидкость - event.recipes.tfc.heating(`#forge:storage_blocks/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 1296)) - .id(`tfc:heating/metal/${metal}_block`) - } - - if (metalSpecs.props.includes(global.ROD_GEN)) { - // Слиток -> 2 Стержня - event.recipes.tfc.anvil(`2x gtceu:${metal}_rod`, `#forge:ingots/${metal}`, ['bend_last', 'draw_second_last', 'draw_third_last']) - .tier(metalSpecs.tier) - .id(`tfc:anvil/${metal}_rod`) - - // Декрафт стержня в жидкость - event.recipes.tfc.heating(`gtceu:${metal}_rod`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 72)) - .id(`tfc:heating/metal/${metal}_rod`) - - let long_rod = Item.of(`gtceu:${metal}_long_rod`); - - if (!long_rod.isEmpty()) { - // Декрафт длинного стержня в жидкость - 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`) - } - - } - - if (metalSpecs.props.includes(global.PLATE_GEN)) { - // Декрафт пластины в жидкость - event.recipes.tfc.heating(`gtceu:${metal}_plate`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .id(`tfc:heating/metal/${metal}_sheet`) - } - - if (metalSpecs.props.includes(global.DOUBLE_PLATE_GEN)) { - let double_plate = Item.of(`gtceu:${metal}_double_plate`) - - if (!double_plate.isEmpty()) { - // Декрафт двойных пластин - event.recipes.tfc.heating(`gtceu:${metal}_double_plate`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 288)) - .id(`tfc:heating/metal/${metal}_double_sheet`) - - // Две пластины -> Двойная пластина - event.recipes.tfc.welding(`gtceu:${metal}_double_plate`, `gtceu:${metal}_plate`, `gtceu:${metal}_plate`) - .tier(metalSpecs.tier) - .id(`tfc:welding/${metal}_double_sheet`) - } - } - - if (metalSpecs.props.includes(global.ARMOR_GEN)) { - //#region Шлем - - // Декрафт незавершенного шлема в жидкость - event.recipes.tfc.heating(`tfc:metal/unfinished_helmet/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 288)) - .id(`tfc:heating/metal/${metal}_unfinished_helmet`) - - // Незавершенный шлем - event.recipes.tfc.anvil(`tfc:metal/unfinished_helmet/${metal}`, `gtceu:${metal}_double_plate`, ['hit_last', 'bend_second_last', 'bend_third_last']) - .tier(metalSpecs.tier) - .id(`tfc:anvil/${metal}_unfinished_helmet`) - - // Декрафт шлема в жидкость - event.recipes.tfc.heating(`tfc:metal/helmet/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 432)) - .useDurability(true) - .id(`tfc:heating/metal/${metal}_helmet`) - - // Шлем - event.recipes.tfc.welding(`tfc:metal/helmet/${metal}`, `tfc:metal/unfinished_helmet/${metal}`, `gtceu:${metal}_plate`) - .tier(metalSpecs.tier) - .id(`tfc:welding/${metal}_helmet`) - - //#endregion - - //#region Нагрудник - - // Декрафт незавершенного нагрудника в жидкость - event.recipes.tfc.heating(`tfc:metal/unfinished_chestplate/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 288)) - .id(`tfc:heating/metal/${metal}_unfinished_chestplate`) - - // Незавершенный нагрудник - event.recipes.tfc.anvil(`tfc:metal/unfinished_chestplate/${metal}`, `gtceu:${metal}_double_plate`, ['hit_last', 'hit_second_last', 'upset_third_last']) - .tier(metalSpecs.tier) - .id(`tfc:anvil/${metal}_unfinished_chestplate`) - - // Декрафт нагрудника в жидкость - event.recipes.tfc.heating(`tfc:metal/chestplate/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 576)) - .useDurability(true) - .id(`tfc:heating/metal/${metal}_chestplate`) - - // Нагрудник - event.recipes.tfc.welding(`tfc:metal/chestplate/${metal}`, `tfc:metal/unfinished_chestplate/${metal}`, `gtceu:${metal}_double_plate`) - .tier(metalSpecs.tier) - .id(`tfc:welding/${metal}_chestplate`) - - //#endregion - - //#region Поножи - - // Декрафт незавершенных поножей в жидкость - event.recipes.tfc.heating(`tfc:metal/unfinished_greaves/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 288)) - .id(`tfc:heating/metal/${metal}_unfinished_greaves`) - - // Незавершенные поножи - event.recipes.tfc.anvil(`tfc:metal/unfinished_greaves/${metal}`, `gtceu:${metal}_double_plate`, ['bend_any', 'draw_any', 'hit_any']) - .tier(metalSpecs.tier) - .id(`tfc:anvil/${metal}_unfinished_greaves`) - - // Декрафт поножей в жидкость - event.recipes.tfc.heating(`tfc:metal/greaves/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 432)) - .useDurability(true) - .id(`tfc:heating/metal/${metal}_greaves`) - - // Поножи - event.recipes.tfc.welding(`tfc:metal/greaves/${metal}`, `tfc:metal/unfinished_greaves/${metal}`, `gtceu:${metal}_plate`) - .tier(metalSpecs.tier) - .id(`tfc:welding/${metal}_greaves`) - - //#endregion - - //#region Ботинки - - // Декрафт незавершенных ботинок в жидкость - event.recipes.tfc.heating(`tfc:metal/unfinished_boots/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .id(`tfc:heating/metal/${metal}_unfinished_boots`) - - // Незавершенные ботинки - event.recipes.tfc.anvil(`tfc:metal/unfinished_boots/${metal}`, `gtceu:${metal}_plate`, ['bend_last', 'bend_second_last', 'shrink_third_last']) - .tier(metalSpecs.tier) - .id(`tfc:anvil/${metal}_unfinished_boots`) - - // Декрафт ботинок в жидкость - event.recipes.tfc.heating(`tfc:metal/boots/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 288)) - .useDurability(true) - .id(`tfc:heating/metal/${metal}_boots`) - - // Ботинки - event.recipes.tfc.welding(`tfc:metal/boots/${metal}`, `tfc:metal/unfinished_boots/${metal}`, `gtceu:${metal}_plate`) - .tier(metalSpecs.tier) - .id(`tfc:welding/${metal}_boots`) - - //#endregion - } - - if (metalSpecs.props.includes(global.TOOL_GEN)) { - - // Кольцо -> Металл - // event.recipes.tfc.heating(`gtceu:${metal}_ring`, metalSpecs.melt_temp) - // .resultFluid(Fluid.of(metalSpecs.output_fluid, 72)) - // .id(`tfc:heating/metal/${metal}_ring`) - - // Стержень -> Кольцо - // Возможно, когда нибудь, когда они пригодятся - - // Болт -> Металл - 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) - .id(`tfc:anvil/${metal}_screw`) - - //#region Фурма - - // Декрафт инструмента в жидкость - event.recipes.tfc.heating(`tfc:metal/tuyere/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 288)) - .useDurability(true) - .id(`tfc:heating/metal/${metal}_tuyere`) - - // Фурма - event.recipes.tfc.anvil(`tfc:metal/tuyere/${metal}`, `gtceu:${metal}_double_plate`, ['bend_last', 'bend_second_last']) - .tier(metalSpecs.tier) - .id(`tfc:anvil/${metal}_tuyere`) - - //#endregion - - //#region Удочка - - // Декрафт оголовья в жидкость - event.recipes.tfc.heating(`tfc:metal/fish_hook/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .id(`tfc:heating/metal/${metal}_fish_hook`) - - // Крюк удочки - event.recipes.tfc.anvil(`tfc:metal/fish_hook/${metal}`, `gtceu:${metal}_plate`, ['draw_not_last', 'bend_any', 'hit_any']) - .tier(metalSpecs.tier) - .bonus(true) - .id(`tfc:anvil/${metal}_fish_hook`) - - // Декрафт инструмента в жидкость - event.recipes.tfc.heating(`tfc:metal/fishing_rod/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .useDurability(true) - .id(`tfc:heating/metal/${metal}_fishing_rod`) - - //#endregion - - //#region Кирка - - // Крафт инструмента - event.remove({ id: `tfc:crafting/metal/pickaxe/${metal}` }) - - // Декрафт инструмента в жидкость - event.recipes.tfc.heating(`gtceu:${metal}_pickaxe`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .useDurability(true) - .id(`tfc:heating/metal/${metal}_pickaxe`) - - // Крафт оголовья - event.recipes.tfc.anvil(`gtceu:${metal}_pickaxe_head`, `#forge:ingots/${metal}`, ['punch_last', 'bend_not_last', 'draw_not_last']) - .tier(metalSpecs.tier) - .bonus(true) - .id(`tfc:anvil/${metal}_pickaxe_head`) - - // Металл + Форма -> Оголовье - if (metalSpecs.props.includes(global.CAN_BE_UNMOLDED)) { - event.recipes.tfc.casting(`gtceu:${metal}_pickaxe_head`, 'tfc:ceramic/pickaxe_head_mold', TFC.fluidStackIngredient(metalSpecs.output_fluid, 144), 1) - .id(`tfc:casting/${metal}_pickaxe_head`) - } - - // Декрафт оголовья в жидкость - event.recipes.tfc.heating(`gtceu:${metal}_pickaxe_head`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .id(`tfc:heating/metal/${metal}_pickaxe_head`) - - //#endregion - - //#region Проспектор - - // Декрафт инструмента в жидкость - event.recipes.tfc.heating(`tfc:metal/propick/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .useDurability(true) - .id(`tfc:heating/metal/${metal}_propick`) - - // Металл + Форма -> Оголовье - if (metalSpecs.props.includes(global.CAN_BE_UNMOLDED)) { - event.recipes.tfc.casting(`tfc:metal/propick_head/${metal}`, 'tfc:ceramic/propick_head_mold', TFC.fluidStackIngredient(metalSpecs.output_fluid, 144), 1) - .id(`tfc:casting/${metal}_propick_head`) - } - - // Декрафт оголовья в жидкость - event.recipes.tfc.heating(`tfc:metal/propick_head/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .id(`tfc:heating/metal/${metal}_propick_head`) - - //#endregion - - //#region Топор - - // Крафт инструмента - event.remove({ id: `tfc:crafting/metal/axe/${metal}` }) - - // Декрафт инструмента в жидкость - event.recipes.tfc.heating(`gtceu:${metal}_axe`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .useDurability(true) - .id(`tfc:heating/metal/${metal}_axe`) - - // Крафт оголовья - event.recipes.tfc.anvil(`gtceu:${metal}_axe_head`, `#forge:ingots/${metal}`, ['punch_last', 'hit_second_last', 'upset_third_last']) - .tier(metalSpecs.tier) - .bonus(true) - .id(`tfc:anvil/${metal}_axe_head`) - - // Металл + Форма -> Оголовье - if (metalSpecs.props.includes(global.CAN_BE_UNMOLDED)) { - event.recipes.tfc.casting(`gtceu:${metal}_axe_head`, 'tfc:ceramic/axe_head_mold', TFC.fluidStackIngredient(metalSpecs.output_fluid, 144), 1) - .id(`tfc:casting/${metal}_axe_head`) - } - - // Декрафт оголовья в жидкость - event.recipes.tfc.heating(`gtceu:${metal}_axe_head`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .id(`tfc:heating/metal/${metal}_axe_head`) - - //#endregion - - //#region Лопата - - // Крафт инструмента - event.remove({ id: `tfc:crafting/metal/shovel/${metal}` }) - - // Декрафт инструмента в жидкость - event.recipes.tfc.heating(`gtceu:${metal}_shovel`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .useDurability(true) - .id(`tfc:heating/metal/${metal}_shovel`) - - // Крафт оголовья - event.recipes.tfc.anvil(`gtceu:${metal}_shovel_head`, `#forge:ingots/${metal}`, ['punch_last', 'hit_not_last']) - .tier(metalSpecs.tier) - .bonus(true) - .id(`tfc:anvil/${metal}_shovel_head`) - - // Металл + Форма -> Оголовье - if (metalSpecs.props.includes(global.CAN_BE_UNMOLDED)) { - event.recipes.tfc.casting(`gtceu:${metal}_shovel_head`, 'tfc:ceramic/shovel_head_mold', TFC.fluidStackIngredient(metalSpecs.output_fluid, 144), 1) - .id(`tfc:casting/${metal}_shovel_head`) - } - - // Декрафт оголовья в жидкость - event.recipes.tfc.heating(`gtceu:${metal}_shovel_head`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .id(`tfc:heating/metal/${metal}_shovel_head`) - - //#endregion - - //#region Мотыга - - // Крафт инструмента - event.remove({ id: `tfc:crafting/metal/hoe/${metal}` }) - - // Декрафт инструмента в жидкость - event.recipes.tfc.heating(`gtceu:${metal}_hoe`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .useDurability(true) - .id(`tfc:heating/metal/${metal}_hoe`) - - // Крафт оголовья - event.recipes.tfc.anvil(`gtceu:${metal}_hoe_head`, `#forge:ingots/${metal}`, ['punch_last', 'hit_not_last', 'bend_not_last']) - .tier(metalSpecs.tier) - .bonus(true) - .id(`tfc:anvil/${metal}_hoe_head`) - - // Металл + Форма -> Оголовье - if (metalSpecs.props.includes(global.CAN_BE_UNMOLDED)) { - event.recipes.tfc.casting(`gtceu:${metal}_hoe_head`, 'tfc:ceramic/hoe_head_mold', TFC.fluidStackIngredient(metalSpecs.output_fluid, 144), 1) - .id(`tfc:casting/${metal}_hoe_head`) - } - - // Декрафт оголовья в жидкость - event.recipes.tfc.heating(`gtceu:${metal}_hoe_head`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .id(`tfc:heating/metal/${metal}_hoe_head`) - - //#endregion - - //#region Стамеска - - // Декрафт инструмента в жидкость - event.recipes.tfc.heating(`tfc:metal/chisel/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .useDurability(true) - .id(`tfc:heating/metal/${metal}_chisel`) - - // Металл + Форма -> Оголовье - if (metalSpecs.props.includes(global.CAN_BE_UNMOLDED)) { - event.recipes.tfc.casting(`tfc:metal/chisel_head/${metal}`, 'tfc:ceramic/chisel_head_mold', TFC.fluidStackIngredient(metalSpecs.output_fluid, 144), 1) - .id(`tfc:casting/${metal}_chisel_head`) - } - - // Декрафт оголовья в жидкость - event.recipes.tfc.heating(`tfc:metal/chisel_head/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .id(`tfc:heating/metal/${metal}_chisel_head`) - - //#endregion - - //#region Молот - - // Крафт инструмента - event.remove({ id: `tfc:crafting/metal/hammer/${metal}` }) - - // Декрафт инструмента в жидкость - event.recipes.tfc.heating(`gtceu:${metal}_hammer`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .useDurability(true) - .id(`tfc:heating/metal/${metal}_hammer`) - - // Крафт оголовья - event.recipes.tfc.anvil(`gtceu:${metal}_hammer_head`, `#forge:ingots/${metal}`, ['punch_last', 'shrink_not_last']) - .tier(metalSpecs.tier) - .bonus(true) - .id(`tfc:anvil/${metal}_hammer_head`) - - // Металл + Форма -> Оголовье - if (metalSpecs.props.includes(global.CAN_BE_UNMOLDED)) { - event.recipes.tfc.casting(`gtceu:${metal}_hammer_head`, 'tfc:ceramic/hammer_head_mold', TFC.fluidStackIngredient(metalSpecs.output_fluid, 144), 1) - .id(`tfc:casting/${metal}_hammer_head`) - } - - // Декрафт оголовья в жидкость - event.recipes.tfc.heating(`gtceu:${metal}_hammer_head`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .id(`tfc:heating/metal/${metal}_hammer_head`) - - //#endregion - - //#region Пила - - // Крафт инструмента - event.remove({ id: `tfc:crafting/metal/saw/${metal}` }) - - // Декрафт инструмента в жидкость - event.recipes.tfc.heating(`gtceu:${metal}_saw`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .useDurability(true) - .id(`tfc:heating/metal/${metal}_saw`) - - // Крафт оголовья - event.recipes.tfc.anvil(`gtceu:${metal}_saw_head`, `#forge:ingots/${metal}`, ['hit_last', 'hit_second_last']) - .tier(metalSpecs.tier) - .bonus(true) - .id(`tfc:anvil/${metal}_saw_blade`) - - // Металл + Форма -> Оголовье - if (metalSpecs.props.includes(global.CAN_BE_UNMOLDED)) { - event.recipes.tfc.casting(`gtceu:${metal}_saw_head`, 'tfc:ceramic/saw_blade_mold', TFC.fluidStackIngredient(metalSpecs.output_fluid, 144), 1) - .id(`tfc:casting/${metal}_saw_blade`) - } - - // Декрафт оголовья в жидкость - event.recipes.tfc.heating(`gtceu:${metal}_saw_head`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .id(`tfc:heating/metal/${metal}_saw_blade`) - - //#endregion - - //#region Копье - - // Декрафт инструмента в жидкость - event.recipes.tfc.heating(`tfc:metal/javelin/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .useDurability(true) - .id(`tfc:heating/metal/${metal}_javelin`) - - // Металл + Форма -> Оголовье - if (metalSpecs.props.includes(global.CAN_BE_UNMOLDED)) { - event.recipes.tfc.casting(`tfc:metal/javelin_head/${metal}`, 'tfc:ceramic/javelin_head_mold', TFC.fluidStackIngredient(metalSpecs.output_fluid, 144), 1) - .id(`tfc:casting/${metal}_javelin_head`) - } - - // Декрафт оголовья в жидкость - event.recipes.tfc.heating(`tfc:metal/javelin_head/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .id(`tfc:heating/metal/${metal}_javelin_head`) - - //#endregion - - //#region Меч - - // Крафт инструмента - event.remove({ id: `tfc:crafting/metal/sword/${metal}` }) - - // Декрафт инструмента в жидкость - event.recipes.tfc.heating(`gtceu:${metal}_sword`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 288)) - .useDurability(true) - .id(`tfc:heating/metal/${metal}_sword`) - - // Крафт оголовья - event.recipes.tfc.anvil(`gtceu:${metal}_sword_head`, `#forge:double_ingots/${metal}`, ['punch_last', 'bend_not_last', 'draw_not_last']) - .tier(metalSpecs.tier) - .bonus(true) - .id(`tfc:anvil/${metal}_sword_blade`) - - // Металл + Форма -> Оголовье - if (metalSpecs.props.includes(global.CAN_BE_UNMOLDED)) { - event.recipes.tfc.casting(`gtceu:${metal}_sword_head`, 'tfc:ceramic/sword_blade_mold', TFC.fluidStackIngredient(metalSpecs.output_fluid, 288), 1) - .id(`tfc:casting/${metal}_sword_blade`) - } - - // Декрафт оголовья в жидкость - event.recipes.tfc.heating(`gtceu:${metal}_sword_head`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 288)) - .id(`tfc:heating/metal/${metal}_sword_blade`) - - //#endregion - - //#region Дубина - - // Декрафт инструмента в жидкость - event.recipes.tfc.heating(`tfc:metal/mace/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 288)) - .useDurability(true) - .id(`tfc:heating/metal/${metal}_mace`) - - // Металл + Форма -> Оголовье - if (metalSpecs.props.includes(global.CAN_BE_UNMOLDED)) { - event.recipes.tfc.casting(`tfc:metal/mace_head/${metal}`, 'tfc:ceramic/mace_head_mold', TFC.fluidStackIngredient(metalSpecs.output_fluid, 288), 1) - .id(`tfc:casting/${metal}_mace_head`) - } - - // Декрафт оголовья в жидкость - event.recipes.tfc.heating(`tfc:metal/mace_head/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 288)) - .id(`tfc:heating/metal/${metal}_mace_head`) - - //#endregion + event.recipes.tfc.casting(ingotItem, 'tfc:ceramic/fire_ingot_mold', Fluid.of(outputMaterial.getFluid(), 144), 0.01) + .id(`tfc:casting/${material}_fire_ingot`) + + // Double Ingots + let doubleIngotItem = ChemicalHelper.get(TFGTagPrefix.ingotDouble, material, 1) + if (!doubleIngotItem.isEmpty()) { + + // Декрафт двойного слитка в жидкость + event.recipes.tfc.heating(doubleIngotItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 288)) + .id(`tfc:heating/metal/${material}_double_ingot`) + + // 2 слитка -> Двойной слиток + event.recipes.tfc.welding(doubleIngotItem, ingotItem, ingotItem, tfcProperty.getTier()) + .id(`tfc:welding/${material}_double_ingot`) + + // Plates + let plateItem = ChemicalHelper.get(TagPrefix.plate, material, 1) + if (!plateItem.isEmpty()) { + + // Декрафт пластины в жидкость + event.recipes.tfc.heating(plateItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${material}_sheet`) + + // Двойной слиток -> Пластина + event.recipes.tfc.anvil(plateItem, doubleIngotItem, ['hit_last', 'hit_second_last', 'hit_third_last']) + .tier(tfcProperty.getTier()) + .id(`tfc:anvil/${material}_sheet`) + + // Double Plate + let doublePlateItem = ChemicalHelper.get(TagPrefix.plateDouble, material, 1) + if (!doublePlateItem.isEmpty()) { + + // Декрафт двойных пластин + event.recipes.tfc.heating(doublePlateItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 288)) + .id(`tfc:heating/metal/${material}_double_sheet`) + + // Две пластины -> Двойная пластина + event.recipes.tfc.welding(doublePlateItem, plateItem, plateItem) + .tier(tfcProperty.getTier()) + .id(`tfc:welding/${material}_double_sheet`) + + // Armor + if (material.hasFlag(TFGMaterialFlags.HAS_TFC_ARMOR)) { + //#region Шлем + + // Декрафт незавершенного шлема в жидкость + event.recipes.tfc.heating(`tfc:metal/unfinished_helmet/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 288)) + .id(`tfc:heating/metal/${material}_unfinished_helmet`) + + // Незавершенный шлем + event.recipes.tfc.anvil(`tfc:metal/unfinished_helmet/${material}`, doublePlateItem, ['hit_last', 'bend_second_last', 'bend_third_last']) + .tier(tfcProperty.getTier()) + .id(`tfc:anvil/${material}_unfinished_helmet`) + + // Декрафт шлема в жидкость + event.recipes.tfc.heating(`tfc:metal/helmet/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 432)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_helmet`) + + // Шлем + event.recipes.tfc.welding(`tfc:metal/helmet/${material}`, `tfc:metal/unfinished_helmet/${material}`, plateItem) + .tier(tfcProperty.getTier()) + .id(`tfc:welding/${material}_helmet`) + + //#endregion + + //#region Нагрудник + + // Декрафт незавершенного нагрудника в жидкость + event.recipes.tfc.heating(`tfc:metal/unfinished_chestplate/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 288)) + .id(`tfc:heating/metal/${material}_unfinished_chestplate`) + + // Незавершенный нагрудник + event.recipes.tfc.anvil(`tfc:metal/unfinished_chestplate/${material}`, doublePlateItem, ['hit_last', 'hit_second_last', 'upset_third_last']) + .tier(tfcProperty.getTier()) + .id(`tfc:anvil/${material}_unfinished_chestplate`) + + // Декрафт нагрудника в жидкость + event.recipes.tfc.heating(`tfc:metal/chestplate/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 576)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_chestplate`) + + // Нагрудник + event.recipes.tfc.welding(`tfc:metal/chestplate/${material}`, `tfc:metal/unfinished_chestplate/${material}`, doublePlateItem) + .tier(tfcProperty.getTier()) + .id(`tfc:welding/${material}_chestplate`) + + //#endregion + + //#region Поножи + + // Декрафт незавершенных поножей в жидкость + event.recipes.tfc.heating(`tfc:metal/unfinished_greaves/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 288)) + .id(`tfc:heating/metal/${material}_unfinished_greaves`) + + // Незавершенные поножи + event.recipes.tfc.anvil(`tfc:metal/unfinished_greaves/${material}`, doublePlateItem, ['bend_any', 'draw_any', 'hit_any']) + .tier(tfcProperty.getTier()) + .id(`tfc:anvil/${material}_unfinished_greaves`) + + // Декрафт поножей в жидкость + event.recipes.tfc.heating(`tfc:metal/greaves/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 432)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_greaves`) + + // Поножи + event.recipes.tfc.welding(`tfc:metal/greaves/${material}`, `tfc:metal/unfinished_greaves/${material}`, plateItem) + .tier(tfcProperty.getTier()) + .id(`tfc:welding/${material}_greaves`) + + //#endregion + + //#region Ботинки + + // Декрафт незавершенных ботинок в жидкость + event.recipes.tfc.heating(`tfc:metal/unfinished_boots/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${material}_unfinished_boots`) + + // Незавершенные ботинки + event.recipes.tfc.anvil(`tfc:metal/unfinished_boots/${material}`, plateItem, ['bend_last', 'bend_second_last', 'shrink_third_last']) + .tier(tfcProperty.getTier()) + .id(`tfc:anvil/${material}_unfinished_boots`) + + // Декрафт ботинок в жидкость + event.recipes.tfc.heating(`tfc:metal/boots/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 288)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_boots`) + + // Ботинки + event.recipes.tfc.welding(`tfc:metal/boots/${material}`, `tfc:metal/unfinished_boots/${material}`, plateItem) + .tier(tfcProperty.getTier()) + .id(`tfc:welding/${material}_boots`) + + //#endregion + } + + // Tools (From Double Plate) + if (material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) { + //#region Фурма + + // Декрафт инструмента в жидкость + event.recipes.tfc.heating(`tfc:metal/tuyere/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 288)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_tuyere`) + + // Фурма + event.recipes.tfc.anvil(`tfc:metal/tuyere/${material}`, doublePlateItem, ['bend_last', 'bend_second_last']) + .tier(tfcProperty.getTier()) + .id(`tfc:anvil/${material}_tuyere`) + + //#endregion + + //#region Щит - //#region Нож + // Декрафт щита в жидкость + event.recipes.tfc.heating(`tfc:metal/shield/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 288)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_shield`) + + // Щит + event.recipes.tfc.anvil(`tfc:metal/shield/${material}`, doublePlateItem, ['upset_last', 'bend_second_last', 'bend_third_last']) + .tier(tfcProperty.getTier()) + .id(`tfc:anvil/${material}_shield`) + + //#endregion + + //#region Конская броня + + // Декрафт конской брони в жидкость + event.recipes.tfc.heating(`tfc:metal/horse_armor/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 864)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_horse_armor`) + + //#endregion + } + + } + + // Tools (From Plate) + if (material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) { + //#region Удочка + + // Декрафт оголовья в жидкость + event.recipes.tfc.heating(`tfc:metal/fish_hook/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${material}_fish_hook`) + + // Крюк удочки + event.recipes.tfc.anvil(`tfc:metal/fish_hook/${material}`, plateItem, ['draw_not_last', 'bend_any', 'hit_any']) + .tier(tfcProperty.getTier()) + .bonus(true) + .id(`tfc:anvil/${material}_fish_hook`) + + // Декрафт инструмента в жидкость + event.recipes.tfc.heating(`tfc:metal/fishing_rod/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_fishing_rod`) + + //#endregion + } + + } + + // Tools (From Double Ingots) + if (material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) { + //#region Меч + + // Крафт инструмента + event.remove({ id: `tfc:crafting/metal/sword/${material}` }) - // Крафт инструмента - event.remove({ id: `tfc:crafting/metal/knife/${metal}` }) + // Декрафт инструмента в жидкость + let swordItem = $ToolHelper.get(GTToolType.SWORD, material) + if (!swordItem.isEmpty()) { + + event.recipes.tfc.heating(swordItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 288)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_sword`) - // Декрафт инструмента в жидкость - event.recipes.tfc.heating(`gtceu:${metal}_knife`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .useDurability(true) - .id(`tfc:heating/metal/${metal}_knife`) + } + + let swordHeadItem = ChemicalHelper.get(TFGTagPrefix.toolHeadSword, material, 1) + if (!swordHeadItem.isEmpty()) { + + // Декрафт оголовья в жидкость + event.recipes.tfc.heating(swordHeadItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 288)) + .id(`tfc:heating/metal/${material}_sword_blade`) - // Крафт оголовья - event.recipes.tfc.anvil(`gtceu:${metal}_knife_head`, `#forge:ingots/${metal}`, ['punch_last', 'bend_not_last', 'draw_not_last']) - .tier(metalSpecs.tier) - .bonus(true) - .id(`tfc:anvil/${metal}_knife_blade`) + // Крафт оголовья + event.recipes.tfc.anvil(swordHeadItem, doubleIngotItem, ['punch_last', 'bend_not_last', 'draw_not_last']) + .tier(tfcProperty.getTier()) + .bonus(true) + .id(`tfc:anvil/${material}_sword_blade`) + + // Металл + Форма -> Оголовье + if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) { + event.recipes.tfc.casting(swordHeadItem, 'tfc:ceramic/sword_blade_mold', Fluid.of(outputMaterial.getFluid(), 288), 1) + .id(`tfc:casting/${material}_sword_blade`) + } + + } + + //#endregion + + //#region Дубина + + // Декрафт инструмента в жидкость + event.recipes.tfc.heating(`tfc:metal/mace/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 288)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_mace`) + + // Металл + Форма -> Оголовье + if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) { + event.recipes.tfc.casting(`tfc:metal/mace_head/${material}`, 'tfc:ceramic/mace_head_mold', Fluid.of(outputMaterial.getFluid(), 288), 1) + .id(`tfc:casting/${material}_mace_head`) + } + + // Декрафт оголовья в жидкость + event.recipes.tfc.heating(`tfc:metal/mace_head/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 288)) + .id(`tfc:heating/metal/${material}_mace_head`) + + //#endregion - // Металл + Форма -> Оголовье - if (metalSpecs.props.includes(global.CAN_BE_UNMOLDED)) { - event.recipes.tfc.casting(`gtceu:${metal}_knife_head`, 'tfc:ceramic/knife_blade_mold', TFC.fluidStackIngredient(metalSpecs.output_fluid, 144), 1) - .id(`tfc:casting/${metal}_knife_blade`) + //#region Мясницкий нож + + // Декрафт инструмента в жидкость + let butcheryKnifeItem = $ToolHelper.get(GTToolType.BUTCHERY_KNIFE, material) + if (!butcheryKnifeItem.isEmpty()) { + + event.recipes.tfc.heating(butcheryKnifeItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_butchery_knife`) + + } + + let butcheryKnifeHeadItem = ChemicalHelper.get(TFGTagPrefix.toolHeadButcheryKnife, material, 1) + if (!butcheryKnifeHeadItem.isEmpty()) { + + // Декрафт оголовья в жидкость + event.recipes.tfc.heating(butcheryKnifeHeadItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${material}_knife_butchery_head`) + + // Крафт оголовья + event.recipes.tfc.anvil(butcheryKnifeHeadItem, `#forge:ingots/${material}`, ['punch_last', 'bend_not_last', 'bend_not_last']) + .tier(tfcProperty.getTier()) + .bonus(true) + .id(`tfc:anvil/${material}_knife_butchery_head`) + + } + + //#endregion + + //#region Молот шахтера + + // Декрафт инструмента в жидкость + let miningHammerItem = $ToolHelper.get(GTToolType.MINING_HAMMER, material) + if (!miningHammerItem.isEmpty()) { + + event.recipes.tfc.heating(miningHammerItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 288)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_mining_hammer`) + + } + + + let miningHammerHeadItem = ChemicalHelper.get(TFGTagPrefix.toolHeadMiningHammer, material, 1) + if (!miningHammerHeadItem.isEmpty()) { + + // Декрафт оголовья в жидкость + event.recipes.tfc.heating(miningHammerHeadItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 288)) + .id(`tfc:heating/metal/${material}_mining_hammer_head`) + + // Крафт оголовья + event.recipes.tfc.anvil(miningHammerHeadItem, doubleIngotItem, ['punch_last', 'shrink_not_last']) + .tier(tfcProperty.getTier()) + .bonus(true) + .id(`tfc:anvil/${material}_mining_hammer_head`) + + } + + //#endregion + + //#region Большая лопата + + // Декрафт инструмента в жидкость + let spadeItem = $ToolHelper.get(GTToolType.SPADE, material) + if (!spadeItem.isEmpty()) { + + event.recipes.tfc.heating(spadeItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 288)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_spade`) + + } + + let spadeHeadItem = ChemicalHelper.get(TFGTagPrefix.toolHeadSpade, material, 1) + if (!spadeHeadItem.isEmpty()) { + + // Крафт оголовья + event.recipes.tfc.anvil(spadeHeadItem, doubleIngotItem, ['punch_last', 'hit_not_last']) + .tier(tfcProperty.getTier()) + .bonus(true) + .id(`tfc:anvil/${material}_spade_head`) + + // Декрафт оголовья в жидкость + event.recipes.tfc.heating(spadeHeadItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 288)) + .id(`tfc:heating/metal/${material}_spade_head`) + + } + + //#endregion + } + + } + + // Rods + let rodItem = ChemicalHelper.get(TagPrefix.rod, material, 1) + if (!rodItem.isEmpty()) { + + // Декрафт стержня в жидкость + event.recipes.tfc.heating(rodItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 72)) + .id(`tfc:heating/metal/${material}_rod`) + + // Слиток -> 2 Стержня + event.recipes.tfc.anvil(rodItem.withCount(2), ingotItem, ['bend_last', 'draw_second_last', 'draw_third_last']) + .tier(tfcProperty.getTier()) + .id(`tfc:anvil/${material}_rod`) + + // Long Rods + let longRodItem = ChemicalHelper.get(TagPrefix.rodLong, material, 1) + if (!longRodItem.isEmpty()) { + + // Декрафт длинного стержня в жидкость + event.recipes.tfc.heating(longRodItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${material}_long_rod`) + + // Стержни -> Длинный стержень + event.recipes.tfc.welding(longRodItem, rodItem, rodItem) + .tier(tfcProperty.getTier()) + .id(`tfc:anvil/${material}_long_rod`) + + } + + // Bolt + let boltItem = ChemicalHelper.get(TagPrefix.bolt, material, 1) + if (!boltItem.isEmpty()) { + + // Болт -> Металл + event.recipes.tfc.heating(boltItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 36)) + .id(`tfc:heating/metal/${material}_bolt`) + + // Стержень -> Болт + event.recipes.tfc.anvil(boltItem.withCount(2), rodItem, ['punch_last', 'draw_second_last', 'draw_third_last']) + .tier(tfcProperty.getTier()) + .id(`tfc:anvil/${material}_bolt`) + + } + + // Screw + let screwItem = ChemicalHelper.get(TagPrefix.screw, material, 1) + if (!screwItem.isEmpty()) { + + // Винт -> Металл + event.recipes.tfc.heating(screwItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 72)) + .id(`tfc:heating/metal/${material}_screw`) + + // Стержень -> Винт + event.recipes.tfc.anvil(screwItem, rodItem, ['punch_last', 'punch_second_last', 'shrink_third_last']) + .tier(tfcProperty.getTier()) + .id(`tfc:anvil/${material}_screw`) + + } + + let ringItem = ChemicalHelper.get(TagPrefix.ring, material, 1) + if (!ringItem.isEmpty()) { + + // Кольцо -> Металл + event.recipes.tfc.heating(ringItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 72)) + .id(`tfc:heating/metal/${material}_ring`) + + // Стержень -> Кольцо + event.recipes.tfc.anvil(ringItem, rodItem, ['hit_last', 'hit_second_last', 'hit_third_last']) + .tier(tfcProperty.getTier()) + .id(`tfc:anvil/${material}_ring`) + + } + + } + + // Tools (From Ingot) + if (material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) { + + //#region Кирка + + // Крафт инструмента + event.remove({ id: `tfc:crafting/metal/pickaxe/${material}` }) + + // Декрафт инструмента в жидкость + let pickaxeItem = $ToolHelper.get(GTToolType.PICKAXE, material) + if (!pickaxeItem.isEmpty()) { + + event.recipes.tfc.heating(`gtceu:${material}_pickaxe`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_pickaxe`) + + } + + let pickaxeHeadItem = ChemicalHelper.get(TFGTagPrefix.toolHeadPickaxe, material, 1) + if (!pickaxeHeadItem.isEmpty()) { + + // Декрафт оголовья в жидкость + event.recipes.tfc.heating(pickaxeHeadItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${material}_pickaxe_head`) + + // Крафт оголовья + event.recipes.tfc.anvil(pickaxeHeadItem, ingotItem, ['punch_last', 'bend_not_last', 'draw_not_last']) + .tier(tfcProperty.getTier()) + .bonus(true) + .id(`tfc:anvil/${material}_pickaxe_head`) + + // Металл + Форма -> Оголовье + if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) { + event.recipes.tfc.casting(pickaxeHeadItem, 'tfc:ceramic/pickaxe_head_mold', Fluid.of(outputMaterial.getFluid(), 144), 1) + .id(`tfc:casting/${material}_pickaxe_head`) + } + + } + + //#endregion + + //#region Топор + + // Крафт инструмента + event.remove({ id: `tfc:crafting/metal/axe/${material}` }) + + // Декрафт инструмента в жидкость + let axeItem = $ToolHelper.get(GTToolType.AXE, material) + if (!axeItem.isEmpty()) { + + event.recipes.tfc.heating(axeItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_axe`) + + } + + let axeHeadItem = ChemicalHelper.get(TFGTagPrefix.toolHeadAxe, material, 1) + if (!axeHeadItem.isEmpty()) { + // Декрафт оголовья в жидкость + event.recipes.tfc.heating(axeHeadItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${material}_axe_head`) + + // Крафт оголовья + event.recipes.tfc.anvil(axeHeadItem, ingotItem, ['punch_last', 'hit_second_last', 'upset_third_last']) + .tier(tfcProperty.getTier()) + .bonus(true) + .id(`tfc:anvil/${material}_axe_head`) + + // Металл + Форма -> Оголовье + if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) { + event.recipes.tfc.casting(axeHeadItem, 'tfc:ceramic/axe_head_mold', Fluid.of(outputMaterial.getFluid(), 144), 1) + .id(`tfc:casting/${material}_axe_head`) + } + } + + //#endregion + + //#region Лопата + + // Крафт инструмента + event.remove({ id: `tfc:crafting/metal/shovel/${material}` }) + + // Декрафт инструмента в жидкость + let shovelItem = $ToolHelper.get(GTToolType.SHOVEL, material) + if (!shovelItem.isEmpty()) { + + event.recipes.tfc.heating(shovelItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_shovel`) + + } + + let shovelHeadItem = ChemicalHelper.get(TFGTagPrefix.toolHeadShovel, material, 1) + if (!shovelHeadItem.isEmpty()) { + + // Декрафт оголовья в жидкость + event.recipes.tfc.heating(shovelHeadItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${material}_shovel_head`) + + // Крафт оголовья + event.recipes.tfc.anvil(shovelHeadItem, ingotItem, ['punch_last', 'hit_not_last']) + .tier(tfcProperty.getTier()) + .bonus(true) + .id(`tfc:anvil/${material}_shovel_head`) + + // Металл + Форма -> Оголовье + if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) { + event.recipes.tfc.casting(shovelHeadItem, 'tfc:ceramic/shovel_head_mold', Fluid.of(outputMaterial.getFluid(), 144), 1) + .id(`tfc:casting/${material}_shovel_head`) + } + + } + + //#endregion + + //#region Мотыга + + // Крафт инструмента + event.remove({ id: `tfc:crafting/metal/hoe/${material}` }) + + // Декрафт инструмента в жидкость + let hoeItem = $ToolHelper.get(GTToolType.HOE, material) + if (!hoeItem.isEmpty()) { + event.recipes.tfc.heating(hoeItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_hoe`) + } + + let hoeHeadItem = ChemicalHelper.get(TFGTagPrefix.toolHeadHoe, material, 1) + if (!hoeHeadItem.isEmpty()) { + + // Декрафт оголовья в жидкость + event.recipes.tfc.heating(hoeHeadItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${material}_hoe_head`) + + // Крафт оголовья + event.recipes.tfc.anvil(hoeHeadItem, ingotItem, ['punch_last', 'hit_not_last', 'bend_not_last']) + .tier(tfcProperty.getTier()) + .bonus(true) + .id(`tfc:anvil/${material}_hoe_head`) + + // Металл + Форма -> Оголовье + if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) { + event.recipes.tfc.casting(hoeHeadItem, 'tfc:ceramic/hoe_head_mold', Fluid.of(outputMaterial.getFluid(), 144), 1) + .id(`tfc:casting/${material}_hoe_head`) + } + + } + + //#endregion + + //#region Молот + + // Крафт инструмента + event.remove({ id: `tfc:crafting/metal/hammer/${material}` }) + + // Декрафт инструмента в жидкость + let hammerItem = $ToolHelper.get(GTToolType.HARD_HAMMER, material) + if (!hammerItem.isEmpty()) { + + event.recipes.tfc.heating(hammerItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_hammer`) + + } + + let hammerHeadItem = ChemicalHelper.get(TFGTagPrefix.toolHeadHammer, material, 1) + if (!hammerHeadItem.isEmpty()) { + + // Декрафт оголовья в жидкость + event.recipes.tfc.heating(hammerHeadItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${material}_hammer_head`) + + // Крафт оголовья + event.recipes.tfc.anvil(hammerHeadItem, ingotItem, ['punch_last', 'shrink_not_last']) + .tier(tfcProperty.getTier()) + .bonus(true) + .id(`tfc:anvil/${material}_hammer_head`) + + // Металл + Форма -> Оголовье + if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) { + event.recipes.tfc.casting(hammerHeadItem, 'tfc:ceramic/hammer_head_mold', Fluid.of(outputMaterial.getFluid(), 144), 1) + .id(`tfc:casting/${material}_hammer_head`) + } + + } + + //#endregion + + //#region Пила + + // Крафт инструмента + event.remove({ id: `tfc:crafting/metal/saw/${material}` }) + + // Декрафт инструмента в жидкость + let sawItem = $ToolHelper.get(GTToolType.SAW, material) + if (!sawItem.isEmpty()) { + + event.recipes.tfc.heating(sawItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_saw`) + + } + + let sawHeadItem = ChemicalHelper.get(TFGTagPrefix.toolHeadSaw, material, 1) + if (!sawHeadItem.isEmpty()) { + + // Декрафт оголовья в жидкость + event.recipes.tfc.heating(sawHeadItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${material}_saw_blade`) + + // Крафт оголовья + event.recipes.tfc.anvil(sawHeadItem, ingotItem, ['hit_last', 'hit_second_last']) + .tier(tfcProperty.getTier()) + .bonus(true) + .id(`tfc:anvil/${material}_saw_blade`) + + // Металл + Форма -> Оголовье + if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) { + event.recipes.tfc.casting(sawHeadItem, 'tfc:ceramic/saw_blade_mold', Fluid.of(outputMaterial.getFluid(), 144), 1) + .id(`tfc:casting/${material}_saw_blade`) + } + + } + + //#endregion + + //#region Коса + + // Крафт инструмента + event.remove({ id: `tfc:crafting/metal/scythe/${material}` }) + + // Декрафт инструмента в жидкость + let scytheItem = $ToolHelper.get(GTToolType.SCYTHE, material) + if (!scytheItem.isEmpty()) { + event.recipes.tfc.heating(scytheItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_scythe`) + } + + let scytheHeadItem = ChemicalHelper.get(TFGTagPrefix.toolHeadScythe, material, 1) + if (!scytheHeadItem.isEmpty()) { + + // Декрафт оголовья в жидкость + event.recipes.tfc.heating(scytheHeadItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${material}_scythe_blade`) + + // Крафт оголовья + event.recipes.tfc.anvil(scytheHeadItem, ingotItem, ['punch_last', 'bend_not_last', 'draw_not_last']) + .tier(tfcProperty.getTier()) + .bonus(true) + .id(`tfc:anvil/${material}_scythe_blade`) + + // Металл + Форма -> Оголовье + if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) { + event.recipes.tfc.casting(scytheHeadItem, 'tfc:ceramic/scythe_blade_mold', Fluid.of(outputMaterial.getFluid(), 144), 1) + .id(`tfc:casting/${material}_scythe_blade`) + } + + } + + //#endregion + + //#region Напильник + + // Декрафт инструмента в жидкость + let fileItem = $ToolHelper.get(GTToolType.FILE, material) + if (!fileItem.isEmpty()) { + event.recipes.tfc.heating(fileItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_file`) + } + + let fileHeadItem = ChemicalHelper.get(TFGTagPrefix.toolHeadFile, material, 1) + if (!fileHeadItem.isEmpty()) { + + // Декрафт оголовья в жидкость + event.recipes.tfc.heating(fileHeadItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${material}_file_head`) + + // Крафт оголовья + event.recipes.tfc.anvil(fileHeadItem, ingotItem, ['upset_last', 'bend_not_last', 'punch_not_last']) + .tier(tfcProperty.getTier()) + .bonus(true) + .id(`tfc:anvil/${material}_file_head`) + + } + + //#endregion + + //#region Нож + + // Крафт инструмента + event.remove({ id: `tfc:crafting/metal/knife/${material}` }) + + // Декрафт инструмента в жидкость + let knifeItem = $ToolHelper.get(GTToolType.KNIFE, material) + if (!knifeItem.isEmpty()) { + event.recipes.tfc.heating(knifeItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_knife`) + } + + let knifeHeadItem = ChemicalHelper.get(TFGTagPrefix.toolHeadKnife, material, 1) + if (!knifeHeadItem.isEmpty()) { + + // Декрафт оголовья в жидкость + event.recipes.tfc.heating(knifeHeadItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${material}_knife_blade`) + + // Крафт оголовья + event.recipes.tfc.anvil(knifeHeadItem, ingotItem, ['punch_last', 'bend_not_last', 'draw_not_last']) + .tier(tfcProperty.getTier()) + .bonus(true) + .id(`tfc:anvil/${material}_knife_blade`) + + // Металл + Форма -> Оголовье + if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) { + event.recipes.tfc.casting(knifeHeadItem, 'tfc:ceramic/knife_blade_mold', Fluid.of(outputMaterial.getFluid(), 144), 1) + .id(`tfc:casting/${material}_knife_blade`) + } + + //#region Ножницы + + // Сварка оголовий + event.recipes.tfc.welding(`tfc:metal/shears/${material}`, knifeHeadItem, knifeHeadItem, tfcProperty.getTier()) + .id(`tfc:welding/${material}_shears`) + + // Декрафт инструмента в жидкость + event.recipes.tfc.heating(`tfc:metal/shears/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 288)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_shears`) + + //#endregion + + } + + //#endregion + + //#region Проспектор + + // Декрафт инструмента в жидкость + event.recipes.tfc.heating(`tfc:metal/propick/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_propick`) + + // Декрафт оголовья в жидкость + event.recipes.tfc.heating(`tfc:metal/propick_head/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${material}_propick_head`) + + // Металл + Форма -> Оголовье + if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) { + event.recipes.tfc.casting(`tfc:metal/propick_head/${material}`, 'tfc:ceramic/propick_head_mold', Fluid.of(outputMaterial.getFluid(), 144), 1) + .id(`tfc:casting/${material}_propick_head`) + } + + //#endregion + + //#region Стамеска + + // Декрафт инструмента в жидкость + event.recipes.tfc.heating(`tfc:metal/chisel/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_chisel`) + + // Декрафт оголовья в жидкость + event.recipes.tfc.heating(`tfc:metal/chisel_head/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${material}_chisel_head`) + + // Металл + Форма -> Оголовье + if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) { + event.recipes.tfc.casting(`tfc:metal/chisel_head/${material}`, 'tfc:ceramic/chisel_head_mold', Fluid.of(outputMaterial.getFluid(), 144), 1) + .id(`tfc:casting/${material}_chisel_head`) + } + + //#endregion + + //#region Копье + + // Декрафт инструмента в жидкость + event.recipes.tfc.heating(`tfc:metal/javelin/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .useDurability(true) + .id(`tfc:heating/metal/${material}_javelin`) + + // Декрафт оголовья в жидкость + event.recipes.tfc.heating(`tfc:metal/javelin_head/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${material}_javelin_head`) + + // Металл + Форма -> Оголовье + if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) { + event.recipes.tfc.casting(`tfc:metal/javelin_head/${material}`, 'tfc:ceramic/javelin_head_mold', Fluid.of(outputMaterial.getFluid(), 144), 1) + .id(`tfc:casting/${material}_javelin_head`) + } + + //#endregion + + } + } - // Декрафт оголовья в жидкость - event.recipes.tfc.heating(`gtceu:${metal}_knife_head`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .id(`tfc:heating/metal/${metal}_knife_blade`) - - //#endregion - - //#region Коса - - // Крафт инструмента - event.remove({ id: `tfc:crafting/metal/scythe/${metal}` }) - - // Декрафт инструмента в жидкость - event.recipes.tfc.heating(`gtceu:${metal}_scythe`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .useDurability(true) - .id(`tfc:heating/metal/${metal}_scythe`) - - // Крафт оголовья - event.recipes.tfc.anvil(`gtceu:${metal}_scythe_head`, `#forge:ingots/${metal}`, ['punch_last', 'bend_not_last', 'draw_not_last']) - .tier(metalSpecs.tier) - .bonus(true) - .id(`tfc:anvil/${metal}_scythe_blade`) - - // Металл + Форма -> Оголовье - if (metalSpecs.props.includes(global.CAN_BE_UNMOLDED)) { - event.recipes.tfc.casting(`gtceu:${metal}_scythe_head`, 'tfc:ceramic/scythe_blade_mold', TFC.fluidStackIngredient(metalSpecs.output_fluid, 144), 1) - .id(`tfc:casting/${metal}_scythe_blade`) + // Blocks + let blockItem = ChemicalHelper.get(TagPrefix.block, material, 1) + if (!blockItem.isEmpty()) { + + // Декрафт блока в жидкость + event.recipes.tfc.heating(`#forge:storage_blocks/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 1296)) + .id(`tfc:heating/metal/${material}_block`) + } - // Декрафт оголовья в жидкость - event.recipes.tfc.heating(`gtceu:${metal}_scythe_head`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .id(`tfc:heating/metal/${metal}_scythe_blade`) + // Anvils, Lamps, Trapdors, Chains + if (material.hasFlag(TFGMaterialFlags.HAS_TFC_UTILITY)) { + + // Декрафт незавершенной лампы в жидкость + event.recipes.tfc.heating(`tfc:metal/unfinished_lamp/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${material}_unfinished_lamp`) + + // Декрафт лампы в жидкость + event.recipes.tfc.heating(`tfc:metal/lamp/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${material}_lamp`) + + // Декрафт люка в жидкость + event.recipes.tfc.heating(`tfc:metal/trapdoor/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${material}_trapdoor`) + + // Люк + event.recipes.tfc.anvil(`tfc:metal/trapdoor/${material}`, `gtceu:${material}_plate`, ['bend_last', 'draw_second_last', 'draw_third_last']) + .tier(tfcProperty.getTier()) + .id(`tfc:anvil/${material}_trapdoor`) + + // Декрафт решетки в жидкость + event.recipes.tfc.heating(`tfc:metal/bars/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 18)) + .id(`tfc:heating/metal/${material}_bars`) + + // 8x Решетка + event.recipes.tfc.anvil(`8x tfc:metal/bars/${material}`, `gtceu:${material}_plate`, ['upset_last', 'punch_second_last', 'punch_third_last']) + .tier(tfcProperty.getTier()) + .id(`tfc:anvil/${material}_bars`) + + // 16x Решетка + event.recipes.tfc.anvil(`16x tfc:metal/bars/${material}`, `gtceu:${material}_double_plate`, ['upset_last', 'punch_second_last', 'punch_third_last']) + .tier(tfcProperty.getTier()) + .id(`tfc:anvil/${material}_bars_double`) + + // Декрафт цепи в жидкость + event.recipes.tfc.heating(`tfc:metal/chain/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 9)) + .id(`tfc:heating/metal/${material}_chain`) + + // Декрафт наковальни в жидкость + event.recipes.tfc.heating(`tfc:metal/anvil/${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 2016)) + .id(`tfc:heating/metal/${material}_anvil`) + + // Наковальня из слитков + event.recipes.gtceu.alloy_smelter(`ingots_to_${material}_anvil`) + .itemInputs(`14x #forge:ingots/${material}`) + .notConsumable('gtceu:anvil_casting_mold') + .itemOutputs(`tfc:metal/anvil/${material}`) + .duration(1680) + .EUt(16) + + // Наковальня из жидкости + event.recipes.gtceu.fluid_solidifier(`solidify_${material}_anvil`) + .inputFluids(Fluid.of(outputMaterial.getFluid(), 2016)) + .notConsumable('gtceu:anvil_casting_mold') + .itemOutputs(`tfc:metal/anvil/${material}`) + .duration(1680) + .EUt(16) + } + + // Small TFC Ores + if (material.hasFlag(TFGMaterialFlags.HAS_SMALL_TFC_ORE)) { + // Декрафт мелкого кусочка в жидкость + event.recipes.tfc.heating(`tfc:ore/small_${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 16)) + .id(`tfc:heating/ore/small_${material}`) + } + + // Small Native TFC Ores + if (material.hasFlag(TFGMaterialFlags.HAS_SMALL_NATIVE_TFC_ORE)) { + // Декрафт мелкого кусочка в жидкость + event.recipes.tfc.heating(`tfc:ore/small_native_${material}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 16)) + .id(`tfc:heating/ore/small_native_${material}`) + } + + // Any Dusts from GTCEu + if (material.hasProperty(PropertyKey.DUST)) { + + // Декрафт мелкой пыли + let tinyDust = ChemicalHelper.get(TagPrefix.dustTiny, material, 1) + if (!tinyDust.isEmpty()) { + + event.recipes.tfc.heating(tinyDust, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), global.calcAmountOfMetal(16, tfcProperty.getPercentOfMaterial()))) + .id(`tfg:heating/tiny_dust/${material}`) + + } + + // Декрафт средней пыли + let smallDust = ChemicalHelper.get(TagPrefix.dustSmall, material, 1) + if (!smallDust.isEmpty()) { + + event.recipes.tfc.heating(smallDust, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), global.calcAmountOfMetal(36, tfcProperty.getPercentOfMaterial()))) + .id(`tfg:heating/small_dust/${material}`) + + } + + // Декрафт пыли + let dust = ChemicalHelper.get(TagPrefix.dust, material, 1) + if (!dust.isEmpty()) { + + event.recipes.tfc.heating(dust, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), global.calcAmountOfMetal(144, tfcProperty.getPercentOfMaterial()))) + .id(`tfg:heating/dust/${material}`) + + } - //#endregion + // Декрафт грязной пыли + let impureDust = ChemicalHelper.get(TagPrefix.dustImpure, material, 1) + if (!impureDust.isEmpty()) { + + event.recipes.tfc.heating(impureDust, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), global.calcAmountOfMetal(80, tfcProperty.getPercentOfMaterial()))) + .id(`tfg:heating/impure_dust/${material}`) + + } - //#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 Большая лопата + // Декрафт очищенной пыли + let purifiedDust = ChemicalHelper.get(TagPrefix.dustPure, material, 1) + if (!purifiedDust.isEmpty()) { + + event.recipes.tfc.heating(purifiedDust, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), global.calcAmountOfMetal(120, tfcProperty.getPercentOfMaterial()))) + .id(`tfg:heating/purified_dust/${material}`) + + } - // Декрафт инструмента в жидкость - 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`) + } + + // Any Ores from GTCEu + if (material.hasProperty(PropertyKey.ORE)) { + + // Декрафт ломанной руды + let crushedOre = ChemicalHelper.get(TagPrefix.crushed, material, 1) + if (!crushedOre.isEmpty()) { + + event.recipes.tfc.heating(crushedOre, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), global.calcAmountOfMetal(80, tfcProperty.getPercentOfMaterial()))) + .id(`tfg:heating/crushed_ore/${material}`) + + } - // Крафт оголовья - 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`) + // Декрафт ломанной очищенной руды + let crushedPurifiedOre = ChemicalHelper.get(TagPrefix.crushedPurified, material, 1) + if (!crushedPurifiedOre.isEmpty()) { + + event.recipes.tfc.heating(crushedPurifiedOre, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), global.calcAmountOfMetal(100, tfcProperty.getPercentOfMaterial()))) + .id(`tfg:heating/crushed_purified_ore/${material}`) + + } - // Декрафт оголовья в жидкость - 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`) + // Декрафт центрифугированной ломанной руды + let crushedRefinedOre = ChemicalHelper.get(TagPrefix.crushedRefined, material, 1) + if (!crushedRefinedOre.isEmpty()) { + + event.recipes.tfc.heating(crushedRefinedOre, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), global.calcAmountOfMetal(110, tfcProperty.getPercentOfMaterial()))) + .id(`tfg:heating/crushed_refined_ore/${material}`) + + } - //#endregion + // Декрафт богатого куска руды + let richRawOre = ChemicalHelper.get(TFGTagPrefix.richRawOre, material, 1) + if (!richRawOre.isEmpty()) { + + event.recipes.tfc.heating(richRawOre, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), global.calcAmountOfMetal(48, tfcProperty.getPercentOfMaterial()))) + .id(`tfg:heating/rich_raw/${material}`) + + } + + // Декрафт нормального куска руды + let normalRawOre = ChemicalHelper.get(TagPrefix.rawOre, material, 1) + if (!normalRawOre.isEmpty()) { + + event.recipes.tfc.heating(normalRawOre, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), global.calcAmountOfMetal(36, tfcProperty.getPercentOfMaterial()))) + .id(`tfg:heating/raw/${material}`) + + } + + // Декрафт бедного куска руды + let poorRawOre = ChemicalHelper.get(TFGTagPrefix.poorRawOre, material, 1) + if (!poorRawOre.isEmpty()) { + event.recipes.tfc.heating(poorRawOre, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), global.calcAmountOfMetal(24, tfcProperty.getPercentOfMaterial()))) + .id(`tfg:heating/poor_raw/${material}`) + } + } - //#region Ножницы - - // Сварка оголовий - event.recipes.tfc.welding(`tfc:metal/shears/${metal}`, `gtceu:${metal}_knife_head`, `gtceu:${metal}_knife_head`, metalSpecs.tier) - .id(`tfc:welding/${metal}_shears`) - - // Декрафт инструмента в жидкость - event.recipes.tfc.heating(`tfc:metal/shears/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 288)) - .useDurability(true) - .id(`tfc:heating/metal/${metal}_shears`) - - //#endregion - - //#region Щит - - // Декрафт щита в жидкость - event.recipes.tfc.heating(`tfc:metal/shield/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 288)) - .useDurability(true) - .id(`tfc:heating/metal/${metal}_shield`) - - // Щит - event.recipes.tfc.anvil(`tfc:metal/shield/${metal}`, `gtceu:${metal}_double_plate`, ['upset_last', 'bend_second_last', 'bend_third_last']) - .tier(metalSpecs.tier) - .id(`tfc:anvil/${metal}_shield`) - - //#endregion - - //#region Конская броня + // Nuggets + let nuggetItem = ChemicalHelper.get(TagPrefix.nugget, material, 1) + if (!nuggetItem.isEmpty()) { + + // Декрафт самородков пыли + event.recipes.tfc.heating(nuggetItem, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), global.calcAmountOfMetal(16, tfcProperty.getPercentOfMaterial()))) + .id(`tfg:heating/nugget/${material}`) + + } - // Декрафт конской брони в жидкость - event.recipes.tfc.heating(`tfc:metal/horse_armor/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 864)) - .useDurability(true) - .id(`tfc:heating/metal/${metal}_horse_armor`) - - //#endregion - - //#region Мясницкий нож - - // Декрафт инструмента в жидкость - event.recipes.tfc.heating(`gtceu:${metal}_butchery_knife`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .useDurability(true) - .id(`tfc:heating/metal/${metal}_butchery_knife`) - - // Крафт оголовья - event.recipes.tfc.anvil(`gtceu:${metal}_knife_butchery_head`, `#forge:ingots/${metal}`, ['punch_last', 'bend_not_last', 'bend_not_last']) - .tier(metalSpecs.tier) - .bonus(true) - .id(`tfc:anvil/${metal}_knife_butchery_head`) - - // Декрафт оголовья в жидкость - event.recipes.tfc.heating(`gtceu:${metal}_knife_butchery_head`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .id(`tfc:heating/metal/${metal}_knife_butchery_head`) - - //#endregion - - //#region Напильник - - // Декрафт инструмента в жидкость - event.recipes.tfc.heating(`gtceu:${metal}_file`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .useDurability(true) - .id(`tfc:heating/metal/${metal}_file`) - - // Крафт оголовья - event.recipes.tfc.anvil(`gtceu:${metal}_file_head`, `#forge:ingots/${metal}`, ['upset_last', 'bend_not_last', 'punch_not_last']) - .tier(metalSpecs.tier) - .bonus(true) - .id(`tfc:anvil/${metal}_file_head`) - - // Декрафт оголовья в жидкость - event.recipes.tfc.heating(`gtceu:${metal}_file_head`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .id(`tfc:heating/metal/${metal}_file_head`) - - //#endregion - } - - if (metalSpecs.props.includes(global.UTILITY_GEN)) { - // Декрафт незавершенной лампы в жидкость - event.recipes.tfc.heating(`tfc:metal/unfinished_lamp/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .id(`tfc:heating/metal/${metal}_unfinished_lamp`) - - // Декрафт лампы в жидкость - event.recipes.tfc.heating(`tfc:metal/lamp/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .id(`tfc:heating/metal/${metal}_lamp`) - - // Декрафт люка в жидкость - event.recipes.tfc.heating(`tfc:metal/trapdoor/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 144)) - .id(`tfc:heating/metal/${metal}_trapdoor`) - - // Люк - event.recipes.tfc.anvil(`tfc:metal/trapdoor/${metal}`, `gtceu:${metal}_plate`, ['bend_last', 'draw_second_last', 'draw_third_last']) - .tier(metalSpecs.tier) - .id(`tfc:anvil/${metal}_trapdoor`) - - // Декрафт решетки в жидкость - event.recipes.tfc.heating(`tfc:metal/bars/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 18)) - .id(`tfc:heating/metal/${metal}_bars`) - - // 8x Решетка - event.recipes.tfc.anvil(`8x tfc:metal/bars/${metal}`, `gtceu:${metal}_plate`, ['upset_last', 'punch_second_last', 'punch_third_last']) - .tier(metalSpecs.tier) - .id(`tfc:anvil/${metal}_bars`) - - // 16x Решетка - event.recipes.tfc.anvil(`16x tfc:metal/bars/${metal}`, `gtceu:${metal}_double_plate`, ['upset_last', 'punch_second_last', 'punch_third_last']) - .tier(metalSpecs.tier) - .id(`tfc:anvil/${metal}_bars_double`) - - // Декрафт цепи в жидкость - event.recipes.tfc.heating(`tfc:metal/chain/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 9)) - .id(`tfc:heating/metal/${metal}_chain`) - - // Декрафт наковальни в жидкость - event.recipes.tfc.heating(`tfc:metal/anvil/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 2016)) - .id(`tfc:heating/metal/${metal}_anvil`) - - // Наковальня из слитков - event.recipes.gtceu.alloy_smelter(`ingots_to_${metal}_anvil`) - .itemInputs(`14x #forge:ingots/${metal}`) - .notConsumable('gtceu:anvil_casting_mold') - .itemOutputs(`tfc:metal/anvil/${metal}`) - .duration(1680) - .EUt(16) - - // Наковальня из жидкости - event.recipes.gtceu.fluid_solidifier(`solidify_${metal}_anvil`) - .inputFluids(Fluid.of(metalSpecs.output_fluid, 2016)) - .notConsumable('gtceu:anvil_casting_mold') - .itemOutputs(`tfc:metal/anvil/${metal}`) - .duration(1680) - .EUt(16) - } - - if (metalSpecs.props.includes(global.TFC_SMALL_ORE_GEN)) { - // Декрафт мелкого кусочка в жидкость - event.recipes.tfc.heating(`tfc:ore/small_${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 16)) - .id(`tfc:heating/ore/small_${metal}`) - - event.remove({ id: `tfc:heating/ore/poor_${metal}` }) - event.remove({ id: `tfc:heating/ore/normal_${metal}` }) - event.remove({ id: `tfc:heating/ore/rich_${metal}` }) - } - - if (metalSpecs.props.includes(global.TFC_SMALL_NATIVE_ORE_GEN)) { - // Декрафт мелкого кусочка в жидкость - event.recipes.tfc.heating(`tfc:ore/small_native_${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, 16)) - .id(`tfc:heating/ore/small_native_${metal}`) - - event.remove({ id: `tfc:heating/ore/poor_native_${metal}` }) - event.remove({ id: `tfc:heating/ore/normal_native_${metal}` }) - event.remove({ id: `tfc:heating/ore/rich_native_${metal}` }) - } - - if (metalSpecs.props.includes(global.DUST_GEN)) { - // Декрафт мелкой пыли - event.recipes.tfc.heating(`gtceu:${metal}_tiny_dust`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, global.calcAmountOfMetal(16, metalSpecs.percent_of_material))) - .id(`tfg:heating/tiny_dust/${metal}`) - - // Декрафт средней пыли - event.recipes.tfc.heating(`gtceu:${metal}_small_dust`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, global.calcAmountOfMetal(36, metalSpecs.percent_of_material))) - .id(`tfg:heating/small_dust/${metal}`) - - // Декрафт пыли - event.recipes.tfc.heating(Item.of(`#forge:dusts/${metal}`), metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, global.calcAmountOfMetal(144, metalSpecs.percent_of_material))) - .id(`tfg:heating/dust/${metal}`) - } - - if (metalSpecs.props.includes(global.NUGGET_GEN)) { - // Декрафт мелкой пыли - event.recipes.tfc.heating(`#forge:nuggets/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, global.calcAmountOfMetal(16, metalSpecs.percent_of_material))) - .id(`tfg:heating/nugget/${metal}`) - } - - if (metalSpecs.props.includes(global.ORE_CHUNKS_GEN)) { - // Декрафт нормального куска руды - event.recipes.tfc.heating(`#forge:raw_materials/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, global.calcAmountOfMetal(36, metalSpecs.percent_of_material))) - .id(`tfg:heating/raw/${metal}`) - - // Декрафт богатого куска руды - event.recipes.tfc.heating(`#forge:rich_raw_materials/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, global.calcAmountOfMetal(48, metalSpecs.percent_of_material))) - .id(`tfg:heating/rich_raw/${metal}`) - - // Декрафт бедного куска руды - event.recipes.tfc.heating(`#forge:poor_raw_materials/${metal}`, metalSpecs.melt_temp) - .resultFluid(Fluid.of(metalSpecs.output_fluid, global.calcAmountOfMetal(24, metalSpecs.percent_of_material))) - .id(`tfg:heating/poor_raw/${metal}`) - } - }) - //#region Новые рецепты сплавов + //#region Рецепты для новых сплавов event.recipes.tfc.alloy('tfg:red_alloy', [ TFC.alloyPart('tfg:redstone', 0.15, 0.25), @@ -910,10 +1162,20 @@ const registerTFCRecipes = (event) => { //#endregion - //#region Фиксы рецептов предметов из Cast Iron + //#region Удаление рецептов для предметов из Cast Iron + + // Блок + event.remove({ id: `tfc:crafting/metal/block/cast_iron` }) + event.remove({ id: `tfc:heating/metal/cast_iron_block` }) + + // Ступень + event.remove({ id: `tfc:crafting/metal/block/cast_iron_stairs` }) + event.remove({ id: `tfc:heating/metal/cast_iron_block_stairs` }) + + // Полублок + event.remove({ id: `tfc:crafting/metal/block/cast_iron_slab` }) + event.remove({ id: `tfc:heating/metal/cast_iron_block_slab` }) - //#region Удаление - // Слиток event.remove({ id: `tfc:casting/cast_iron_ingot` }) event.remove({ id: `tfc:casting/cast_iron_fire_ingot` }) @@ -947,51 +1209,7 @@ const registerTFCRecipes = (event) => { event.remove({ id: `tfc:crafting/metal/block/cast_iron_slab` }) event.remove({ id: `tfc:heating/metal/cast_iron_block_slab` }) - //#endregion - //#region Добавление - - event.recipes.tfc.heating('#forge:nuggets/iron', 1535) - .resultFluid(Fluid.of('tfc:metal/cast_iron', 16)) - .id(`tfg:heating/iron_nugget`) - - event.recipes.tfc.heating('#forge:tiny_dusts/iron', 1535) - .resultFluid(Fluid.of('tfc:metal/cast_iron', 16)) - .id(`tfg:heating/iron_tiny_dust`) - - event.recipes.tfc.heating('#forge:small_dusts/iron', 1535) - .resultFluid(Fluid.of('tfc:metal/cast_iron', 36)) - .id(`tfg:heating/iron_small_dust`) - - event.recipes.tfc.heating('#forge:dusts/iron', 1535) - .resultFluid(Fluid.of('tfc:metal/cast_iron', 144)) - .id(`tfg:heating/iron_dust`) - - event.recipes.tfc.heating('#forge:poor_raw_materials/iron', 1535) - .resultFluid(Fluid.of('tfc:metal/cast_iron', 24)) - .id(`tfg:heating/poor_raw_iron`) - - event.recipes.tfc.heating('#forge:raw_materials/iron', 1535) - .resultFluid(Fluid.of('tfc:metal/cast_iron', 36)) - .id(`tfg:heating/raw_iron`) - - event.recipes.tfc.heating('#forge:rich_raw_materials/iron', 1535) - .resultFluid(Fluid.of('tfc:metal/cast_iron', 48)) - .id(`tfg:heating/rich_raw_iron`) - - event.recipes.tfc.heating('#forge:ingots/iron', 1535) - .resultFluid(Fluid.of('tfc:metal/cast_iron', 144)) - .id(`tfg:heating/iron_ingot`) - - event.recipes.tfc.heating('#forge:plates/iron', 1535) - .resultFluid(Fluid.of('tfc:metal/cast_iron', 144)) - .id(`tfg:heating/iron_plate`) - - event.recipes.tfc.heating('#forge:storage_blocks/iron', 1535) - .resultFluid(Fluid.of('tfc:metal/cast_iron', 1296)) - .id(`tfg:heating/iron_block`) - - //#endregion //#endregion @@ -999,7 +1217,7 @@ const registerTFCRecipes = (event) => { //#region Из золота - event.recipes.tfc.casting(`minecraft:bell`, 'tfc:ceramic/bell_mold', TFC.fluidStackIngredient('gtceu:gold', 144), 1) + event.recipes.tfc.casting(`minecraft:bell`, 'tfc:ceramic/bell_mold', Fluid.of('gtceu:gold', 144), 1) .id(`tfc:casting/gold_bell`) event.recipes.tfc.heating(`minecraft:bell`, 1060) @@ -1010,7 +1228,7 @@ const registerTFCRecipes = (event) => { //#region Из латуни - event.recipes.tfc.casting(`tfc:brass_bell`, 'tfc:ceramic/bell_mold', TFC.fluidStackIngredient('gtceu:brass', 144), 1) + event.recipes.tfc.casting(`tfc:brass_bell`, 'tfc:ceramic/bell_mold', Fluid.of('gtceu:brass', 144), 1) .id(`tfc:casting/brass_bell`) event.recipes.tfc.heating(`tfc:brass_bell`, 930) @@ -1021,7 +1239,7 @@ const registerTFCRecipes = (event) => { //#region Из бронзы - event.recipes.tfc.casting(`tfc:bronze_bell`, 'tfc:ceramic/bell_mold', TFC.fluidStackIngredient('gtceu:bronze', 144), 1) + event.recipes.tfc.casting(`tfc:bronze_bell`, 'tfc:ceramic/bell_mold', Fluid.of('gtceu:bronze', 144), 1) .id(`tfc:casting/bronze_bell`) event.recipes.tfc.heating(`tfc:bronze_bell`, 930) @@ -1030,6 +1248,8 @@ const registerTFCRecipes = (event) => { //#endregion + //#endregion + //#region Рецепты ковки TFC слитков в GT машинах // Сырая крица -> Укрепленная крица @@ -1104,8 +1324,6 @@ const registerTFCRecipes = (event) => { //#endregion - //#endregion - //#region Фикс рецептов металлических предметов // Декрафт Jacks @@ -1120,22 +1338,22 @@ const registerTFCRecipes = (event) => { // Декрафт сырой крицы в жидкость event.recipes.tfc.heating(`tfc:raw_iron_bloom`, 1535) - .resultFluid(Fluid.of('tfc:metal/cast_iron', 144)) + .resultFluid(Fluid.of('gtceu:iron', 144)) .id(`tfc:heating/raw_bloom`) // Декрафт укрепленной крицы в жидкость event.recipes.tfc.heating(`tfc:refined_iron_bloom`, 1535) - .resultFluid(Fluid.of('tfc:metal/cast_iron', 144)) + .resultFluid(Fluid.of('gtceu:iron', 144)) .id(`tfc:heating/refined_bloom`) // Гриль event.recipes.tfc.heating('tfc:wrought_iron_grill', 1535) - .resultFluid(Fluid.of('tfc:metal/cast_iron', 288)) + .resultFluid(Fluid.of('gtceu:iron', 288)) .id(`tfc:heating/grill`) // Ванильная дверь декрафт event.recipes.tfc.heating('minecraft:iron_door', 1535) - .resultFluid(Fluid.of('tfc:metal/cast_iron', 288)) + .resultFluid(Fluid.of('gtceu:iron', 288)) .id(`tfc:heating/iron_door`) // Ванильная дверь на наковальне @@ -1164,9 +1382,13 @@ const registerTFCRecipes = (event) => { .id('tfc:anvil/blue_steel_ingot') // Cast iron -> Raw Iron Bloom - event.recipes.tfc.bloomery('tfc:raw_iron_bloom', 'minecraft:charcoal', Fluid.of('tfc:metal/cast_iron', 144), 15000) + event.recipes.tfc.bloomery('tfc:raw_iron_bloom', 'minecraft:charcoal', Fluid.of('gtceu:iron', 144), 15000) .id('tfc:bloomery/raw_iron_bloom') + // Cast Iron -> Pig Iron + event.recipes.tfc.blast_furnace(Fluid.of('gtceu:pig_iron', 1), '#tfc:flux', Fluid.of('gtceu:iron', 1)) + .id('tfc:blast_furnace/pig_iron') + //#endregion //#endregion @@ -2182,6 +2404,26 @@ const registerTFCRecipes = (event) => { //#endregion + //#region Рецепты зерен + + global.TFC_QUERN_GRAIN_RECIPE_COMPONENTS.forEach(element => { + + event.recipes.gtceu.macerator(`tfg:${element.name}`) + .itemInputs(element.input) + .itemOutputs(element.output) + .chancedOutput('tfc:straw', 7000, 500) + .duration(200) + .EUt(16) + + event.recipes.tfc.quern(element.output, element.input) + .id(`tfg:quern/${element.name}`) + + event.recipes.createMilling(element.output, element.input) + .id(`tfg:milling/${element.name}`) + }) + + //#endregion + //#region Рецепты муки global.TFC_QUERN_FLOUR_RECIPE_COMPONENTS.forEach(element => { diff --git a/kubejs/server_scripts/tfc/tags.js b/kubejs/server_scripts/tfc/tags.js index a59ad6fb0..c039fef28 100644 --- a/kubejs/server_scripts/tfc/tags.js +++ b/kubejs/server_scripts/tfc/tags.js @@ -204,47 +204,98 @@ const registerTFCBlockTags = (event) => { event.add('tfc:glass_basin_blocks', 'gtceu:brass_block') event.add('tfc:glass_pouring_table', 'gtceu:brass_block') + + event.add('tfc:glass_basin_blocks', 'tfc:red_kaolin_clay') + event.add('tfc:glass_pouring_table', 'tfc:red_kaolin_clay') + + event.add('tfc:glass_basin_blocks', 'tfc:pink_kaolin_clay') + event.add('tfc:glass_pouring_table', 'tfc:pink_kaolin_clay') + + event.add('tfc:glass_basin_blocks', 'tfc:white_kaolin_clay') + event.add('tfc:glass_pouring_table', 'tfc:white_kaolin_clay') } const registerTFCFluidTags = (event) => { - event.add('tfc:usable_in_ingot_mold', "gtceu:bismuth") - event.add('tfc:usable_in_ingot_mold', "gtceu:bismuth_bronze") - event.add('tfc:usable_in_ingot_mold', "gtceu:black_bronze") - event.add('tfc:usable_in_ingot_mold', "gtceu:bronze") - event.add('tfc:usable_in_ingot_mold', "gtceu:brass") - event.add('tfc:usable_in_ingot_mold', "gtceu:copper") - event.add('tfc:usable_in_ingot_mold', "gtceu:gold") - event.add('tfc:usable_in_ingot_mold', "gtceu:nickel") - event.add('tfc:usable_in_ingot_mold', "gtceu:rose_gold") - event.add('tfc:usable_in_ingot_mold', "gtceu:silver") - event.add('tfc:usable_in_ingot_mold', "gtceu:tin") - event.add('tfc:usable_in_ingot_mold', "gtceu:zinc") - event.add('tfc:usable_in_ingot_mold', "gtceu:sterling_silver") - event.add('tfc:usable_in_ingot_mold', "gtceu:wrought_iron") - event.add('tfc:usable_in_ingot_mold', "gtceu:iron") - event.add('tfc:usable_in_ingot_mold', "gtceu:steel") - event.add('tfc:usable_in_ingot_mold', "gtceu:black_steel") - event.add('tfc:usable_in_ingot_mold', "gtceu:blue_steel") - event.add('tfc:usable_in_ingot_mold', "gtceu:red_steel") + // Удаление TFC металлов из возможных в форме слитка + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/bismuth') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/bismuth_bronze') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/bronze') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/black_bronze') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/brass') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/copper') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/gold') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/nickel') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/rose_gold') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/silver') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/tin') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/zinc') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/sterling_silver') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/wrought_iron') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/steel') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/black_steel') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/red_steel') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/blue_steel') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/cast_iron') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/pig_iron') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/high_carbon_steel') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/high_carbon_black_steel') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/high_carbon_red_steel') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/high_carbon_blue_steel') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/weak_steel') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/weak_red_steel') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/weak_blue_steel') + event.remove('tfc:usable_in_ingot_mold', 'tfc:metal/unknown') - event.add('tfc:usable_in_ingot_mold', "gtceu:red_alloy") - event.add('tfc:usable_in_ingot_mold', "gtceu:tin_alloy") + // Добавление GTCEu металлов в форму слитков + event.add('tfc:usable_in_ingot_mold', 'gtceu:bismuth') + event.add('tfc:usable_in_ingot_mold', 'gtceu:bismuth_bronze') + event.add('tfc:usable_in_ingot_mold', 'gtceu:black_bronze') + event.add('tfc:usable_in_ingot_mold', 'gtceu:bronze') + event.add('tfc:usable_in_ingot_mold', 'gtceu:brass') + event.add('tfc:usable_in_ingot_mold', 'gtceu:copper') + event.add('tfc:usable_in_ingot_mold', 'gtceu:gold') + event.add('tfc:usable_in_ingot_mold', 'gtceu:nickel') + event.add('tfc:usable_in_ingot_mold', 'gtceu:rose_gold') + event.add('tfc:usable_in_ingot_mold', 'gtceu:silver') + event.add('tfc:usable_in_ingot_mold', 'gtceu:tin') + event.add('tfc:usable_in_ingot_mold', 'gtceu:zinc') + event.add('tfc:usable_in_ingot_mold', 'gtceu:sterling_silver') + event.add('tfc:usable_in_ingot_mold', 'gtceu:wrought_iron') + event.add('tfc:usable_in_ingot_mold', 'gtceu:iron') + event.add('tfc:usable_in_ingot_mold', 'gtceu:steel') + event.add('tfc:usable_in_ingot_mold', 'gtceu:black_steel') + event.add('tfc:usable_in_ingot_mold', 'gtceu:blue_steel') + event.add('tfc:usable_in_ingot_mold', 'gtceu:red_steel') + event.add('tfc:usable_in_ingot_mold', 'gtceu:pig_iron') + event.add('tfc:usable_in_ingot_mold', 'gtceu:high_carbon_steel') + event.add('tfc:usable_in_ingot_mold', 'gtceu:high_carbon_black_steel') + event.add('tfc:usable_in_ingot_mold', 'gtceu:high_carbon_red_steel') + event.add('tfc:usable_in_ingot_mold', 'gtceu:high_carbon_blue_steel') + event.add('tfc:usable_in_ingot_mold', 'gtceu:weak_steel') + event.add('tfc:usable_in_ingot_mold', 'gtceu:weak_red_steel') + event.add('tfc:usable_in_ingot_mold', 'gtceu:weak_blue_steel') + event.add('tfc:usable_in_ingot_mold', 'gtceu:unknown') - event.add('tfc:usable_in_bell_mold', "gtceu:bronze") - event.add('tfc:usable_in_bell_mold', "gtceu:gold") - event.add('tfc:usable_in_bell_mold', "gtceu:brass") + event.add('tfc:usable_in_ingot_mold', 'gtceu:red_alloy') + event.add('tfc:usable_in_ingot_mold', 'gtceu:tin_alloy') - event.add('tfc:usable_in_tool_head_mold', "gtceu:copper") - event.add('tfc:usable_in_tool_head_mold', "gtceu:bismuth_bronze") - event.add('tfc:usable_in_tool_head_mold', "gtceu:black_bronze") - event.add('tfc:usable_in_tool_head_mold', "gtceu:bronze") + // + event.add('tfc:usable_in_bell_mold', 'gtceu:bronze') + event.add('tfc:usable_in_bell_mold', 'gtceu:gold') + event.add('tfc:usable_in_bell_mold', 'gtceu:brass') - event.add('tfc:usable_in_pot', "gtceu:latex") + // + event.add('tfc:usable_in_tool_head_mold', 'gtceu:copper') + event.add('tfc:usable_in_tool_head_mold', 'gtceu:bismuth_bronze') + event.add('tfc:usable_in_tool_head_mold', 'gtceu:black_bronze') + event.add('tfc:usable_in_tool_head_mold', 'gtceu:bronze') - event.add('tfc:usable_in_barrel', "gtceu:latex") - - event.add('tfc:usable_in_wooden_bucket', "gtceu:latex") + // + event.add('tfc:usable_in_pot', 'gtceu:latex') + event.add('tfc:usable_in_barrel', 'gtceu:latex') + event.add('tfc:usable_in_wooden_bucket', 'gtceu:latex') + // event.add('tfc:usable_in_barrel', 'gtceu:creosote') event.add('tfc:usable_in_wooden_bucket', 'gtceu:creosote') event.add('tfc:usable_in_red_steel_bucket', 'gtceu:creosote') diff --git a/kubejs/server_scripts/water_flasks/recipes.js b/kubejs/server_scripts/water_flasks/recipes.js index 8a6f2c4ca..2896658a1 100644 --- a/kubejs/server_scripts/water_flasks/recipes.js +++ b/kubejs/server_scripts/water_flasks/recipes.js @@ -4,17 +4,17 @@ const registerWaterFlasksRecipes = (event) => { // Декрафт Unfinished Water Flask event.recipes.tfc.heating('waterflasks:unfinished_iron_flask', 1535) - .resultFluid(Fluid.of('tfc:metal/cast_iron', 144)) + .resultFluid(Fluid.of('gtceu:iron', 144)) .id(`waterflasks:heating/wrought_iron_unfinished_iron_flask`) // Декрафт Broken Water Flask event.recipes.tfc.heating('waterflasks:broken_iron_flask', 1535) - .resultFluid(Fluid.of('tfc:metal/cast_iron', 144)) + .resultFluid(Fluid.of('gtceu:iron', 144)) .id(`waterflasks:heating/wrought_iron_broken_iron_flask`) // Декрафт Water Flask event.recipes.tfc.heating('waterflasks:iron_flask', 1535) - .resultFluid(Fluid.of('tfc:metal/cast_iron', 144)) + .resultFluid(Fluid.of('gtceu:iron', 144)) .useDurability(true) .id(`waterflasks:heating/wrought_iron_iron_flask`) diff --git a/kubejs/startup_scripts/minecraft/constants.js b/kubejs/startup_scripts/minecraft/constants.js index eff6bf267..73ea3ea99 100644 --- a/kubejs/startup_scripts/minecraft/constants.js +++ b/kubejs/startup_scripts/minecraft/constants.js @@ -529,8 +529,6 @@ global.MINECRAFT_DISABLED_ITEMS = [ 'minecraft:suspicious_gravel', 'minecraft:stonecutter', 'minecraft:gravel', - 'minecraft:gold_ingot', - 'minecraft:copper_ingot', 'minecraft:moss_block', 'minecraft:moss_carpet', 'minecraft:bamboo_raft', diff --git a/kubejs/startup_scripts/tfc/constants.js b/kubejs/startup_scripts/tfc/constants.js index 9beaccc65..a8a87f279 100644 --- a/kubejs/startup_scripts/tfc/constants.js +++ b/kubejs/startup_scripts/tfc/constants.js @@ -90,7 +90,25 @@ global.TFC_DISABLED_ITEMS = [ "tfc:metal/ingot/gold", // Double Ingots + "tfc:metal/double_ingot/bismuth", + "tfc:metal/double_ingot/bismuth_bronze", + "tfc:metal/double_ingot/black_bronze", + "tfc:metal/double_ingot/bronze", + "tfc:metal/double_ingot/rose_gold", + "tfc:metal/double_ingot/sterling_silver", + "tfc:metal/double_ingot/wrought_iron", + "tfc:metal/double_ingot/steel", + "tfc:metal/double_ingot/black_steel", + "tfc:metal/double_ingot/red_steel", + "tfc:metal/double_ingot/blue_steel", + "tfc:metal/double_ingot/brass", + "tfc:metal/double_ingot/nickel", + "tfc:metal/double_ingot/silver", + "tfc:metal/double_ingot/tin", + "tfc:metal/double_ingot/zinc", "tfc:metal/double_ingot/cast_iron", + "tfc:metal/double_ingot/copper", + "tfc:metal/double_ingot/gold", // Sheets "tfc:metal/sheet/bismuth", @@ -760,860 +778,6 @@ global.SAND_COLORS = [ 'pink' ]; -/** - * Указывает, что у этого металла есть: ingot. - */ -global.INGOT_GEN = 'ingot'; - -/** - * Указывает, что у этого металла есть: double_ingot. - */ -global.DOUBLE_INGOT_GEN = 'double_ingot'; - -/** - * Указывает, что у этого металла есть: nugget. - */ -global.NUGGET_GEN = 'nugget'; - -/** - * Указывает, что у этого металла есть: dust_tiny, dust_small, dust. - */ -global.DUST_GEN = 'dusts'; - -/** - * Указывает, что у этого металла есть куски руд, poor_raw, raw, rich_raw. - */ -global.ORE_CHUNKS_GEN = 'ore_chunks'; - -/** - * Указывает, что у этого металла есть: plated_block, block_stairs, block_slab. - */ -global.PART_GEN = 'part'; - -/** - * Указывает, что у этого металла есть: block. - */ -global.BLOCK_GEN = 'block'; - -/** - * Указывает, что у этого металла есть: rod. - */ -global.ROD_GEN = 'rod'; - -/** - * Указывает, что у этого металла есть: sheet. - */ -global.PLATE_GEN = 'plate'; - -/** - * Указывает, что у этого металла есть: double_sheet. - */ -global.DOUBLE_PLATE_GEN = 'double_plate'; - -/** - * Указывает, что у этого металла есть: anvil, bars, chain, trapdoor, lamp, unfinished_lamp. - */ -global.UTILITY_GEN = 'utility'; - -/** - * Указывает, что у этого металла есть: boots, greaves, chestplate, helmet, shield, unfinished_boots, unfinished_chestplate, unfinished_greaves, unfinished_helmet. - */ -global.ARMOR_GEN = 'armor'; - -/** - * Указывает, что у этого металла есть: инструменты и оголовья. - */ -global.TOOL_GEN = 'tool'; - -/** - * Указывает, что у этого металла есть: ведро. - */ -global.TFC_BUCKET_GEN = 'bucket'; - -/** - * Указывает, что у этого металла есть чистый кусок (тфк штука). - */ -global.TFC_SMALL_NATIVE_ORE_GEN = 'small_native_ore'; - -/** - * Указывает, что у этого металла есть кусок (тфк штука). - */ -global.TFC_SMALL_ORE_GEN = 'small_ore'; - -/** - * Указывает, что оголовья из этого металла можно раскрафтить из форм. - */ -global.CAN_BE_UNMOLDED = 'can_be_unmolded'; - -/** - * Указывает, на то что является ли текущий металл дублированием греговского. - */ -global.IS_GT_DUP = 'is_gt_dup'; - -global.METAL_TO_SPECS = { - - // Основные металлы - copper: { - forging_temp: 648, - welding_temp: 864, - melt_temp: 1080, - output_fluid: "gtceu:copper", - tier: 1, - percent_of_material: 100, - props: [ - global.INGOT_GEN, - global.DOUBLE_INGOT_GEN, - global.NUGGET_GEN, - global.DUST_GEN, - global.PART_GEN, - global.PLATE_GEN, - global.DOUBLE_PLATE_GEN, - global.ROD_GEN, - global.BLOCK_GEN, - global.ARMOR_GEN, - global.TOOL_GEN, - global.UTILITY_GEN, - - global.CAN_BE_UNMOLDED, - - global.ORE_CHUNKS_GEN, - global.TFC_SMALL_NATIVE_ORE_GEN - ] - }, - - bismuth_bronze: { - forging_temp: 591, - welding_temp: 788, - melt_temp: 985, - output_fluid: "gtceu:bismuth_bronze", - percent_of_material: 100, - tier: 2, - props: [ - global.INGOT_GEN, - global.DOUBLE_INGOT_GEN, - global.NUGGET_GEN, - global.DUST_GEN, - global.PART_GEN, - global.PLATE_GEN, - global.DOUBLE_PLATE_GEN, - global.ROD_GEN, - global.BLOCK_GEN, - global.ARMOR_GEN, - global.TOOL_GEN, - global.UTILITY_GEN, - - global.IS_GT_DUP, - global.CAN_BE_UNMOLDED, - ] - }, - - bronze: { - forging_temp: 570, - welding_temp: 760, - melt_temp: 950, - output_fluid: "gtceu:bronze", - percent_of_material: 100, - tier: 1, - props: [ - global.INGOT_GEN, - global.DOUBLE_INGOT_GEN, - global.NUGGET_GEN, - global.DUST_GEN, - global.PART_GEN, - global.PLATE_GEN, - global.DOUBLE_PLATE_GEN, - global.ROD_GEN, - global.BLOCK_GEN, - global.ARMOR_GEN, - global.TOOL_GEN, - global.UTILITY_GEN, - - global.IS_GT_DUP, - global.CAN_BE_UNMOLDED, - ] - }, - - black_bronze: { - forging_temp: 642, - welding_temp: 856, - melt_temp: 1070, - output_fluid: "gtceu:black_bronze", - percent_of_material: 100, - tier: 2, - props: [ - global.INGOT_GEN, - global.DOUBLE_INGOT_GEN, - global.NUGGET_GEN, - global.DUST_GEN, - global.PART_GEN, - global.PLATE_GEN, - global.DOUBLE_PLATE_GEN, - global.ROD_GEN, - global.BLOCK_GEN, - global.ARMOR_GEN, - global.TOOL_GEN, - global.UTILITY_GEN, - - global.IS_GT_DUP, - global.CAN_BE_UNMOLDED, - ] - }, - - wrought_iron: { - forging_temp: 921, - welding_temp: 1228, - melt_temp: 1535, - input_fluid: "gtceu:wrought_iron", - output_fluid: "tfc:metal/cast_iron", - percent_of_material: 100, - tier: 3, - props: [ - global.INGOT_GEN, - global.DOUBLE_INGOT_GEN, - global.NUGGET_GEN, - global.DUST_GEN, - global.PART_GEN, - global.PLATE_GEN, - global.DOUBLE_PLATE_GEN, - global.ROD_GEN, - global.BLOCK_GEN, - global.ARMOR_GEN, - global.TOOL_GEN, - global.UTILITY_GEN, - - global.IS_GT_DUP, - ] - }, - - // Обычное железо исправим руками (Cast и Iron) - - steel: { - forging_temp: 924, - welding_temp: 1232, - melt_temp: 1540, - output_fluid: "gtceu:steel", - percent_of_material: 100, - tier: 4, - props: [ - global.INGOT_GEN, - global.DOUBLE_INGOT_GEN, - global.NUGGET_GEN, - global.DUST_GEN, - global.PART_GEN, - global.PLATE_GEN, - global.DOUBLE_PLATE_GEN, - global.ROD_GEN, - global.BLOCK_GEN, - global.ARMOR_GEN, - global.TOOL_GEN, - global.UTILITY_GEN, - - global.IS_GT_DUP, - ] - }, - - black_steel: { - forging_temp: 891, - welding_temp: 1188, - melt_temp: 1485, - output_fluid: "gtceu:black_steel", - percent_of_material: 100, - tier: 5, - props: [ - global.INGOT_GEN, - global.DOUBLE_INGOT_GEN, - global.NUGGET_GEN, - global.DUST_GEN, - global.PART_GEN, - global.PLATE_GEN, - global.DOUBLE_PLATE_GEN, - global.ROD_GEN, - global.BLOCK_GEN, - global.ARMOR_GEN, - global.TOOL_GEN, - global.UTILITY_GEN, - - global.IS_GT_DUP, - ] - }, - - red_steel: { - forging_temp: 924, - welding_temp: 1232, - melt_temp: 1540, - output_fluid: "gtceu:red_steel", - percent_of_material: 100, - tier: 6, - props: [ - global.INGOT_GEN, - global.DOUBLE_INGOT_GEN, - global.NUGGET_GEN, - global.DUST_GEN, - global.PART_GEN, - global.PLATE_GEN, - global.DOUBLE_PLATE_GEN, - global.ROD_GEN, - global.BLOCK_GEN, - global.ARMOR_GEN, - global.TOOL_GEN, - global.UTILITY_GEN, - - global.TFC_BUCKET_GEN, - - global.IS_GT_DUP, - ] - }, - - blue_steel: { - forging_temp: 924, - welding_temp: 1232, - melt_temp: 1540, - output_fluid: "gtceu:blue_steel", - percent_of_material: 100, - tier: 6, - props: [ - global.INGOT_GEN, - global.DOUBLE_INGOT_GEN, - global.NUGGET_GEN, - global.DUST_GEN, - global.PART_GEN, - global.PLATE_GEN, - global.DOUBLE_PLATE_GEN, - global.ROD_GEN, - global.BLOCK_GEN, - global.ARMOR_GEN, - global.TOOL_GEN, - global.UTILITY_GEN, - - global.TFC_BUCKET_GEN, - - global.IS_GT_DUP, - ] - }, - - // Проходные металлы - high_carbon_steel: { - forging_temp: 924, - melt_temp: 1540, - welding_temp: 1232, - output_fluid: "tfc:metal/high_carbon_steel", - tier: 3, - props: [global.INGOT_GEN], - }, - - high_carbon_black_steel: { - forging_temp: 924, - melt_temp: 1540, - welding_temp: 1232, - output_fluid: "tfc:metal/high_carbon_black_steel", - tier: 5, - props: [global.INGOT_GEN], - }, - - high_carbon_red_steel: { - forging_temp: 924, - melt_temp: 1540, - welding_temp: 1232, - output_fluid: "tfc:metal/high_carbon_red_steel", - tier: 5, - props: [global.INGOT_GEN], - }, - - high_carbon_blue_steel: { - forging_temp: 924, - melt_temp: 1540, - welding_temp: 1232, - output_fluid: "tfc:metal/high_carbon_blue_steel", - tier: 4, - props: [global.INGOT_GEN], - }, - - weak_steel: { - forging_temp: 924, - welding_temp: 1232, - melt_temp: 1540, - output_fluid: "tfc:metal/weak_steel", - tier: 4, - props: [global.INGOT_GEN], - }, - - weak_red_steel: { - forging_temp: 924, - welding_temp: 1232, - melt_temp: 1540, - output_fluid: "tfc:metal/weak_red_steel", - tier: 5, - props: [global.INGOT_GEN], - }, - - weak_blue_steel: { - forging_temp: 924, - welding_temp: 1232, - melt_temp: 1540, - output_fluid: "tfc:metal/weak_blue_steel", - tier: 5, - props: [global.INGOT_GEN], - }, - - gold: { - forging_temp: 636, - welding_temp: 848, - melt_temp: 1060, - output_fluid: "gtceu:gold", - tier: 1, - percent_of_material: 100, - props: [ - global.INGOT_GEN, - global.DOUBLE_INGOT_GEN, - global.NUGGET_GEN, - global.DUST_GEN, - global.ORE_CHUNKS_GEN, - global.PART_GEN, - global.PLATE_GEN, - global.DOUBLE_PLATE_GEN, - global.ROD_GEN, - global.BLOCK_GEN, - global.TFC_SMALL_NATIVE_ORE_GEN - ] - }, - - - bismuth: { - forging_temp: 162, - welding_temp: 216, - melt_temp: 270, - output_fluid: "gtceu:bismuth", - tier: 1, - percent_of_material: 100, - props: [ - global.INGOT_GEN, - global.DOUBLE_INGOT_GEN, - global.NUGGET_GEN, - global.DUST_GEN, - global.ORE_CHUNKS_GEN, - global.PART_GEN, - global.PLATE_GEN, - global.DOUBLE_PLATE_GEN, - global.ROD_GEN, - global.BLOCK_GEN, - - global.IS_GT_DUP, - ] - }, - - brass: { - forging_temp: 558, - welding_temp: 744, - melt_temp: 930, - output_fluid: "gtceu:brass", - percent_of_material: 100, - tier: 2, - props: [ - global.INGOT_GEN, - global.DOUBLE_INGOT_GEN, - global.NUGGET_GEN, - global.DUST_GEN, - global.PART_GEN, - global.PLATE_GEN, - global.DOUBLE_PLATE_GEN, - global.ROD_GEN, - global.BLOCK_GEN, - - global.IS_GT_DUP, - ] - }, - - nickel: { - forging_temp: 872, - welding_temp: 1162, - melt_temp: 1453, - output_fluid: "gtceu:nickel", - percent_of_material: 100, - tier: 1, - props: [ - global.INGOT_GEN, - global.DOUBLE_INGOT_GEN, - global.NUGGET_GEN, - global.DUST_GEN, - global.ORE_CHUNKS_GEN, - global.PART_GEN, - global.PLATE_GEN, - global.DOUBLE_PLATE_GEN, - global.ROD_GEN, - global.BLOCK_GEN, - - global.IS_GT_DUP, - ] - }, - - rose_gold: { - forging_temp: 576, - welding_temp: 768, - melt_temp: 960, - output_fluid: "gtceu:rose_gold", - percent_of_material: 100, - tier: 1, - props: [ - global.INGOT_GEN, - global.DOUBLE_INGOT_GEN, - global.NUGGET_GEN, - global.DUST_GEN, - global.PART_GEN, - global.PLATE_GEN, - global.DOUBLE_PLATE_GEN, - global.ROD_GEN, - global.BLOCK_GEN, - - global.IS_GT_DUP, - ] - }, - - silver: { - forging_temp: 577, - welding_temp: 769, - melt_temp: 961, - output_fluid: "gtceu:silver", - percent_of_material: 100, - tier: 1, - props: [ - global.INGOT_GEN, - global.DOUBLE_INGOT_GEN, - global.NUGGET_GEN, - global.DUST_GEN, - global.ORE_CHUNKS_GEN, - global.PART_GEN, - global.PLATE_GEN, - global.DOUBLE_PLATE_GEN, - global.ROD_GEN, - global.BLOCK_GEN, - global.TFC_SMALL_NATIVE_ORE_GEN, - - global.IS_GT_DUP, - ] - }, - - tin: { - forging_temp: 138, - welding_temp: 184, - melt_temp: 230, - output_fluid: "gtceu:tin", - percent_of_material: 100, - tier: 1, - props: [ - global.INGOT_GEN, - global.DOUBLE_INGOT_GEN, - global.NUGGET_GEN, - global.DUST_GEN, - global.ORE_CHUNKS_GEN, - global.PART_GEN, - global.PLATE_GEN, - global.DOUBLE_PLATE_GEN, - global.ROD_GEN, - global.BLOCK_GEN, - - global.IS_GT_DUP, - ] - }, - - zinc: { - forging_temp: 252, - welding_temp: 336, - melt_temp: 420, - output_fluid: "gtceu:zinc", - percent_of_material: 100, - tier: 1, - props: [ - global.INGOT_GEN, - global.DOUBLE_INGOT_GEN, - global.NUGGET_GEN, - global.DUST_GEN, - global.PART_GEN, - global.PLATE_GEN, - global.DOUBLE_PLATE_GEN, - global.ROD_GEN, - global.BLOCK_GEN, - - global.IS_GT_DUP, - ] - }, - - sterling_silver: { - forging_temp: 570, - welding_temp: 760, - melt_temp: 950, - output_fluid: "gtceu:sterling_silver", - percent_of_material: 100, - tier: 1, - props: [ - global.INGOT_GEN, - global.DOUBLE_INGOT_GEN, - global.NUGGET_GEN, - global.DUST_GEN, - global.PART_GEN, - global.PLATE_GEN, - global.DOUBLE_PLATE_GEN, - global.ROD_GEN, - global.BLOCK_GEN, - - global.IS_GT_DUP, - ] - }, - - pig_iron: { - forging_temp: 921, - welding_temp: 1228, - melt_temp: 1535, - output_fluid: "tfc:metal/pig_iron", - tier: 3, - props: [global.INGOT_GEN], - }, - - unknown: { - forging_temp: 240, - welding_temp: 320, - melt_temp: 400, - output_fluid: "tfc:metal/unknown", - tier: 1, - props: [global.INGOT_GEN], - }, - - bismuthinite: { - forging_temp: 162, - welding_temp: 216, - melt_temp: 270, - output_fluid: "gtceu:bismuth", - percent_of_material: 100, - tier: 1, - props: [global.TFC_SMALL_ORE_GEN], - }, - - cassiterite: { - forging_temp: 138, - welding_temp: 184, - melt_temp: 230, - output_fluid: "gtceu:tin", - percent_of_material: 200, - tier: 1, - props: [ - global.DUST_GEN, - global.ORE_CHUNKS_GEN, - global.TFC_SMALL_ORE_GEN - ], - }, - - garnierite: { - forging_temp: 138, - welding_temp: 184, - melt_temp: 1453, - output_fluid: "gtceu:nickel", - percent_of_material: 90, - tier: 1, - props: [ - global.DUST_GEN, - global.ORE_CHUNKS_GEN, - global.TFC_SMALL_ORE_GEN - ], - }, - - hematite: { - forging_temp: 921, - welding_temp: 1228, - melt_temp: 1535, - output_fluid: "tfc:metal/cast_iron", - percent_of_material: 90, - tier: 3, - props: [ - global.DUST_GEN, - global.ORE_CHUNKS_GEN, - global.TFC_SMALL_ORE_GEN - ], - }, - - yellow_limonite: { - forging_temp: 921, - welding_temp: 1228, - melt_temp: 1535, - output_fluid: "tfc:metal/cast_iron", - percent_of_material: 90, - tier: 3, - props: [ - global.DUST_GEN, - global.ORE_CHUNKS_GEN - ], - }, - - limonite: { - forging_temp: 921, - welding_temp: 1228, - melt_temp: 1535, - output_fluid: "tfc:metal/cast_iron", - percent_of_material: 85, - tier: 3, - props: [global.TFC_SMALL_ORE_GEN], - }, - - magnetite: { - forging_temp: 138, - welding_temp: 184, - melt_temp: 1535, - output_fluid: "tfc:metal/cast_iron", - percent_of_material: 90, - tier: 3, - props: [ - global.DUST_GEN, - global.ORE_CHUNKS_GEN, - global.TFC_SMALL_ORE_GEN - ], - }, - - malachite: { - forging_temp: 138, - welding_temp: 184, - melt_temp: 1080, - output_fluid: "gtceu:copper", - percent_of_material: 90, - tier: 1, - props: [ - global.DUST_GEN, - global.ORE_CHUNKS_GEN, - global.TFC_SMALL_ORE_GEN - ], - }, - - pyrite: { - forging_temp: 921, - welding_temp: 1228, - melt_temp: 1535, - output_fluid: "tfc:metal/cast_iron", - percent_of_material: 90, - tier: 3, - props: [ - global.DUST_GEN, - global.ORE_CHUNKS_GEN - ], - }, - - sphalerite: { - forging_temp: 138, - welding_temp: 184, - melt_temp: 420, - output_fluid: "gtceu:zinc", - percent_of_material: 90, - tier: 1, - props: [ - global.DUST_GEN, - global.ORE_CHUNKS_GEN, - global.TFC_SMALL_ORE_GEN - ], - }, - - tetrahedrite: { - forging_temp: 138, - welding_temp: 184, - melt_temp: 1080, - output_fluid: "gtceu:copper", - percent_of_material: 90, - tier: 1, - props: [ - global.DUST_GEN, - global.ORE_CHUNKS_GEN, - global.TFC_SMALL_ORE_GEN - ], - }, - - chalcopyrite: { - forging_temp: 648, - welding_temp: 864, - melt_temp: 1080, - output_fluid: "gtceu:copper", - percent_of_material: 90, - tier: 1, - props: [ - global.DUST_GEN, - global.ORE_CHUNKS_GEN - ], - }, - - cassiterite_sand: { - forging_temp: 138, - welding_temp: 184, - melt_temp: 230, - output_fluid: "gtceu:tin", - percent_of_material: 150, - tier: 1, - props: [ - global.DUST_GEN, - global.ORE_CHUNKS_GEN - ], - }, - - goethite: { - forging_temp: 921, - welding_temp: 1228, - melt_temp: 1535, - output_fluid: "tfc:metal/cast_iron", - percent_of_material: 85, - tier: 3, - props: [ - global.DUST_GEN, - global.ORE_CHUNKS_GEN - ], - }, - - // GT материалы - redstone: { - forging_temp: 240, - welding_temp: 320, - melt_temp: 460, - output_fluid: "gtceu:redstone", - percent_of_material: 100, - tier: 1, - props: [ - global.DUST_GEN, - global.PLATE_GEN, - global.DOUBLE_PLATE_GEN, - global.BLOCK_GEN, - global.ORE_CHUNKS_GEN - ], - }, - - red_alloy: { - forging_temp: 570, - welding_temp: 650, - melt_temp: 740, - output_fluid: "gtceu:red_alloy", - percent_of_material: 100, - tier: 2, - props: [ - global.NUGGET_GEN, - global.INGOT_GEN, - global.DUST_GEN, - global.PLATE_GEN, - global.DOUBLE_PLATE_GEN, - global.ROD_GEN, - global.BLOCK_GEN - ], - }, - - tin_alloy: { - forging_temp: 1000, - welding_temp: 1100, - melt_temp: 1250, - output_fluid: "gtceu:tin_alloy", - percent_of_material: 100, - tier: 3, - props: [ - global.NUGGET_GEN, - global.INGOT_GEN, - global.DUST_GEN, - global.PLATE_GEN, - global.DOUBLE_PLATE_GEN, - global.ROD_GEN, - global.BLOCK_GEN - ], - } -}; - global.TFC_SIMPLE_MATERIALS = [ "gypsum", "cinnabar", @@ -1757,6 +921,15 @@ global.TFC_QUERN_POWDER_RECIPE_COMPONENTS = [ { input: '#forge:dusts/borax', output: '4x tfc:powder/flux', name: 'flux_powder' } ]; +global.TFC_QUERN_GRAIN_RECIPE_COMPONENTS = [ + { input: 'tfc:food/barley', output: 'tfc:food/barley_grain', name: 'barley_grain' }, + { input: 'tfc:food/maize', output: 'tfc:food/maize_grain', name: 'maize_grain' }, + { input: 'tfc:food/oat', output: 'tfc:food/oat_grain', name: 'oat_grain' }, + { input: 'tfc:food/rye', output: 'tfc:food/rye_grain', name: 'rye_grain' }, + { input: 'tfc:food/rice', output: 'tfc:food/rice_grain', name: 'rice_grain' }, + { input: 'tfc:food/wheat', output: 'tfc:food/wheat_grain', name: 'wheat_grain' }, +]; + global.TFC_QUERN_FLOUR_RECIPE_COMPONENTS = [ { input: 'tfc:food/barley_grain', output: '2x tfc:food/barley_flour', name: 'barley_flour' }, { input: 'tfc:food/maize_grain', output: '2x tfc:food/maize_flour', name: 'maize_flour' }, diff --git a/mods b/mods index a3bb39941..0e127d243 160000 --- a/mods +++ b/mods @@ -1 +1 @@ -Subproject commit a3bb399413071ff198dff3381de0efaac660ef1b +Subproject commit 0e127d2439dfa862de65e2463a6398b496ec2bc3