neuralgia/kubejs/server_scripts/tfc/recipes.materials.js
Pyritie f0845f2c69
Release: 0.9.3 (#951)
* changed Caelum to be on the server too, since tfc-caelum is also a server mod

* added caelum + tfc-caelum to pakku

* fixed stress levels on the rolling mill

* fixed lang files for universal circuits

* changed early game recipes to use small gears instead of large, to avoid duping, and make cogs easier

* Update carryon-common.toml

Carry On's config doesn't seem to work with tags (#), so I explicitly added the framedblocks chest and the tfc chests to the whitelist. I also removed storage drawers since they aren't in use.

Signed-off-by: NobleWasTaken <137561393+NobleWasTaken@users.noreply.github.com>

* - Missed this commit last time oops

* Fixed nano legs buff from also removing speed buff, for now

* Added recycling recipes for your old molds

* lowered recipe speed of bulk washing

* Added more details to ore hazards field guide entry

* Bump actions/download-artifact in the dependencies group

Bumps the dependencies group with 1 update: [actions/download-artifact](https://github.com/actions/download-artifact).


Updates `actions/download-artifact` from 4.2.1 to 4.3.0
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4.2.1...v4.3.0)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: 4.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>

* will you leave me alone if I submit these, ftbquests?

* more create SU adjustments

* - Added recipe to separate fertilizer into pure sources, and mix them back together.
- Added recipes to sew hides together and cut them apart.

* ore basics + hazards field guide entry tweaks

* big field guide update! all ore veins are now generated with our tool!

* toned down how many sticks were being placed in the nether

* remove caelum + tfc caelum #922

* - Added recipe to separate fertilizer into pure sources, and mix them back together. (#927)

- Added recipes to sew hides together and cut them apart.

* the placeholder programmed circuit recipe is now a stick + wrench, so it doesn't confuse new players as much

* updated changelog

* changed some create recipes to use bolts instead of nuggets, so they're available earlier

* moved surface_kaolin to mechanics category

* changed realgar item set

* Add README file to server overrides

* Fix tips quest issues (#937)

* - Fixed supports

* fixed some incorrect assembler recipes for create items

* improved texture of nether quartz ore + the raw ore block of the quartz material set

* greate buffs

* remove brick duping

* removed treated wood boats

* clay decomposition now requires HV

* added a potential fix for #944 suggested by ghosti, cleaned up some other abuses of it in tag events so now it's just indicators that still have to use it

* fixed tfc tool tags

* fluix's displayed formula is now more accurate to its material composition

* nerfed stone dust centrifuging, added a basic tape recipe that uses tfc glue

* fixes #932

* Allow red/tin alloy double ingot piles, add textures (#948)

* Mv quest rework (#920)

* Changes for MV Quests

* First fix for Progression tab

* fixes lang title

Signed-off-by: TomPlop <tomdidome@gmail.com>

* Changes for LV, fixes for quest categories, adding GT Tips, adding Gregtech energy, rework of Progression tab

* fix macerator separator

---------

Signed-off-by: TomPlop <tomdidome@gmail.com>

* - the other ae2 wireless terminals are now all in late EV
- MEGA ae2 stuff now requires naq instead of a singularity

* coke and coal are no longer gems, and moss is no longer dirt

* fixed some icon sets

* the nether now has a gas collector recipe

* update changelog

* some more ae2 tweaking

* better recipe for the universal wireless terminal

* swapped colors of nickel and platinum, so nickel more closely matches the tfc textures

* doubled capacity of greate shafts! also adjusted the alternator to match

* fix: gui_main_menu

* pakku update

* fix: gui_main_menu 2

* Update mods

* removed beneath's cursecoal and sylvite veins, made tfg ones instead so they're added to the field guide

* new main menu panorama!

* update changelog

* update changelog

* added death punishment mod + config

* updated the greate mixer workaround quest

* Rubber processing recipes audit (#949)

* Rubber recipe changes
- Latex can now be extracted from rubber trees' logs, saplings, leaves via the vacuum chamber (ULV) or extractor(LV)
- values: 1000mB per log, 100mB per sapling, 50mB per leaves; Extractor recipes do this in bulk and output 1000mB per operation
- Dandelions and goldenrods can, with added sodium hydroxide, be turned into latex in a chem reactor
- Sticky resin recipes (from both conifer pitch and latex) require wood ash now instead of sulfur
- Latex -> Vulcanized latex recipe now requires sulfur instead of wood ash
- Vulcanized latex now becomes raw rubber pulp in a solidifier or vacuum chamber at a rate of 250mB/raw pulp
- Latex soaked glove recipe now is a barrel recipe that takes 50 seconds instead of a vat recipe

* Correctly set latex soaked gloves recipe to 50 seconds (was 100 seconds in previous commit)

* Quest/patchouli book updates
- Tried to catch every mention of the old rubber making recipes.

* Revert Latex-soaked gloves recipe change as it didn't need to change
- Originally I wanted to make vulc latex -> raw rubber a Vat recipe, this isn't the case anymore so there is no reason to change this recipe.

* Rebalanced recipe values
- Logs now only give 250mB of latex
- Increase overall in time required vacuumizing directly into latex (now roughly takes 150 seconds per 1000mB, logs slightly faster)
- Gregtech fluid extraction recipes for these have been rebalanced to be around 4x faster and in bulk (roughly 37.5 seconds per 1000mB, logs slightly faster)
- Made vacuum chamber recipes use kubejs tag: field for allowing tags in recipe

* Lang & Quest updates
- Changed rubber ingot quest dependency to be on vacuum chamber instead of extractor
- Removed LV circuit quest dependency on rubber (this hasn't required rubber for a while)
- Lang changes - fix ambiguous wording, typos, titles too long for book

* updated langs

* oops, missed quest langs

* pushing algo_rithm's lang changes

* updated punishment-for-death pakku

* update configs

* langs

* Update CHANGELOG.md

* Update mods

* CHANGELOG

* Update build.yml

---------

Signed-off-by: NobleWasTaken <137561393+NobleWasTaken@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: TomPlop <tomdidome@gmail.com>
Co-authored-by: NobleWasTaken <137561393+NobleWasTaken@users.noreply.github.com>
Co-authored-by: Redeix <59435925+Redeix@users.noreply.github.com>
Co-authored-by: Redeix <brayden.j.m.ford@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Xikaro <55663835+Xikaro@users.noreply.github.com>
Co-authored-by: Nebby1999 <nebby131999@gmail.com>
Co-authored-by: Nebby <78170922+Nebby1999@users.noreply.github.com>
Co-authored-by: AirRice <jpumph2@gmail.com>
Co-authored-by: TomPlop <tomdidome@gmail.com>
Co-authored-by: Xikaro <os.valerievich@ya.ru>
2025-05-05 21:58:47 +05:00

1278 lines
No EOL
51 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// priority: 0
function registerTFCMaterialsRecipes(event) {
forEachMaterial(material => {
let tfcProperty = material.getProperty(TFGPropertyKey.TFC_PROPERTY)
if (tfcProperty == null) {
return;
}
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.getName()}_ingot`)
if (material != GTMaterials.WroughtIron) {
// Отливка слитка в обычной форме
event.recipes.tfc.casting(ingotItem, 'tfc:ceramic/ingot_mold', Fluid.of(outputMaterial.getFluid(), 144), 0.1)
.id(`tfc:casting/${material.getName()}_ingot`)
// Отливка слитка в огнеупорной форме
event.recipes.tfc.casting(ingotItem, 'tfc:ceramic/fire_ingot_mold', Fluid.of(outputMaterial.getFluid(), 144), 0.01)
.id(`tfc:casting/${material.getName()}_fire_ingot`)
event.recipes.create.filling(
Item.of('tfc:ceramic/ingot_mold', getFillingNBT(outputMaterial, 144)),
[
Fluid.of(outputMaterial.getFluid(), 144),
Item.of('tfc:ceramic/ingot_mold').strongNBT()
]
).id(`tfg:tfc/filling/${material.getName()}_ingot`)
event.recipes.create.filling(
Item.of('tfc:ceramic/fire_ingot_mold', getFillingNBT(outputMaterial, 144)),
[
Fluid.of(outputMaterial.getFluid(), 144),
Item.of('tfc:ceramic/fire_ingot_mold').strongNBT()
]
).id(`tfg:tfc/filling/${material.getName()}_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.getName()}_double_ingot`)
// 2 слитка -> Двойной слиток
event.recipes.tfc.welding(doubleIngotItem, ingotItem, ingotItem, tfcProperty.getTier() - 1)
.id(`tfc:welding/${material.getName()}_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.getName()}_sheet`)
// Двойной слиток -> Пластина
event.recipes.tfc.anvil(plateItem, doubleIngotItem, ['hit_last', 'hit_second_last', 'hit_third_last'])
.tier(tfcProperty.getTier())
.id(`tfc:anvil/${material.getName()}_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.getName()}_double_sheet`)
// Две пластины -> Двойная пластина
event.recipes.tfc.welding(doublePlateItem, plateItem, plateItem)
.tier(tfcProperty.getTier())
.id(`tfc:welding/${material.getName()}_double_sheet`)
// Armor
if (material.hasFlag(TFGMaterialFlags.HAS_TFC_ARMOR)) {
//#region Шлем
// Декрафт незавершенного шлема в жидкость
event.recipes.tfc.heating(`tfc:metal/unfinished_helmet/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 288))
.id(`tfc:heating/metal/${material.getName()}_unfinished_helmet`)
// Незавершенный шлем
event.recipes.tfc.anvil(`tfc:metal/unfinished_helmet/${material.getName()}`, doublePlateItem, ['hit_last', 'bend_second_last', 'bend_third_last'])
.tier(tfcProperty.getTier())
.id(`tfc:anvil/${material.getName()}_unfinished_helmet`)
// Декрафт шлема в жидкость
event.recipes.tfc.heating(`tfc:metal/helmet/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 432))
.useDurability(true)
.id(`tfc:heating/metal/${material.getName()}_helmet`)
// Шлем
event.recipes.tfc.welding(`tfc:metal/helmet/${material.getName()}`, `tfc:metal/unfinished_helmet/${material.getName()}`, plateItem)
.tier(tfcProperty.getTier())
.id(`tfc:welding/${material.getName()}_helmet`)
//#endregion
//#region Нагрудник
// Декрафт незавершенного нагрудника в жидкость
event.recipes.tfc.heating(`tfc:metal/unfinished_chestplate/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 288))
.id(`tfc:heating/metal/${material.getName()}_unfinished_chestplate`)
// Незавершенный нагрудник
event.recipes.tfc.anvil(`tfc:metal/unfinished_chestplate/${material.getName()}`, doublePlateItem, ['hit_last', 'hit_second_last', 'upset_third_last'])
.tier(tfcProperty.getTier())
.id(`tfc:anvil/${material.getName()}_unfinished_chestplate`)
// Декрафт нагрудника в жидкость
event.recipes.tfc.heating(`tfc:metal/chestplate/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 576))
.useDurability(true)
.id(`tfc:heating/metal/${material.getName()}_chestplate`)
// Нагрудник
event.recipes.tfc.welding(`tfc:metal/chestplate/${material.getName()}`, `tfc:metal/unfinished_chestplate/${material.getName()}`, doublePlateItem)
.tier(tfcProperty.getTier())
.id(`tfc:welding/${material.getName()}_chestplate`)
//#endregion
//#region Поножи
// Декрафт незавершенных поножей в жидкость
event.recipes.tfc.heating(`tfc:metal/unfinished_greaves/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 288))
.id(`tfc:heating/metal/${material.getName()}_unfinished_greaves`)
// Незавершенные поножи
event.recipes.tfc.anvil(`tfc:metal/unfinished_greaves/${material.getName()}`, doublePlateItem, ['bend_any', 'draw_any', 'hit_any'])
.tier(tfcProperty.getTier())
.id(`tfc:anvil/${material.getName()}_unfinished_greaves`)
// Декрафт поножей в жидкость
event.recipes.tfc.heating(`tfc:metal/greaves/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 432))
.useDurability(true)
.id(`tfc:heating/metal/${material.getName()}_greaves`)
// Поножи
event.recipes.tfc.welding(`tfc:metal/greaves/${material.getName()}`, `tfc:metal/unfinished_greaves/${material.getName()}`, plateItem)
.tier(tfcProperty.getTier())
.id(`tfc:welding/${material.getName()}_greaves`)
//#endregion
//#region Ботинки
// Декрафт незавершенных ботинок в жидкость
event.recipes.tfc.heating(`tfc:metal/unfinished_boots/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
.id(`tfc:heating/metal/${material.getName()}_unfinished_boots`)
// Незавершенные ботинки
event.recipes.tfc.anvil(`tfc:metal/unfinished_boots/${material.getName()}`, plateItem, ['bend_last', 'bend_second_last', 'shrink_third_last'])
.tier(tfcProperty.getTier())
.id(`tfc:anvil/${material.getName()}_unfinished_boots`)
// Декрафт ботинок в жидкость
event.recipes.tfc.heating(`tfc:metal/boots/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 288))
.useDurability(true)
.id(`tfc:heating/metal/${material.getName()}_boots`)
// Ботинки
event.recipes.tfc.welding(`tfc:metal/boots/${material.getName()}`, `tfc:metal/unfinished_boots/${material.getName()}`, plateItem)
.tier(tfcProperty.getTier())
.id(`tfc:welding/${material.getName()}_boots`)
//#endregion
}
// Tools (From Double Plate)
if (material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) {
//#region Фурма
// Декрафт инструмента в жидкость
event.recipes.tfc.heating(`tfc:metal/tuyere/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 288))
.useDurability(true)
.id(`tfc:heating/metal/${material.getName()}_tuyere`)
// Фурма
event.recipes.tfc.anvil(`tfc:metal/tuyere/${material.getName()}`, doublePlateItem, ['bend_last', 'bend_second_last'])
.tier(tfcProperty.getTier())
.id(`tfc:anvil/${material.getName()}_tuyere`)
//#endregion
//#region Щит
// Декрафт щита в жидкость
event.recipes.tfc.heating(`tfc:metal/shield/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 288))
.useDurability(true)
.id(`tfc:heating/metal/${material.getName()}_shield`)
// Щит
event.recipes.tfc.anvil(`tfc:metal/shield/${material.getName()}`, doublePlateItem, ['upset_last', 'bend_second_last', 'bend_third_last'])
.tier(tfcProperty.getTier())
.id(`tfc:anvil/${material.getName()}_shield`)
//#endregion
//#region Конская броня
// Декрафт конской брони в жидкость
event.recipes.tfc.heating(`tfc:metal/horse_armor/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 864))
.useDurability(true)
.id(`tfc:heating/metal/${material.getName()}_horse_armor`)
//#endregion
}
}
// Tools (From Plate)
if (material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) {
//#region Удочка
// Декрафт оголовья в жидкость
event.recipes.tfc.heating(`tfc:metal/fish_hook/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
.id(`tfc:heating/metal/${material.getName()}_fish_hook`)
// Крюк удочки
event.recipes.tfc.anvil(`tfc:metal/fish_hook/${material.getName()}`, plateItem, ['draw_not_last', 'bend_any', 'hit_any'])
.tier(tfcProperty.getTier())
.bonus(true)
.id(`tfc:anvil/${material.getName()}_fish_hook`)
// Декрафт инструмента в жидкость
event.recipes.tfc.heating(`tfc:metal/fishing_rod/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
.useDurability(true)
.id(`tfc:heating/metal/${material.getName()}_fishing_rod`)
//#endregion
}
// Plated Blocks - applies for everything with a double ingot (except tin/red alloy)
if (material != GTMaterials.TinAlloy && material != GTMaterials.RedAlloy) {
generatePlatedBlockRecipe(event, material);
}
}
// Tools (From Double Ingots)
if (material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) {
//#region Меч
// Крафт инструмента
event.remove({ id: `tfc:crafting/metal/sword/${material.getName()}` })
// Декрафт инструмента в жидкость
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.getName()}_sword`)
}
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.getName()}_sword_blade`)
// Крафт оголовья
event.recipes.tfc.anvil(swordHeadItem, doubleIngotItem, ['punch_last', 'bend_not_last', 'draw_not_last'])
.tier(tfcProperty.getTier())
.bonus(true)
.id(`tfc:anvil/${material.getName()}_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.getName()}_sword_blade`)
event.recipes.create.filling(
Item.of('tfc:ceramic/sword_blade_mold', getFillingNBT(outputMaterial, 288)),
[
Fluid.of(outputMaterial.getFluid(), 288),
Item.of('tfc:ceramic/sword_blade_mold').strongNBT()
]
).id(`tfg:tfc/filling/${material.getName()}_sword_blade`)
}
}
//#endregion
//#region Дубина
// Декрафт инструмента в жидкость
event.recipes.tfc.heating(`tfc:metal/mace/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 288))
.useDurability(true)
.id(`tfc:heating/metal/${material.getName()}_mace`)
// Металл + Форма -> Оголовье
if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) {
event.recipes.tfc.casting(`tfc:metal/mace_head/${material.getName()}`, 'tfc:ceramic/mace_head_mold', Fluid.of(outputMaterial.getFluid(), 288), 1)
.id(`tfc:casting/${material.getName()}_mace_head`)
event.recipes.create.filling(
Item.of('tfc:ceramic/mace_head_mold', getFillingNBT(outputMaterial, 288)),
[
Fluid.of(outputMaterial.getFluid(), 288),
Item.of('tfc:ceramic/mace_head_mold').strongNBT()
]
).id(`tfg:tfc/filling/${material.getName()}_mace_head`)
}
// Декрафт оголовья в жидкость
event.recipes.tfc.heating(`tfc:metal/mace_head/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 288))
.id(`tfc:heating/metal/${material.getName()}_mace_head`)
//#endregion
//#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.getName()}_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.getName()}_knife_butchery_head`)
// Крафт оголовья
event.recipes.tfc.anvil(butcheryKnifeHeadItem, `#forge:ingots/${material.getName()}`, ['punch_last', 'bend_not_last', 'bend_not_last'])
.tier(tfcProperty.getTier())
.bonus(true)
.id(`tfc:anvil/${material.getName()}_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.getName()}_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.getName()}_mining_hammer_head`)
// Крафт оголовья
event.recipes.tfc.anvil(miningHammerHeadItem, doubleIngotItem, ['punch_last', 'shrink_not_last'])
.tier(tfcProperty.getTier())
.bonus(true)
.id(`tfc:anvil/${material.getName()}_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.getName()}_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.getName()}_spade_head`)
// Декрафт оголовья в жидкость
event.recipes.tfc.heating(spadeHeadItem, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 288))
.id(`tfc:heating/metal/${material.getName()}_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.getName()}_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.getName()}_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.getName()}_long_rod`)
// Стержни -> Длинный стержень
event.recipes.tfc.welding(longRodItem, rodItem, rodItem)
.tier(tfcProperty.getTier())
.id(`tfc:anvil/${material.getName()}_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(), 18))
.id(`tfc:heating/metal/${material.getName()}_bolt`)
// Стержень -> Болт
event.recipes.tfc.anvil(boltItem.withCount(2), rodItem, ['punch_last', 'draw_second_last', 'draw_third_last'])
.tier(tfcProperty.getTier())
.id(`tfc:anvil/${material.getName()}_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(), 16))
.id(`tfc:heating/metal/${material.getName()}_screw`)
// Стержень -> Винт
event.recipes.tfc.anvil(screwItem, rodItem, ['punch_last', 'punch_second_last', 'shrink_third_last'])
.tier(tfcProperty.getTier())
.id(`tfc:anvil/${material.getName()}_screw`)
}
let ringItem = ChemicalHelper.get(TagPrefix.ring, material, 1)
if (!ringItem.isEmpty()) {
// Кольцо -> Металл
event.recipes.tfc.heating(ringItem, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 36))
.id(`tfc:heating/metal/${material.getName()}_ring`)
// Стержень -> Кольцо
event.recipes.tfc.anvil(ringItem, rodItem, ['hit_last', 'hit_second_last', 'hit_third_last'])
.tier(tfcProperty.getTier())
.id(`tfc:anvil/${material.getName()}_ring`)
}
}
// Tools (From Ingot)
if (material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) {
//#region Кирка
// Крафт инструмента
event.remove({ id: `tfc:crafting/metal/pickaxe/${material.getName()}` })
// Декрафт инструмента в жидкость
let pickaxeItem = ToolHelper.get(GTToolType.PICKAXE, material)
if (!pickaxeItem.isEmpty()) {
event.recipes.tfc.heating(`gtceu:${material.getName()}_pickaxe`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
.useDurability(true)
.id(`tfc:heating/metal/${material.getName()}_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.getName()}_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.getName()}_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.getName()}_pickaxe_head`)
event.recipes.create.filling(
Item.of('tfc:ceramic/pickaxe_head_mold', getFillingNBT(outputMaterial, 144)),
[
Fluid.of(outputMaterial.getFluid(), 144),
Item.of('tfc:ceramic/pickaxe_head_mold').strongNBT()
]
).id(`tfg:tfc/filling/${material.getName()}_pickaxe_head`)
}
}
//#endregion
// #region Mattock
event.recipes.tfc.heating(`rnr:metal/mattock/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
.useDurability(true)
.id(`rnr:heating/metal/${material.getName()}_mattock`)
event.recipes.tfc.heating(`rnr:metal/mattock_head/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
.id(`rnr:heating/metal/${material.getName()}_mattock_head`)
//#endregion
//#region Топор
// Крафт инструмента
event.remove({ id: `tfc:crafting/metal/axe/${material.getName()}` })
// Декрафт инструмента в жидкость
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.getName()}_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.getName()}_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.getName()}_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.getName()}_axe_head`)
event.recipes.create.filling(
Item.of('tfc:ceramic/axe_head_mold', getFillingNBT(outputMaterial, 144)),
[
Fluid.of(outputMaterial.getFluid(), 144),
Item.of('tfc:ceramic/axe_head_mold').strongNBT()
]
).id(`tfg:tfc/filling/${material.getName()}_axe_head`)
}
}
//#endregion
//#region Лопата
// Крафт инструмента
event.remove({ id: `tfc:crafting/metal/shovel/${material.getName()}` })
// Декрафт инструмента в жидкость
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.getName()}_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.getName()}_shovel_head`)
// Крафт оголовья
event.recipes.tfc.anvil(shovelHeadItem, ingotItem, ['punch_last', 'hit_not_last'])
.tier(tfcProperty.getTier())
.bonus(true)
.id(`tfc:anvil/${material.getName()}_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.getName()}_shovel_head`)
event.recipes.create.filling(
Item.of('tfc:ceramic/shovel_head_mold', getFillingNBT(outputMaterial, 144)),
[
Fluid.of(outputMaterial.getFluid(), 144),
Item.of('tfc:ceramic/shovel_head_mold').strongNBT()
]
).id(`tfg:tfc/filling/${material.getName()}_shovel_head_mold`)
}
}
//#endregion
//#region Мотыга
// Крафт инструмента
event.remove({ id: `tfc:crafting/metal/hoe/${material.getName()}` })
// Декрафт инструмента в жидкость
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.getName()}_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.getName()}_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.getName()}_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.getName()}_hoe_head`)
event.recipes.create.filling(
Item.of('tfc:ceramic/hoe_head_mold', getFillingNBT(outputMaterial, 144)),
[
Fluid.of(outputMaterial.getFluid(), 144),
Item.of('tfc:ceramic/hoe_head_mold').strongNBT()
]
).id(`tfg:tfc/filling/${material.getName()}_hoe_head_mold`)
}
}
//#endregion
//#region Молот
// Крафт инструмента
event.remove({ id: `tfc:crafting/metal/hammer/${material.getName()}` })
// Декрафт инструмента в жидкость
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.getName()}_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.getName()}_hammer_head`)
// Крафт оголовья
event.recipes.tfc.anvil(hammerHeadItem, ingotItem, ['punch_last', 'shrink_not_last'])
.tier(tfcProperty.getTier())
.bonus(true)
.id(`tfc:anvil/${material.getName()}_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.getName()}_hammer_head`)
event.recipes.create.filling(
Item.of('tfc:ceramic/hammer_head_mold', getFillingNBT(outputMaterial, 144)),
[
Fluid.of(outputMaterial.getFluid(), 144),
Item.of('tfc:ceramic/hammer_head_mold').strongNBT()
]
).id(`tfg:tfc/filling/${material.getName()}_hammer_head_mold`)
}
}
//#endregion
//#region Пила
// Крафт инструмента
event.remove({ id: `tfc:crafting/metal/saw/${material.getName()}` })
// Декрафт инструмента в жидкость
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.getName()}_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.getName()}_saw_blade`)
// Крафт оголовья
event.recipes.tfc.anvil(sawHeadItem, ingotItem, ['hit_last', 'hit_second_last'])
.tier(tfcProperty.getTier())
.bonus(true)
.id(`tfc:anvil/${material.getName()}_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.getName()}_saw_blade`)
event.recipes.create.filling(
Item.of('tfc:ceramic/saw_blade_mold', getFillingNBT(outputMaterial, 144)),
[
Fluid.of(outputMaterial.getFluid(), 144),
Item.of('tfc:ceramic/saw_blade_mold').strongNBT()
]
).id(`tfg:tfc/filling/${material.getName()}_saw_blade_mold`)
}
}
//#endregion
//#region Коса
// Крафт инструмента
event.remove({ id: `tfc:crafting/metal/scythe/${material.getName()}` })
// Декрафт инструмента в жидкость
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.getName()}_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.getName()}_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.getName()}_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.getName()}_scythe_blade`)
event.recipes.create.filling(
Item.of('tfc:ceramic/scythe_blade_mold', getFillingNBT(outputMaterial, 144)),
[
Fluid.of(outputMaterial.getFluid(), 144),
Item.of('tfc:ceramic/scythe_blade_mold').strongNBT()
]
).id(`tfg:tfc/filling/${material.getName()}_scythe_blade_mold`)
}
}
//#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.getName()}_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.getName()}_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.getName()}_file_head`)
}
//#endregion
//#region Нож
// Крафт инструмента
event.remove({ id: `tfc:crafting/metal/knife/${material.getName()}` })
// Декрафт инструмента в жидкость
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.getName()}_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.getName()}_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.getName()}_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.getName()}_knife_blade`)
event.recipes.create.filling(
Item.of('tfc:ceramic/knife_blade_mold', getFillingNBT(outputMaterial, 144)),
[
Fluid.of(outputMaterial.getFluid(), 144),
Item.of('tfc:ceramic/knife_blade_mold').strongNBT()
]
).id(`tfg:tfc/filling/${material.getName()}_knife_blade_mold`)
}
//#region Ножницы
// Сварка оголовий
event.recipes.tfc.welding(`tfc:metal/shears/${material.getName()}`, knifeHeadItem, knifeHeadItem, tfcProperty.getTier())
.id(`tfc:welding/${material.getName()}_shears`)
// Декрафт инструмента в жидкость
event.recipes.tfc.heating(`tfc:metal/shears/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 288))
.useDurability(true)
.id(`tfc:heating/metal/${material.getName()}_shears`)
//#endregion
}
//#endregion
//#region Проспектор
// Декрафт инструмента в жидкость
event.recipes.tfc.heating(`tfc:metal/propick/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
.useDurability(true)
.id(`tfc:heating/metal/${material.getName()}_propick`)
// Декрафт оголовья в жидкость
event.recipes.tfc.heating(`tfc:metal/propick_head/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
.id(`tfc:heating/metal/${material.getName()}_propick_head`)
// Металл + Форма -> Оголовье
if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) {
event.recipes.tfc.casting(`tfc:metal/propick_head/${material.getName()}`, 'tfc:ceramic/propick_head_mold', Fluid.of(outputMaterial.getFluid(), 144), 1)
.id(`tfc:casting/${material.getName()}_propick_head`)
event.recipes.create.filling(
Item.of('tfc:ceramic/propick_head_mold', getFillingNBT(outputMaterial, 144)),
[
Fluid.of(outputMaterial.getFluid(), 144),
Item.of('tfc:ceramic/propick_head_mold').strongNBT()
]
).id(`tfg:tfc/filling/${material.getName()}_propick_head_mold`)
}
//#endregion
//#region Стамеска
// Декрафт инструмента в жидкость
event.recipes.tfc.heating(`tfc:metal/chisel/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
.useDurability(true)
.id(`tfc:heating/metal/${material.getName()}_chisel`)
// Декрафт оголовья в жидкость
event.recipes.tfc.heating(`tfc:metal/chisel_head/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
.id(`tfc:heating/metal/${material.getName()}_chisel_head`)
// Металл + Форма -> Оголовье
if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) {
event.recipes.tfc.casting(`tfc:metal/chisel_head/${material.getName()}`, 'tfc:ceramic/chisel_head_mold', Fluid.of(outputMaterial.getFluid(), 144), 1)
.id(`tfc:casting/${material.getName()}_chisel_head`)
event.recipes.create.filling(
Item.of('tfc:ceramic/chisel_head_mold', getFillingNBT(outputMaterial, 144)),
[
Fluid.of(outputMaterial.getFluid(), 144),
Item.of('tfc:ceramic/chisel_head_mold').strongNBT()
]
).id(`tfg:tfc/filling/${material.getName()}_chisel_head_mold`)
}
//#endregion
//#region Копье
// Декрафт инструмента в жидкость
event.recipes.tfc.heating(`tfc:metal/javelin/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
.useDurability(true)
.id(`tfc:heating/metal/${material.getName()}_javelin`)
// Декрафт оголовья в жидкость
event.recipes.tfc.heating(`tfc:metal/javelin_head/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
.id(`tfc:heating/metal/${material.getName()}_javelin_head`)
// Металл + Форма -> Оголовье
if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) {
event.recipes.tfc.casting(`tfc:metal/javelin_head/${material.getName()}`, 'tfc:ceramic/javelin_head_mold', Fluid.of(outputMaterial.getFluid(), 144), 1)
.id(`tfc:casting/${material.getName()}_javelin_head`)
event.recipes.create.filling(
Item.of('tfc:ceramic/javelin_head_mold', getFillingNBT(outputMaterial, 144)),
[
Fluid.of(outputMaterial.getFluid(), 144),
Item.of('tfc:ceramic/javelin_head_mold').strongNBT()
]
).id(`tfg:tfc/filling/${material.getName()}_javelin_head_mold`)
}
//#endregion
}
}
// Blocks
let blockItem = ChemicalHelper.get(TagPrefix.block, material, 1)
if (!blockItem.isEmpty()) {
// Декрафт блока в жидкость
event.recipes.tfc.heating(`#forge:storage_blocks/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 1296))
.id(`tfc:heating/metal/${material.getName()}_storage_block`)
}
// Anvils, Lamps, Trapdors, Chains
if (material.hasFlag(TFGMaterialFlags.HAS_TFC_UTILITY)) {
// Декрафт незавершенной лампы в жидкость
event.recipes.tfc.heating(`tfc:metal/unfinished_lamp/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
.id(`tfc:heating/metal/${material.getName()}_unfinished_lamp`)
// Декрафт лампы в жидкость
event.recipes.tfc.heating(`tfc:metal/lamp/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
.id(`tfc:heating/metal/${material.getName()}_lamp`)
// Декрафт люка в жидкость
event.recipes.tfc.heating(`tfc:metal/trapdoor/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
.id(`tfc:heating/metal/${material.getName()}_trapdoor`)
let plateItem = ChemicalHelper.get(TagPrefix.plate, material, 1);
// Люк
event.recipes.tfc.anvil(`tfc:metal/trapdoor/${material.getName()}`, plateItem, ['bend_last', 'draw_second_last', 'draw_third_last'])
.tier(tfcProperty.getTier())
.id(`tfc:anvil/${material.getName()}_trapdoor`)
// Декрафт решетки в жидкость
event.recipes.tfc.heating(`tfc:metal/bars/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 18))
.id(`tfc:heating/metal/${material.getName()}_bars`)
// 8x Решетка
event.recipes.tfc.anvil(`8x tfc:metal/bars/${material.getName()}`, plateItem, ['upset_last', 'punch_second_last', 'punch_third_last'])
.tier(tfcProperty.getTier())
.id(`tfc:anvil/${material.getName()}_bars`)
// 16x Решетка
event.recipes.tfc.anvil(`16x tfc:metal/bars/${material.getName()}`, ChemicalHelper.get(TagPrefix.plateDouble, material, 1), ['upset_last', 'punch_second_last', 'punch_third_last'])
.tier(tfcProperty.getTier())
.id(`tfc:anvil/${material.getName()}_bars_double`)
// Декрафт цепи в жидкость
event.recipes.tfc.heating(`tfc:metal/chain/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 9))
.id(`tfc:heating/metal/${material.getName()}_chain`)
// Декрафт наковальни в жидкость
event.recipes.tfc.heating(`tfc:metal/anvil/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 2016))
.id(`tfc:heating/metal/${material.getName()}_anvil`)
}
//#region Щипцы
let tongsStack = Item.of(`tfchotornot:tongs/${material.getName()}`)
let tongPartStack = Item.of(`tfchotornot:tong_part/${material.getName()}`)
if (!tongsStack.isEmpty() && !tongPartStack.isEmpty()) {
// Ручка щипцов
event.recipes.tfc.heating(tongPartStack, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
.id(`tfchotornot:heating/tong_part/${material.getName()}`)
// Щипцы
event.recipes.tfc.heating(tongsStack, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 288))
.useDurability(true)
.id(`tfchotornot:heating/tongs/${material.getName()}`)
}
//#endregion
// Small TFC Ores
if (material.hasFlag(TFGMaterialFlags.HAS_SMALL_TFC_ORE)) {
// Workaround for limonite/bismuth
let materialName = material.getName();
if (materialName == "yellow_limonite") {
materialName = "limonite";
}
else if (materialName == "bismuth") {
materialName = "bismuthinite";
}
// Декрафт мелкого кусочка в жидкость
event.recipes.tfc.heating(`tfc:ore/small_${materialName}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 16))
.id(`tfc:heating/ore/small_${materialName}`)
}
// Small Native TFC Ores
if (material.hasFlag(TFGMaterialFlags.HAS_SMALL_NATIVE_TFC_ORE)) {
// Декрафт мелкого кусочка в жидкость
event.recipes.tfc.heating(`tfc:ore/small_native_${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 16))
.id(`tfc:heating/ore/small_native_${material.getName()}`)
}
// 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.calcAmountOfMetalProcessed(16, tfcProperty.getPercentOfMaterial())))
.id(`tfg:heating/tiny_dust/${material.getName()}`)
}
// Декрафт средней пыли
let smallDust = ChemicalHelper.get(TagPrefix.dustSmall, material, 1)
if (!smallDust.isEmpty()) {
event.recipes.tfc.heating(smallDust, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), global.calcAmountOfMetalProcessed(36, tfcProperty.getPercentOfMaterial())))
.id(`tfg:heating/small_dust/${material.getName()}`)
}
// Декрафт пыли
let dust = ChemicalHelper.get(TagPrefix.dust, material, 1)
if (!dust.isEmpty()) {
event.recipes.tfc.heating(dust, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), global.calcAmountOfMetalProcessed(144, tfcProperty.getPercentOfMaterial())))
.id(`tfg:heating/dust/${material.getName()}`)
}
// Декрафт грязной пыли
let impureDust = ChemicalHelper.get(TagPrefix.dustImpure, material, 1)
if (!impureDust.isEmpty()) {
event.recipes.tfc.heating(impureDust, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), global.calcAmountOfMetalProcessed(80, tfcProperty.getPercentOfMaterial())))
.id(`tfg:heating/impure_dust/${material.getName()}`)
}
// Декрафт очищенной пыли
let purifiedDust = ChemicalHelper.get(TagPrefix.dustPure, material, 1)
if (!purifiedDust.isEmpty()) {
event.recipes.tfc.heating(purifiedDust, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), global.calcAmountOfMetalProcessed(120, tfcProperty.getPercentOfMaterial())))
.id(`tfg:heating/purified_dust/${material.getName()}`)
}
}
// 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.calcAmountOfMetalProcessed(80, tfcProperty.getPercentOfMaterial())))
.id(`tfg:heating/crushed_ore/${material.getName()}`)
}
// Декрафт ломанной очищенной руды
let crushedPurifiedOre = ChemicalHelper.get(TagPrefix.crushedPurified, material, 1)
if (!crushedPurifiedOre.isEmpty()) {
event.recipes.tfc.heating(crushedPurifiedOre, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), global.calcAmountOfMetalProcessed(100, tfcProperty.getPercentOfMaterial())))
.id(`tfg:heating/crushed_purified_ore/${material.getName()}`)
}
// Декрафт центрифугированной ломанной руды
let crushedRefinedOre = ChemicalHelper.get(TagPrefix.crushedRefined, material, 1)
if (!crushedRefinedOre.isEmpty()) {
event.recipes.tfc.heating(crushedRefinedOre, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), global.calcAmountOfMetalProcessed(110, tfcProperty.getPercentOfMaterial())))
.id(`tfg:heating/crushed_refined_ore/${material.getName()}`)
}
// Декрафт богатого куска руды
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.getName()}`)
}
// Декрафт нормального куска руды
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.getName()}`)
}
// Декрафт бедного куска руды
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.getName()}`)
}
}
// 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.getName()}`)
}
})
}