// priority: 0 const registerTFCRecipes = (event) => { //return; TODO тут баг //#region Металлы // Удаление рецептов руд 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/ }) let getFillingNBT = (material, amount) => { return { tank: { FluidName: Fluid.of(material.getFluid()).getId(), Amount: amount } } } GTMaterialRegistry.getRegisteredMaterials().forEach(material => { 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.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 } } // 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 Топор // Крафт инструмента 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()}_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`) // Люк event.recipes.tfc.anvil(`tfc:metal/trapdoor/${material.getName()}`, `gtceu:${material.getName()}_plate`, ['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()}`, `gtceu:${material.getName()}_plate`, ['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()}`, `gtceu:double_${material.getName()}_plate`, ['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)) { // Декрафт мелкого кусочка в жидкость event.recipes.tfc.heating(`tfc:ore/small_${material.getName()}`, tfcProperty.getMeltTemp()) .resultFluid(Fluid.of(outputMaterial.getFluid(), 16)) .id(`tfc:heating/ore/small_${material.getName()}`) } // 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.calcAmountOfMetal(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.calcAmountOfMetal(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.calcAmountOfMetal(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.calcAmountOfMetal(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.calcAmountOfMetal(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.calcAmountOfMetal(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.calcAmountOfMetal(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.calcAmountOfMetal(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()}`) } } }) //#region Рецепты для новых сплавов event.recipes.tfc.alloy('tfg:red_alloy', [ TFC.alloyPart('tfg:redstone', 0.75, 0.85), TFC.alloyPart('tfc:copper', 0.15, 0.25) ]).id('tfg:alloy/red_alloy') event.recipes.tfc.alloy('tfg:tin_alloy', [ TFC.alloyPart('tfc:tin', 0.45, 0.55), TFC.alloyPart('tfc:cast_iron', 0.45, 0.55) ]).id('tfg:alloy/tin_alloy') //#endregion //#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` }) // Слиток event.remove({ id: `tfc:casting/cast_iron_ingot` }) event.remove({ id: `tfc:casting/cast_iron_fire_ingot` }) event.remove({ id: `tfc:heating/metal/cast_iron_ingot` }) event.remove({ id: `tfc:welding/cast_iron_double_ingot` }) event.remove({ id: `tfc:anvil/cast_iron_rod` }) // Двойной слиток event.remove({ id: `tfc:heating/metal/cast_iron_double_ingot` }) event.remove({ id: `tfc:anvil/cast_iron_sheet` }) // Пластина event.remove({ id: `tfc:heating/metal/cast_iron_sheet` }) event.remove({ id: `tfc:welding/cast_iron_double_sheet` }) // Двойная пластина event.remove({ id: `tfc:heating/metal/cast_iron_double_sheet` }) // Стержень event.remove({ id: `tfc:heating/metal/cast_iron_rod` }) // Блок 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` }) //#endregion //#region Фикс рецептов колоколов //#region Из золота 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) .resultFluid(Fluid.of('gtceu:gold', 144)) .id(`tfc:heating/gold_bell`) event.recipes.create.filling( Item.of('tfc:ceramic/bell_mold', getFillingNBT(GTMaterials.Gold, 144)), [ Fluid.of(GTMaterials.Gold.getFluid(), 144), Item.of('tfc:ceramic/bell_mold').strongNBT() ] ).id(`tfg:tfc/filling/${GTMaterials.Gold.getName()}_bell_mold`) //#endregion //#region Из латуни 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) .resultFluid(Fluid.of('gtceu:brass', 144)) .id(`tfc:heating/brass_bell`) event.recipes.create.filling( Item.of('tfc:ceramic/bell_mold', getFillingNBT(GTMaterials.Brass, 144)), [ Fluid.of(GTMaterials.Brass.getFluid(), 144), Item.of('tfc:ceramic/bell_mold').strongNBT() ] ).id(`tfg:tfc/filling/${GTMaterials.Brass.getName()}_bell_mold`) //#endregion //#region Из бронзы 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) .resultFluid(Fluid.of('gtceu:bronze', 144)) .id(`tfc:heating/bronze_bell`) event.recipes.create.filling( Item.of('tfc:ceramic/bell_mold', getFillingNBT(GTMaterials.Bronze, 144)), [ Fluid.of(GTMaterials.Bronze.getFluid(), 144), Item.of('tfc:ceramic/bell_mold').strongNBT() ] ).id(`tfg:tfc/filling/${GTMaterials.Bronze.getName()}_bell_mold`) //#endregion //#endregion //#region Рецепты ковки TFC слитков в GT машинах // Сырая крица -> Укрепленная крица event.recipes.gtceu.forge_hammer('tfg/refined_bloom') .itemInputs('tfc:raw_iron_bloom') .itemOutputs('tfc:refined_iron_bloom') .duration(1000) .EUt(4) // Укрепленная крица -> Слиток кованного железа event.recipes.gtceu.forge_hammer('tfg/wrought_iron_ingot') .itemInputs('tfc:refined_iron_bloom') .itemOutputs('gtceu:wrought_iron_ingot') .duration(1000) .EUt(4) // Чугун -> Высокоуглеродная сталь event.recipes.gtceu.forge_hammer('tfg/high_carbon_steel') .itemInputs('tfc:metal/ingot/pig_iron') .itemOutputs('tfc:metal/ingot/high_carbon_steel') .duration(1000) .EUt(4) // Высокоуглеродная сталь -> Cталь event.recipes.gtceu.forge_hammer('tfg/steel') .itemInputs('tfc:metal/ingot/high_carbon_steel') .itemOutputs('gtceu:steel_ingot') .duration(1000) .EUt(4) // Высокоуглеродная черная сталь -> черная сталь event.recipes.gtceu.forge_hammer('tfg/black_steel') .itemInputs('tfc:metal/ingot/high_carbon_black_steel') .itemOutputs('gtceu:black_steel_ingot') .duration(1000) .EUt(4) // Высокоуглеродная синяя сталь -> синяя сталь event.recipes.gtceu.forge_hammer('tfg/blue_steel') .itemInputs('tfc:metal/ingot/high_carbon_blue_steel') .itemOutputs('gtceu:blue_steel_ingot') .duration(1000) .EUt(4) // Высокоуглеродная красная сталь -> красная сталь event.recipes.gtceu.forge_hammer('tfg/red_steel') .itemInputs('tfc:metal/ingot/high_carbon_red_steel') .itemOutputs('gtceu:red_steel_ingot') .duration(1000) .EUt(4) // Слабая сталь + Чугун -> Высокоуглеродная черная сталь event.recipes.gtceu.alloy_smelter('tfg/high_carbon_black_steel') .itemInputs('tfc:metal/ingot/weak_steel', 'tfc:metal/ingot/pig_iron') .itemOutputs('tfc:metal/ingot/high_carbon_black_steel') .duration(1600) .EUt(4) // Слабая синяя сталь + Черная сталь -> Высокоуглеродная синяя сталь event.recipes.gtceu.alloy_smelter('tfg/high_carbon_blue_steel') .itemInputs('tfc:metal/ingot/weak_blue_steel', 'gtceu:black_steel_ingot') .itemOutputs('tfc:metal/ingot/high_carbon_blue_steel') .duration(1600) .EUt(4) // Слабая красная сталь + Черная сталь -> Высокоуглеродная красная сталь event.recipes.gtceu.alloy_smelter('tfg/high_carbon_red_steel') .itemInputs('tfc:metal/ingot/weak_red_steel', 'gtceu:black_steel_ingot') .itemOutputs('tfc:metal/ingot/high_carbon_red_steel') .duration(1600) .EUt(4) //#endregion //#region Фикс рецептов металлических предметов // Рецепт Jacks event.recipes.tfc.welding('tfc:jacks', '#forge:rods/brass', '#forge:plates/brass', 2) .id(`tfc:welding/jacks`) // Декрафт Jacks event.recipes.tfc.heating('tfc:jacks', 930) .resultFluid(Fluid.of('gtceu:brass', 144)) .id(`tfc:heating/jacks`) // Декрафт Gem Saw event.recipes.tfc.heating('tfc:gem_saw', 930) .resultFluid(Fluid.of('gtceu:brass', 72)) .id(`tfc:heating/gem_saw`) // Декрафт сырой крицы в жидкость event.recipes.tfc.heating(`tfc:raw_iron_bloom`, 1535) .resultFluid(Fluid.of('gtceu:iron', 144)) .id(`tfc:heating/raw_bloom`) // Декрафт укрепленной крицы в жидкость event.recipes.tfc.heating(`tfc:refined_iron_bloom`, 1535) .resultFluid(Fluid.of('gtceu:iron', 144)) .id(`tfc:heating/refined_bloom`) // Гриль event.recipes.tfc.heating('tfc:wrought_iron_grill', 1535) .resultFluid(Fluid.of('gtceu:iron', 288)) .id(`tfc:heating/grill`) // Ванильная дверь декрафт event.recipes.tfc.heating('minecraft:iron_door', 1535) .resultFluid(Fluid.of('gtceu:iron', 144)) .id(`tfc:heating/iron_door`) // Ванильная дверь на наковальне event.recipes.tfc.anvil('minecraft:iron_door', '#forge:plates/wrought_iron', ['hit_last', 'draw_not_last', 'punch_not_last']) .tier(3) .id(`tfc:anvil/iron_door`) // Bloom -> Wrought Iron Ingot event.recipes.tfc.anvil('gtceu:wrought_iron_ingot', 'tfc:refined_iron_bloom', ['hit_last', 'hit_second_last', 'hit_third_last']).tier(2) .id('tfc:anvil/wrought_iron_from_bloom') // High Carbon Steel Ingot -> Steel Ingot event.recipes.tfc.anvil('gtceu:steel_ingot', 'tfc:metal/ingot/high_carbon_steel', ['hit_last', 'hit_second_last', 'hit_third_last']).tier(3) .id('tfc:anvil/steel_ingot') // High Carbon Black Steel Ingot -> Black Steel Ingot event.recipes.tfc.anvil('gtceu:black_steel_ingot', 'tfc:metal/ingot/high_carbon_black_steel', ['hit_last', 'hit_second_last', 'hit_third_last']).tier(4) .id('tfc:anvil/black_steel_ingot') // High Carbon Red Steel Ingot -> Red Steel Ingot event.recipes.tfc.anvil('gtceu:red_steel_ingot', 'tfc:metal/ingot/high_carbon_red_steel', ['hit_last', 'hit_second_last', 'hit_third_last']).tier(5) .id('tfc:anvil/red_steel_ingot') // High Carbon Blue Steel Ingot -> Blue Steel Ingot event.recipes.tfc.anvil('gtceu:blue_steel_ingot', 'tfc:metal/ingot/high_carbon_blue_steel', ['hit_last', 'hit_second_last', 'hit_third_last']).tier(5) .id('tfc:anvil/blue_steel_ingot') // Cast iron -> Raw Iron Bloom 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('tfg:pig_iron', 1), '#tfc:flux', Fluid.of('gtceu:iron', 1)) .id('tfc:blast_furnace/pig_iron') //#endregion //#region metal bars const METAL_BARS = [ "copper", "bronze", "black_bronze", "bismuth_bronze", "wrought_iron", "steel", "black_steel", "red_steel", "blue_steel" ]; METAL_BARS.forEach(metal => { generateCutterRecipe(event, `gtceu:${metal}_plate`, 9, `8x tfc:metal/bars/${metal}`, 100, 16, `${metal}_plate_to_bars`) }); //#endregion //#endregion //#region Земля // Loam + Silt -> Silty Loam (Миксер) event.recipes.gtceu.mixer('silty_loam_dirt') .itemInputs('tfc:dirt/loam', 'tfc:dirt/silt') .itemOutputs('tfc:dirt/silty_loam') .duration(1600) .EUt(12) // Silty Loam + Sticks -> Rooted Silty Loam (Миксер) event.recipes.gtceu.mixer('rooted_silty_loam_dirt') .itemInputs('tfc:dirt/silty_loam', '#tfc:can_be_lit_on_torch') .itemOutputs('tfc:rooted_dirt/silty_loam') .duration(1600) .EUt(12) // Loam + Sand -> Sandy Loam (Миксер) event.recipes.gtceu.mixer('sandy_loam_dirt') .itemInputs('tfc:dirt/loam', '#forge:sand') .itemOutputs('tfc:dirt/sandy_loam') .duration(1600) .EUt(12) // Loam + Silt -> Silty Loam (Create Миксер) event.recipes.gtceu.create_mixer('silty_loam_dirt') .itemInputs('tfc:dirt/loam', 'tfc:dirt/silt') .itemOutputs('tfc:dirt/silty_loam') .duration(1600) .EUt(12) .rpm(60) // Silty Loam + Sticks -> Rooted Silty Loam (Create Миксер) event.recipes.gtceu.create_mixer('rooted_silty_loam_dirt') .itemInputs('tfc:dirt/silty_loam', '#tfc:can_be_lit_on_torch') .itemOutputs('tfc:rooted_dirt/silty_loam') .duration(1600) .EUt(12) .rpm(60) // Loam + Sand -> Sandy Loam (Create Миксер) event.recipes.gtceu.create_mixer('sandy_loam_dirt') .itemInputs('tfc:dirt/loam', '#forge:sand') .itemOutputs('tfc:dirt/sandy_loam') .duration(1600) .EUt(12) .rpm(60) global.TFC_MUD_TYPES.forEach(mud => { event.smelting(`tfc:dirt/${mud}`, `tfc:mud/${mud}`) .id(`tfg:smelting/${mud}_mud_to_grass`) }) //#endregion //#region Грязь global.TFC_MUD_TYPES.forEach(mud => { // Dirt -> Mud event.recipes.gtceu.mixer(`${mud}_grass_to_mud`) .itemInputs(`tfc:dirt/${mud}`) .inputFluids(Fluid.of('minecraft:water', 100)) .itemOutputs(`tfc:mud/${mud}`) .duration(200) .EUt(16) }) //#endregion //#region Грязь кирпичи global.TFC_MUD_TYPES.forEach(mud => { // Влажный кирпич -> Кирпич event.smelting(`tfc:mud_brick/${mud}`, `tfc:drying_bricks/${mud}`) .id(`tfg:smelting/${mud}_drying_brick_to_brick`) event.custom({ type: "firmalife:drying", ingredient: { item: `tfc:drying_bricks/${mud}` }, result: { item: `tfc:mud_brick/${mud}` } }).id(`tfg:drying/${mud}_drying_brick_to_brick`) // Кирпич -> Блок кирпичей event.shaped(`tfc:mud_bricks/${mud}`, [ 'ABA', 'BAB', 'ABA' ], { A: `tfc:mud_brick/${mud}`, B: '#tfc:mortar' }).id(`tfc:crafting/soil/${mud}_mud_bricks`) event.recipes.gtceu.assembler(`mud_bricks_${mud}`) .itemInputs(`5x tfc:mud_brick/${mud}`) .inputFluids(Fluid.of('gtceu:concrete', 72)) .itemOutputs(`4x tfc:mud_bricks/${mud}`) .duration(50) .EUt(2) // Блок кирпичей -> Ступени event.remove({ id: `tfc:crafting/soil/${mud}_mud_bricks_stairs` }) event.stonecutting(`tfc:mud_bricks/${mud}_stairs`, `tfc:mud_bricks/${mud}`) .id(`tfc:stonecutting/soil/${mud}_mud_bricks_stairs`) generateCutterRecipe(event, `tfc:mud_bricks/${mud}`, 0, `tfc:mud_bricks/${mud}_stairs`, 100, 8, `${mud}_mud_bricks_to_stairs`) // Блок кирпичей -> Плиты event.remove({ id: `tfc:crafting/soil/${mud}_mud_bricks_slab` }) event.stonecutting(`2x tfc:mud_bricks/${mud}_slab`, `tfc:mud_bricks/${mud}`) .id(`tfc:stonecutting/soil/${mud}_mud_bricks_slab`) generateCutterRecipe(event, `tfc:mud_bricks/${mud}`, 1, `2x tfc:mud_bricks/${mud}_slab`, 100, 8, `${mud}_mud_bricks_to_slab`) // Блок кирпичей -> Стена event.remove({ id: `tfc:crafting/soil/${mud}_mud_bricks_wall` }) event.stonecutting(`tfc:mud_bricks/${mud}_wall`, `tfc:mud_bricks/${mud}`) .id(`tfc:stonecutting/soil/${mud}_mud_bricks_wall`) generateCutterRecipe(event, `tfc:mud_bricks/${mud}`, 2, `tfc:mud_bricks/${mud}_wall`, 100, 8, `${mud}_mud_bricks_to_wall`) }) //#endregion //#region Камень global.TFC_STONE_TYPES.forEach(stone => { let stoneMaterial = TFGHelpers.getMaterial(stone); let stoneDust = ChemicalHelper.get(TagPrefix.dust, stoneMaterial, 1) let smallStoneDust = ChemicalHelper.get(TagPrefix.dustSmall, stoneMaterial, 1) // Кирпич (предмет) event.recipes.gtceu.assembler(`tfg:tfc/${stone}_loose_to_brick`) .itemInputs(`tfc:rock/loose/${stone}`) .itemOutputs(`tfc:brick/${stone}`) .circuit(1) .duration(40) .EUt(8) //#region Сырой камень // Сырой камень -> Сырой камень event.recipes.gtceu.rock_breaker(`${stone}_raw`) .notConsumable(`tfc:rock/raw/${stone}`) .itemOutputs(`tfc:rock/raw/${stone}`) .duration(16) .EUt(7) // Сырой камень -> Булыжник event.recipes.gtceu.forge_hammer(`${stone}_raw_to_cobble`) .itemInputs(`tfc:rock/raw/${stone}`) .itemOutputs(`tfc:rock/cobble/${stone}`) .duration(10) .EUt(16) // Сырой камень -> Ступени event.remove({ id: `tfc:crafting/rock/${stone}_raw_stairs` }) generateCutterRecipe(event, `tfc:rock/raw/${stone}`, 0, [`tfc:rock/raw/${stone}_stairs`, stoneDust], 100, 8, `${stone}_raw_to_stairs`) // Сырой камень -> Плиты event.remove({ id: `tfc:crafting/rock/${stone}_raw_slab` }) generateCutterRecipe(event, `tfc:rock/raw/${stone}`, 1, [`2x tfc:rock/raw/${stone}_slab`, stoneDust], 100, 8, `${stone}_raw_to_slab`) // Сырой камень -> Стена event.remove({ id: `tfc:crafting/rock/${stone}_raw_wall` }) generateCutterRecipe(event, `tfc:rock/raw/${stone}`, 2, [`tfc:rock/raw/${stone}_wall`, stoneDust], 100, 8, `${stone}_raw_to_wall`) // ? -> Сырая нажимная пластина event.shaped(`tfc:rock/pressure_plate/${stone}`, [ 'ABA', 'CDC', 'AEA' ], { A: '#forge:screws/wrought_iron', B: '#tfc:hammers', C: `tfc:rock/raw/${stone}_slab`, D: '#forge:springs', E: '#forge:tools/screwdrivers' }).id(`tfc:crafting/rock/${stone}_pressure_plate`) event.recipes.gtceu.assembler(`${stone}_raw_pressure_plate`) .itemInputs('#forge:springs', `2x tfc:rock/raw/${stone}_slab`) .circuit(0) .itemOutputs(`2x tfc:rock/pressure_plate/${stone}`) .duration(50) .EUt(2) // ? -> Сырая кнопка event.remove({ id: `tfc:crafting/rock/${stone}_button` }) generateCutterRecipe(event, `tfc:rock/pressure_plate/${stone}`, 0, `6x tfc:rock/button/${stone}`, 50, 2, `${stone}_raw_button`) //#endregion //#region Булыжник // Булыжник -> Булыжник event.recipes.gtceu.rock_breaker(`${stone}_cobble`) .notConsumable(`tfc:rock/cobble/${stone}`) .itemOutputs(`tfc:rock/cobble/${stone}`) .duration(16) .EUt(7) // Булыжник -> Гравий event.recipes.gtceu.forge_hammer(`${stone}_cobble_to_gravel`) .itemInputs(`tfc:rock/cobble/${stone}`) .itemOutputs(`tfc:rock/gravel/${stone}`) .duration(10) .EUt(16) // Камни -> Булыжник event.shaped(`tfc:rock/cobble/${stone}`, [ 'ABA', 'BAB', 'ABA' ], { A: `tfc:rock/loose/${stone}`, B: '#tfc:mortar' }).id(`tfc:crafting/rock/${stone}_loose_rocks_to_cobble`) event.recipes.gtceu.assembler(`${stone}_loose_rocks_to_cobble`) .itemInputs(`4x tfc:rock/loose/${stone}`) .circuit(2) .inputFluids(Fluid.of('gtceu:concrete', 72)) .itemOutputs(`tfc:rock/cobble/${stone}`) .duration(50) .EUt(2) // Булыжник -> Ступени event.remove({ id: `tfc:crafting/rock/${stone}_cobble_stairs` }) generateCutterRecipe(event, `tfc:rock/cobble/${stone}`, 0, [`tfc:rock/cobble/${stone}_stairs`, stoneDust], 100, 8, `${stone}_cobble_to_stairs`) // Булыжник -> Плиты event.remove({ id: `tfc:crafting/rock/${stone}_cobble_slab` }) generateCutterRecipe(event, `tfc:rock/cobble/${stone}`, 1, [`2x tfc:rock/cobble/${stone}_slab`, stoneDust], 100, 8, `${stone}_cobble_to_slab`) // Булыжник -> Стена event.remove({ id: `tfc:crafting/rock/${stone}_cobble_wall` }) generateCutterRecipe(event, `tfc:rock/cobble/${stone}`, 2, [`tfc:rock/cobble/${stone}_wall`, stoneDust], 100, 8, `${stone}_cobble_to_wall`) //#endregion //#region Гладкий // Сырой камень -> Гладкий event.recipes.gtceu.laser_engraver(`raw_${stone}_to_smooth`) .itemInputs(`tfc:rock/raw/${stone}`) .notConsumable('gtceu:glass_lens') .itemOutputs(`tfc:rock/smooth/${stone}`) .duration(32) .EUt(100) // Укрепленный сырой камень -> Гладкий event.recipes.gtceu.laser_engraver(`hardened_${stone}_to_smooth`) .itemInputs(`tfc:rock/hardened/${stone}`) .notConsumable('gtceu:glass_lens') .itemOutputs(`tfc:rock/smooth/${stone}`) .duration(32) .EUt(100) // Булыжник -> Ступени event.remove({ id: `tfc:crafting/rock/${stone}_smooth_stairs` }) generateCutterRecipe(event, `tfc:rock/smooth/${stone}`, 0, [`tfc:rock/smooth/${stone}_stairs`, stoneDust], 100, 8, `${stone}_smooth_to_stairs`) // Булыжник -> Плиты event.remove({ id: `tfc:crafting/rock/${stone}_smooth_slab` }) generateCutterRecipe(event, `tfc:rock/smooth/${stone}`, 1, [`2x tfc:rock/smooth/${stone}_slab`, stoneDust], 100, 8, `${stone}_smooth_to_slab`) // Булыжник -> Стена event.remove({ id: `tfc:crafting/rock/${stone}_smooth_wall` }) generateCutterRecipe(event, `tfc:rock/smooth/${stone}`, 2, [`tfc:rock/smooth/${stone}_wall`, stoneDust], 100, 8, `${stone}_smooth_to_wall`) //#endregion //#region Кирпич // Кирпич -> Блок кирпичей event.recipes.gtceu.assembler(`bricks_${stone}`) .itemInputs(`5x tfc:brick/${stone}`) .circuit(0) .inputFluids(Fluid.of('gtceu:concrete', 72)) .itemOutputs(`4x tfc:rock/bricks/${stone}`) .duration(50) .EUt(2) // Блок кирпичей -> Ступени event.remove({ id: `tfc:crafting/rock/${stone}_bricks_stairs` }) generateCutterRecipe(event, `tfc:rock/bricks/${stone}`, 0, [`tfc:rock/bricks/${stone}_stairs`, stoneDust], 100, 8, `${stone}_bricks_to_stairs`) // Блок кирпичей -> Плиты event.remove({ id: `tfc:crafting/rock/${stone}_bricks_slab` }) generateCutterRecipe(event, `tfc:rock/bricks/${stone}`, 1, [`2x tfc:rock/bricks/${stone}_slab`, stoneDust], 100, 8, `${stone}_bricks_to_slab`) // Блок кирпичей -> Стена event.remove({ id: `tfc:crafting/rock/${stone}_bricks_wall` }) generateCutterRecipe(event, `tfc:rock/bricks/${stone}`, 2, [`tfc:rock/bricks/${stone}_wall`, stoneDust], 100, 8, `${stone}_bricks_to_wall`) //#endregion //#region Потрескавшийся кирпич // Кирпич -> Потрескавшийся кирпич event.recipes.gtceu.forge_hammer(`cracked_bricks_${stone}`) .itemInputs(`tfc:rock/bricks/${stone}`) .itemOutputs(`tfc:rock/cracked_bricks/${stone}`) .duration(25) .EUt(8) // Потрескавшийся кирпич -> Ступени event.remove({ id: `tfc:crafting/rock/${stone}_cracked_bricks_stairs` }) generateCutterRecipe(event, `tfc:rock/cracked_bricks/${stone}`, 0, [`tfc:rock/cracked_bricks/${stone}_stairs`, stoneDust], 100, 8, `${stone}_cracked_bricks_to_stairs`) // Потрескавшийся кирпич -> Плиты event.remove({ id: `tfc:crafting/rock/${stone}_cracked_bricks_slab` }) generateCutterRecipe(event, `tfc:rock/cracked_bricks/${stone}`, 1, [`2x tfc:rock/cracked_bricks/${stone}_slab`, stoneDust], 100, 8, `${stone}_cracked_bricks_to_slab`) // Потрескавшийся кирпич -> Стена event.remove({ id: `tfc:crafting/rock/${stone}_cracked_bricks_wall` }) generateCutterRecipe(event, `tfc:rock/cracked_bricks/${stone}`, 2, [`tfc:rock/cracked_bricks/${stone}_wall`, stoneDust], 100, 8, `${stone}_cracked_bricks_to_wall`) //#endregion //#region Замшелый булыжник // Булыжник -> Замшелый булыжник event.shaped(`tfc:rock/mossy_cobble/${stone}`, [ 'ABA', 'BAB', 'ABA' ], { A: `tfc:rock/mossy_loose/${stone}`, B: '#tfc:mortar' }).id(`tfc:crafting/rock/${stone}_mossy_loose_rocks_to_cobble`) event.recipes.gtceu.assembler(`${stone}_mossy_loose_rocks_to_mossy_cobble`) .itemInputs(`4x tfc:rock/mossy_loose/${stone}`) .circuit(0) .inputFluids(Fluid.of('gtceu:concrete', 72)) .itemOutputs(`tfc:rock/mossy_cobble/${stone}`) .duration(50) .EUt(2) event.recipes.gtceu.assembler(`${stone}_cobble_rocks_to_mossy_cobble`) .itemInputs(`tfc:rock/cobble/${stone}`, '#tfc:compost_greens_low') .circuit(0) .inputFluids(Fluid.of('minecraft:water', 144)) .itemOutputs(`tfc:rock/mossy_cobble/${stone}`) .duration(50) .EUt(2) // Замшелый булыжник -> Ступени event.remove({ id: `tfc:crafting/rock/${stone}_mossy_cobble_stairs` }) generateCutterRecipe(event, `tfc:rock/mossy_cobble/${stone}`, 0, [`tfc:rock/mossy_cobble/${stone}_stairs`, stoneDust], 100, 8, `${stone}_mossy_cobble_to_stairs`) //Замшелый булыжник -> Плиты event.remove({ id: `tfc:crafting/rock/${stone}_mossy_cobble_slab` }) generateCutterRecipe(event, `tfc:rock/mossy_cobble/${stone}`, 1, [`2x tfc:rock/mossy_cobble/${stone}_slab`, stoneDust], 100, 8, `${stone}_mossy_cobble_to_slab`) // Замшелый булыжник -> Стена event.remove({ id: `tfc:crafting/rock/${stone}_mossy_cobble_wall` }) generateCutterRecipe(event, `tfc:rock/mossy_cobble/${stone}`, 2, [`tfc:rock/mossy_cobble/${stone}_wall`, stoneDust], 100, 8, `${stone}_mossy_cobble_to_wall`) //#endregion //#region Замшелый кирпич // Блок кирпичей -> Замшелый кирпич event.recipes.gtceu.assembler(`mossy_bricks_${stone}`) .itemInputs(`tfc:rock/bricks/${stone}`, '#tfc:compost_greens_low') .circuit(0) .inputFluids(Fluid.of('minecraft:water', 144)) .itemOutputs(`tfc:rock/mossy_bricks/${stone}`) .duration(50) .EUt(2) // Замшелый булыжник -> Ступени event.remove({ id: `tfc:crafting/rock/${stone}_mossy_bricks_stairs` }) generateCutterRecipe(event, `tfc:rock/mossy_bricks/${stone}`, 0, [`tfc:rock/mossy_bricks/${stone}_stairs`, stoneDust], 100, 8, `${stone}_mossy_bricks_to_stairs`) //Замшелый булыжник -> Плиты event.remove({ id: `tfc:crafting/rock/${stone}_mossy_bricks_slab` }) generateCutterRecipe(event, `tfc:rock/mossy_bricks/${stone}`, 1, [`2x tfc:rock/mossy_bricks/${stone}_slab`, stoneDust], 100, 8, `${stone}_mossy_bricks_to_slab`) // Замшелый булыжник -> Стена event.remove({ id: `tfc:crafting/rock/${stone}_mossy_bricks_wall` }) generateCutterRecipe(event, `tfc:rock/mossy_bricks/${stone}`, 2, [`tfc:rock/mossy_bricks/${stone}_wall`, stoneDust], 100, 8, `${stone}_mossy_bricks_to_wall`) //#endregion //#region Укрепленный камень event.recipes.gtceu.assembler(`hardened_${stone}`) .itemInputs(`5x tfc:rock/raw/${stone}`) .circuit(0) .inputFluids(Fluid.of('gtceu:concrete', 72)) .itemOutputs(`2x tfc:rock/hardened/${stone}`) .duration(250) .EUt(8) //#endregion //#region Акведук event.recipes.gtceu.assembler(`aqueduct_${stone}`) .itemInputs(`3x tfc:brick/${stone}`) .circuit(1) .inputFluids(Fluid.of('gtceu:concrete', 16)) .itemOutputs(`tfc:rock/aqueduct/${stone}`) .duration(50) .EUt(2) //#endregion //#region Резной кирпич // Блок кирпичей -> Резной кирпич event.recipes.gtceu.laser_engraver(`chiseled_${stone}`) .itemInputs(`tfc:rock/bricks/${stone}`) .notConsumable('gtceu:glass_lens') .itemOutputs(`tfc:rock/chiseled/${stone}`) .duration(32) .EUt(100) //#endregion //#region Декрафт блоков камня в пыль //#region Целый блок // Сырой event.recipes.gtceu.macerator(`raw_${stone}_to_dust`) .itemInputs(`tfc:rock/raw/${stone}`) .itemOutputs(stoneDust) .duration(4) .EUt(75) // Булыжник event.recipes.gtceu.macerator(`cobble_${stone}_to_dust`) .itemInputs(`tfc:rock/cobble/${stone}`) .itemOutputs(stoneDust) .duration(4) .EUt(75) // Гладкий event.recipes.gtceu.macerator(`smooth_${stone}_to_dust`) .itemInputs(`tfc:rock/smooth/${stone}`) .itemOutputs(stoneDust) .duration(4) .EUt(75) // Кирпичи event.recipes.gtceu.macerator(`bricks_${stone}_to_dust`) .itemInputs(`tfc:rock/bricks/${stone}`) .itemOutputs(stoneDust) .duration(4) .EUt(75) // Потрескавшиеся кирпичи event.recipes.gtceu.macerator(`cracked_bricks_${stone}_to_dust`) .itemInputs(`tfc:rock/cracked_bricks/${stone}`) .itemOutputs(stoneDust) .duration(4) .EUt(75) // Замшелый булыжник event.recipes.gtceu.macerator(`mossy_cobble_${stone}_to_dust`) .itemInputs(`tfc:rock/mossy_cobble/${stone}`) .itemOutputs(stoneDust) .duration(4) .EUt(75) // Замшелый кирпич event.recipes.gtceu.macerator(`mossy_bricks_${stone}_to_dust`) .itemInputs(`tfc:rock/mossy_bricks/${stone}`) .itemOutputs(stoneDust) .duration(4) .EUt(75) //#endregion //#region Ступень // Сырой event.recipes.gtceu.macerator(`raw_stairs_${stone}_to_dust`) .itemInputs(`tfc:rock/raw/${stone}_stairs`) .itemOutputs(smallStoneDust.withCount(6)) .duration(4) .EUt(75) // Булыжник event.recipes.gtceu.macerator(`cobble_stairs_${stone}_to_dust`) .itemInputs(`tfc:rock/cobble/${stone}_stairs`) .itemOutputs(smallStoneDust.withCount(6)) .duration(4) .EUt(75) // Гладкий event.recipes.gtceu.macerator(`smooth_stairs_${stone}_to_dust`) .itemInputs(`tfc:rock/smooth/${stone}_stairs`) .itemOutputs(smallStoneDust.withCount(6)) .duration(4) .EUt(75) // Кирпичи event.recipes.gtceu.macerator(`bricks_stairs_${stone}_to_dust`) .itemInputs(`tfc:rock/bricks/${stone}_stairs`) .itemOutputs(smallStoneDust.withCount(6)) .duration(4) .EUt(75) // Потрескавшиеся кирпичи event.recipes.gtceu.macerator(`cracked_bricks_stairs_${stone}_to_dust`) .itemInputs(`tfc:rock/cracked_bricks/${stone}_stairs`) .itemOutputs(smallStoneDust.withCount(6)) .duration(4) .EUt(75) // Замшелый булыжник event.recipes.gtceu.macerator(`mossy_cobble_stairs_${stone}_to_dust`) .itemInputs(`tfc:rock/mossy_cobble/${stone}_stairs`) .itemOutputs(smallStoneDust.withCount(6)) .duration(4) .EUt(75) // Замшелый кирпич event.recipes.gtceu.macerator(`mossy_bricks_stairs_${stone}_to_dust`) .itemInputs(`tfc:rock/mossy_bricks/${stone}_stairs`) .itemOutputs(smallStoneDust.withCount(6)) .duration(4) .EUt(75) //#endregion //#region Плита // Сырой event.recipes.gtceu.macerator(`raw_slab_${stone}_to_dust`) .itemInputs(`tfc:rock/raw/${stone}_slab`) .itemOutputs(smallStoneDust.withCount(2)) .duration(4) .EUt(75) // Булыжник event.recipes.gtceu.macerator(`cobble_slab_${stone}_to_dust`) .itemInputs(`tfc:rock/cobble/${stone}_slab`) .itemOutputs(smallStoneDust.withCount(2)) .duration(4) .EUt(75) // Гладкий event.recipes.gtceu.macerator(`smooth_slab_${stone}_to_dust`) .itemInputs(`tfc:rock/smooth/${stone}_slab`) .itemOutputs(smallStoneDust.withCount(2)) .duration(4) .EUt(75) // Кирпичи event.recipes.gtceu.macerator(`bricks_slab_${stone}_to_dust`) .itemInputs(`tfc:rock/bricks/${stone}_slab`) .itemOutputs(smallStoneDust.withCount(2)) .duration(4) .EUt(75) // Потрескавшиеся кирпичи event.recipes.gtceu.macerator(`cracked_bricks_slab_${stone}_to_dust`) .itemInputs(`tfc:rock/cracked_bricks/${stone}_slab`) .itemOutputs(smallStoneDust.withCount(2)) .duration(4) .EUt(75) // Замшелый булыжник event.recipes.gtceu.macerator(`mossy_cobble_slab_${stone}_to_dust`) .itemInputs(`tfc:rock/mossy_cobble/${stone}_slab`) .itemOutputs(smallStoneDust.withCount(2)) .duration(4) .EUt(75) // Замшелый кирпич event.recipes.gtceu.macerator(`mossy_bricks_slab_${stone}_to_dust`) .itemInputs(`tfc:rock/mossy_bricks/${stone}_slab`) .itemOutputs(smallStoneDust.withCount(2)) .duration(4) .EUt(75) //#endregion //#region Стена // Сырой event.recipes.gtceu.macerator(`raw_wall_${stone}_to_dust`) .itemInputs(`tfc:rock/raw/${stone}_wall`) .itemOutputs(stoneDust) .duration(4) .EUt(75) // Булыжник event.recipes.gtceu.macerator(`cobble_wall_${stone}_to_dust`) .itemInputs(`tfc:rock/cobble/${stone}_wall`) .itemOutputs(stoneDust) .duration(4) .EUt(75) // Гладкий event.recipes.gtceu.macerator(`smooth_wall_${stone}_to_dust`) .itemInputs(`tfc:rock/smooth/${stone}_wall`) .itemOutputs(stoneDust) .duration(4) .EUt(75) // Кирпичи event.recipes.gtceu.macerator(`bricks_wall_${stone}_to_dust`) .itemInputs(`tfc:rock/bricks/${stone}_wall`) .itemOutputs(stoneDust) .duration(4) .EUt(75) // Потрескавшиеся кирпичи event.recipes.gtceu.macerator(`cracked_bricks_wall_${stone}_to_dust`) .itemInputs(`tfc:rock/cracked_bricks/${stone}_wall`) .itemOutputs(stoneDust) .duration(4) .EUt(75) // Замшелый булыжник event.recipes.gtceu.macerator(`mossy_cobble_wall_${stone}_to_dust`) .itemInputs(`tfc:rock/mossy_cobble/${stone}_wall`) .itemOutputs(stoneDust) .duration(4) .EUt(75) // Замшелый кирпич event.recipes.gtceu.macerator(`mossy_bricks_wall_${stone}_to_dust`) .itemInputs(`tfc:rock/mossy_bricks/${stone}_wall`) .itemOutputs(stoneDust) .duration(4) .EUt(75) //#endregion // Резной кирпич event.recipes.gtceu.macerator(`chiseled_${stone}_to_dust`) .itemInputs(`tfc:rock/chiseled/${stone}`) .itemOutputs(stoneDust) .duration(4) .EUt(75) // Укрепленный event.recipes.gtceu.macerator(`hardened_${stone}_to_dust`) .itemInputs(`tfc:rock/hardened/${stone}`) .itemOutputs(stoneDust.withCount(2)) .duration(8) .EUt(150) //#endregion }) //#endregion //#region Песок // Песок душ -> Желтый песок // TODO: Включить после добавления ада /* event.recipes.gtceu.centrifuge('soul_sand_separation') .itemInputs('minecraft:soul_sand') .chancedOutput('tfc:sand/yellow', 9000, 130) .chancedOutput('gtceu:small_saltpeter_dust', 8000, 480) .chancedOutput('gtceu:tiny_coal_dust', 2000, 340) .outputFluids(Fluid.of('gtceu:oil', 80)) .duration(200) .EUt(80)*/ // Нефтеносный -> Желтый песок event.recipes.gtceu.centrifuge('oilsands_ore_separation') .itemInputs('#forge:ores/oilsands') .chancedOutput('tfc:sand/yellow', 5000, 5000) .outputFluids(Fluid.of('gtceu:oil', 2000)) .duration(200) .EUt(30) // Пыль нефтеносного песка -> Желтый песок event.recipes.gtceu.centrifuge('oilsands_dust_separation') .itemInputs('gtceu:oilsands_dust') .chancedOutput('tfc:sand/yellow', 5000, 5000) .outputFluids(Fluid.of('gtceu:oil', 2000)) .duration(200) .EUt(30) // Земля -> Желтый песок event.recipes.gtceu.centrifuge('dirt_separation') .itemInputs('#tfc:dirt') .chancedOutput('gtceu:plant_ball', 1250, 700) .chancedOutput('tfc:sand/yellow', 5000, 1200) .chancedOutput('gtceu:tiny_clay_dust', 4000, 900) .duration(250) .EUt(30) // Рецепты где нужно итерироваться по всем цветам global.SAND_COLORS.forEach(sandColor => { // Песчанник -> Песок event.recipes.gtceu.forge_hammer(`raw_${sandColor}_sandstone_to_sand`) .itemInputs(`tfc:raw_sandstone/${sandColor}`) .itemOutputs(`tfc:sand/${sandColor}`) .duration(400) .EUt(2) // Гладкий песчанник -> Песок event.recipes.gtceu.forge_hammer(`smooth_${sandColor}_sandstone_to_sand`) .itemInputs(`tfc:smooth_sandstone/${sandColor}`) .itemOutputs(`tfc:sand/${sandColor}`) .duration(400) .EUt(2) // Обрезанный песчанник -> Песок event.recipes.gtceu.forge_hammer(`cut_${sandColor}_sandstone_to_sand`) .itemInputs(`tfc:cut_sandstone/${sandColor}`) .itemOutputs(`tfc:sand/${sandColor}`) .duration(400) .EUt(2) // Песок -> Песчанник event.recipes.gtceu.compressor(`sand_${sandColor}_to_sandstone`) .itemInputs(`4x tfc:sand/${sandColor}`) .itemOutputs(`tfc:raw_sandstone/${sandColor}`) .duration(800) .EUt(2) // Песчанник -> Гладкий песчанник event.stonecutting(`tfc:smooth_sandstone/${sandColor}`, `tfc:raw_sandstone/${sandColor}`) .id(`tfg:stonecutting/raw_sandstone_${sandColor}_to_smooth_sandstone`) generateCutterRecipe(event, `tfc:raw_sandstone/${sandColor}`, 3, `tfc:smooth_sandstone/${sandColor}`, 100, 8, `raw_sandstone_${sandColor}_to_smooth_sandstone`) // Песчанник -> Обрезанный песчанник event.stonecutting(`tfc:cut_sandstone/${sandColor}`, `tfc:raw_sandstone/${sandColor}`) .id(`raw_sandstone_${sandColor}_to_cut_sandstone`) generateCutterRecipe(event, `tfc:raw_sandstone/${sandColor}`, 4, `tfc:cut_sandstone/${sandColor}`, 100, 8, `cut_sandstone_${sandColor}_to_smooth_sandstone`) // Песчанник -> Ступень event.remove({ id: `tfc:crafting/sandstone/${sandColor}_raw_stairs` }) event.stonecutting(`tfc:raw_sandstone/${sandColor}_stairs`, `tfc:raw_sandstone/${sandColor}`) .id(`tfg:stonecutting/${sandColor}_sandstone_to_stairs`) generateCutterRecipe(event, `tfc:raw_sandstone/${sandColor}`, 0, `tfc:raw_sandstone/${sandColor}_stairs`, 100, 8, `${sandColor}_sandstone_to_stairs`) // Песчанник -> Плита event.remove({ id: `tfc:crafting/sandstone/${sandColor}_raw_slab` }) event.stonecutting(`2x tfc:raw_sandstone/${sandColor}_slab`, `tfc:raw_sandstone/${sandColor}`) .id(`tfg:stonecutting/${sandColor}_sandstone_to_slabs`) generateCutterRecipe(event, `tfc:raw_sandstone/${sandColor}`, 1, `2x tfc:raw_sandstone/${sandColor}_slab`, 100, 8, `${sandColor}_sandstone_to_slab`) // Песчанник -> Стена event.remove({ id: `tfc:crafting/sandstone/${sandColor}_raw_wall` }) event.stonecutting(`tfc:raw_sandstone/${sandColor}_wall`, `tfc:raw_sandstone/${sandColor}`) .id(`tfg:stonecutting/${sandColor}_sandstone_to_wall`) generateCutterRecipe(event, `tfc:raw_sandstone/${sandColor}`, 2, `tfc:raw_sandstone/${sandColor}_wall`, 100, 8, `${sandColor}_sandstone_to_wall`) // Гладкий песчанник -> Ступень event.remove({ id: `tfc:crafting/sandstone/${sandColor}_smooth_stairs` }) event.stonecutting(`tfc:smooth_sandstone/${sandColor}_stairs`, `tfc:smooth_sandstone/${sandColor}`) .id(`tfg:stonecutting/${sandColor}_smooth_sandstone_to_stairs`) generateCutterRecipe(event, `tfc:smooth_sandstone/${sandColor}`, 0, `tfc:smooth_sandstone/${sandColor}_stairs`, 100, 8, `${sandColor}_smooth_sandstone_to_stairs`) // Гладкий песчанник -> Плита event.remove({ id: `tfc:crafting/sandstone/${sandColor}_smooth_slab` }) event.stonecutting(`2x tfc:smooth_sandstone/${sandColor}_slab`, `tfc:smooth_sandstone/${sandColor}`) .id(`tfg:stonecutting/${sandColor}_smooth_sandstone_to_slab`) generateCutterRecipe(event, `tfc:smooth_sandstone/${sandColor}`, 1, `2x tfc:smooth_sandstone/${sandColor}_slab`, 100, 8, `${sandColor}_smooth_sandstone_to_slab`) // Гладкий песчанник -> Стена event.remove({ id: `tfc:crafting/sandstone/${sandColor}_smooth_wall` }) event.stonecutting(`tfc:smooth_sandstone/${sandColor}_wall`, `tfc:smooth_sandstone/${sandColor}`) .id(`tfg:stonecutting/${sandColor}_smooth_sandstone_to_wall`) generateCutterRecipe(event, `tfc:smooth_sandstone/${sandColor}`, 2, `tfc:smooth_sandstone/${sandColor}_wall`, 100, 8, `${sandColor}_smooth_sandstone_to_wall`) // Обрезанный песчанник -> Ступень event.remove({ id: `tfc:crafting/sandstone/${sandColor}_cut_stairs` }) event.stonecutting(`tfc:cut_sandstone/${sandColor}_stairs`, `tfc:cut_sandstone/${sandColor}`) .id(`tfg:stonecutting/${sandColor}_cut_sandstone_to_stairs`) generateCutterRecipe(event, `tfc:cut_sandstone/${sandColor}`, 0, `tfc:cut_sandstone/${sandColor}_stairs`, 100, 8, `${sandColor}_cut_sandstone_to_stairs`) // Обрезанный песчанник -> Плита event.remove({ id: `tfc:crafting/sandstone/${sandColor}_cut_slab` }) event.stonecutting(`2x tfc:cut_sandstone/${sandColor}_slab`, `tfc:cut_sandstone/${sandColor}`) .id(`tfg:stonecutting/${sandColor}_cut_sandstone_to_slab`) generateCutterRecipe(event, `tfc:cut_sandstone/${sandColor}`, 1, `2x tfc:cut_sandstone/${sandColor}_slab`, 100, 8, `${sandColor}_cut_sandstone_to_slab`) // Обрезанный песчанник -> Стена event.remove({ id: `tfc:crafting/sandstone/${sandColor}_cut_wall` }) event.stonecutting(`tfc:cut_sandstone/${sandColor}_wall`, `tfc:cut_sandstone/${sandColor}`) .id(`tfg:stonecutting/${sandColor}_cut_sandstone_to_wall`) generateCutterRecipe(event, `tfc:cut_sandstone/${sandColor}`, 2, `tfc:cut_sandstone/${sandColor}_wall`, 100, 8, `${sandColor}_cut_sandstone_to_wall`) }) // Коричневый гравий -> Песок event.recipes.gtceu.forge_hammer('brown_gravel_to_sand') .itemInputs('#tfc:brown_gravel') .itemOutputs('tfc:sand/brown') .duration(400) .EUt(2) // Белый гравий -> Песок event.recipes.gtceu.forge_hammer('white_gravel_to_sand') .itemInputs('#tfc:white_gravel') .itemOutputs('tfc:sand/white') .duration(400) .EUt(2) // Черный гравий -> Песок event.recipes.gtceu.forge_hammer('black_gravel_to_sand') .itemInputs('#tfc:black_gravel') .itemOutputs('tfc:sand/black') .duration(400) .EUt(2) // Красный гравий -> Песок event.recipes.gtceu.forge_hammer('red_gravel_to_sand') .itemInputs('#tfc:red_gravel') .itemOutputs('tfc:sand/red') .duration(400) .EUt(2) // Желтый гравий -> Песок event.recipes.gtceu.forge_hammer('yellow_gravel_to_sand') .itemInputs('#tfc:yellow_gravel') .itemOutputs('tfc:sand/yellow') .duration(400) .EUt(2) // Зеленый гравий -> Песок event.recipes.gtceu.forge_hammer('green_gravel_to_sand') .itemInputs('#tfc:green_gravel') .itemOutputs('tfc:sand/green') .duration(400) .EUt(2) // Розовый гравий -> Песок event.recipes.gtceu.forge_hammer('pink_gravel_to_sand') .itemInputs('#tfc:pink_gravel') .itemOutputs('tfc:sand/pink') .duration(400) .EUt(2) //#endregion //#region Дерево // Какие то рецепты дерева global.TFC_WOOD_TYPES.forEach(wood => { event.remove({ id: `tfc:crafting/wood/${wood}_axle` }) event.remove({ id: `tfc:crafting/wood/${wood}_bladed_axle` }) event.remove({ id: `tfc:crafting/wood/${wood}_encased_axle` }) event.remove({ id: `tfc:crafting/wood/${wood}_clutch` }) event.remove({ id: `tfc:crafting/wood/${wood}_gear_box` }) event.remove({ id: `tfc:crafting/wood/${wood}_water_wheel` }) // Бревна -> Пиломатериалы generateCutterRecipe(event, `#tfc:${wood}_logs`, null, `16x tfc:wood/lumber/${wood}`, 400, 10, `${wood}_lumber_from_log`) // Доски -> Пиломатериалы generateCutterRecipe(event, `tfc:wood/planks/${wood}`, null, `4x tfc:wood/lumber/${wood}`, 400, 10, `${wood}_lumber_from_planks`) // Ступень -> Пиломатериалы generateCutterRecipe(event, `tfc:wood/planks/${wood}_stairs`, null, `3x tfc:wood/lumber/${wood}`, 400, 10, `${wood}_lumber_from_stairs`) // Плита -> Пиломатериалы generateCutterRecipe(event, `tfc:wood/planks/${wood}_slab`, null, `2x tfc:wood/lumber/${wood}`, 400, 10, `${wood}_lumber_from_slab`) // ? -> Деревянная нажимная пластина event.shaped(`tfc:wood/planks/${wood}_pressure_plate`, [ 'ABA', 'CDC', 'AEA' ], { A: '#forge:screws/wood', B: '#tfc:hammers', C: `tfc:wood/planks/${wood}_slab`, D: '#forge:springs', E: '#forge:tools/screwdrivers' }).id(`tfc:crafting/wood/${wood}_pressure_plate`) event.recipes.gtceu.assembler(`${wood}_pressure_plate`) .itemInputs('#forge:springs', `2x tfc:wood/planks/${wood}_slab`) .circuit(0) .itemOutputs(`2x tfc:wood/planks/${wood}_pressure_plate`) .duration(50) .EUt(2) // ? -> Деревянная кнопка event.remove({ id: `tfc:crafting/wood/${wood}_button` }) generateCutterRecipe(event, `tfc:wood/planks/${wood}_pressure_plate`, null, `6x tfc:wood/planks/${wood}_button`, 50, 2, `${wood}_button`) }) //#endregion //#region Рецепты порошков // Удаление рецептов event.remove({ id: 'tfc:quern/amethyst' }) event.remove({ id: 'tfc:quern/amethyst_cut' }) event.remove({ id: 'tfc:quern/blaze_rod' }) event.remove({ id: 'tfc:quern/borax' }) event.remove({ id: 'tfc:quern/charcoal' }) event.remove({ id: 'tfc:quern/cinnabar' }) event.remove({ id: 'tfc:quern/cryolite' }) event.remove({ id: 'tfc:quern/diamond' }) event.remove({ id: 'tfc:quern/diamond_cut' }) event.remove({ id: 'tfc:quern/emerald' }) event.remove({ id: 'tfc:quern/emerald_cut' }) event.remove({ id: 'tfc:quern/graphite' }) event.remove({ id: 'tfc:quern/lapis_lazuli' }) event.remove({ id: 'tfc:quern/lapis_lazuli_cut' }) event.remove({ id: 'tfc:quern/normal_bismuthinite' }) event.remove({ id: 'tfc:quern/normal_cassiterite' }) event.remove({ id: 'tfc:quern/normal_garnierite' }) event.remove({ id: 'tfc:quern/normal_hematite' }) event.remove({ id: 'tfc:quern/normal_limonite' }) event.remove({ id: 'tfc:quern/normal_magnetite' }) event.remove({ id: 'tfc:quern/normal_malachite' }) event.remove({ id: 'tfc:quern/normal_native_copper' }) event.remove({ id: 'tfc:quern/normal_native_gold' }) event.remove({ id: 'tfc:quern/normal_native_silver' }) event.remove({ id: 'tfc:quern/normal_sphalerite' }) event.remove({ id: 'tfc:quern/normal_tetrahedrite' }) event.remove({ id: 'tfc:quern/opal' }) event.remove({ id: 'tfc:quern/opal_cut' }) event.remove({ id: 'tfc:quern/poor_bismuthinite' }) event.remove({ id: 'tfc:quern/poor_cassiterite' }) event.remove({ id: 'tfc:quern/poor_garnierite' }) event.remove({ id: 'tfc:quern/poor_hematite' }) event.remove({ id: 'tfc:quern/poor_limonite' }) event.remove({ id: 'tfc:quern/poor_magnetite' }) event.remove({ id: 'tfc:quern/poor_malachite' }) event.remove({ id: 'tfc:quern/poor_native_copper' }) event.remove({ id: 'tfc:quern/poor_native_gold' }) event.remove({ id: 'tfc:quern/poor_native_silver' }) event.remove({ id: 'tfc:quern/poor_sphalerite' }) event.remove({ id: 'tfc:quern/poor_tetrahedrite' }) event.remove({ id: 'tfc:quern/pyrite' }) event.remove({ id: 'tfc:quern/pyrite_cut' }) event.remove({ id: 'tfc:quern/raw_limestone' }) event.remove({ id: 'tfc:quern/rich_bismuthinite' }) event.remove({ id: 'tfc:quern/rich_cassiterite' }) event.remove({ id: 'tfc:quern/rich_garnierite' }) event.remove({ id: 'tfc:quern/rich_hematite' }) event.remove({ id: 'tfc:quern/rich_limonite' }) event.remove({ id: 'tfc:quern/rich_magnetite' }) event.remove({ id: 'tfc:quern/rich_malachite' }) event.remove({ id: 'tfc:quern/rich_native_copper' }) event.remove({ id: 'tfc:quern/rich_native_gold' }) event.remove({ id: 'tfc:quern/rich_native_silver' }) event.remove({ id: 'tfc:quern/rich_sphalerite' }) event.remove({ id: 'tfc:quern/rich_tetrahedrite' }) event.remove({ id: 'tfc:quern/ruby' }) event.remove({ id: 'tfc:quern/ruby_cut' }) event.remove({ id: 'tfc:quern/salt' }) event.remove({ id: 'tfc:quern/saltpeter' }) event.remove({ id: 'tfc:quern/sapphire' }) event.remove({ id: 'tfc:quern/sapphire_cut' }) event.remove({ id: 'tfc:quern/sulfur' }) event.remove({ id: 'tfc:quern/sylvite' }) event.remove({ id: 'tfc:quern/topaz' }) event.remove({ id: 'tfc:quern/topaz_cut' }) // Добавление рецептов global.TFC_QUERN_POWDER_RECIPE_COMPONENTS.forEach(element => { event.recipes.gtceu.macerator(`tfg:${element.name}`) .itemInputs(element.input) .itemOutputs(element.output) .duration(60) .EUt(2) 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_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 => { event.recipes.gtceu.macerator(`tfg:${element.name}`) .itemInputs(element.input) .itemOutputs(element.output) .duration(200) .EUt(16) event.recipes.createMilling(element.output, element.input) .id(`tfg:milling/${element.name}`) }) //#endregion //#region Рецепты обжарки мяса global.TFC_FURNACE_MEAT_RECIPE_COMPONENTS.forEach(element => { event.smelting(element.output, element.input) .id(`tfg:smelting/${element.name}`) }) //#endregion //#region Рецепты обжарки форм global.TFC_FURNACE_MOLD_RECIPE_COMPONENTS.forEach(element => { event.smelting(element.output, element.input) .id(`tfg:smelting/${element.name}`) }) global.MINECRAFT_DYE_NAMES.forEach(dye => { event.smelting(`tfc:ceramic/${dye}_glazed_vessel`, `tfc:ceramic/${dye}_unfired_vessel`) .id(`tfg:smelting/${dye}_glazed_vessel`) event.smelting(`tfc:ceramic/large_vessel/${dye}`, `tfc:ceramic/unfired_large_vessel/${dye}`) .id(`tfg:smelting/${dye}_large_vessel`) }) //#endregion //#region Покраска малых и больших сосудов //#region Обычный сосуд event.recipes.gtceu.chemical_bath(`unfired_vessel_decolor`) .itemInputs('#tfg:colorized_unfired_vessels') .inputFluids(Fluid.of(`gtceu:chlorine`, 36)) .itemOutputs('tfc:ceramic/unfired_vessel') .duration(300) .EUt(4) event.recipes.gtceu.chemical_bath(`fired_vessel_decolor`) .itemInputs('#tfg:colorized_fired_vessels') .inputFluids(Fluid.of(`gtceu:chlorine`, 36)) .itemOutputs('tfc:ceramic/vessel') .duration(300) .EUt(4) global.MINECRAFT_DYE_NAMES.forEach(dye => { event.recipes.gtceu.chemical_bath(`${dye}_unfired_vessel`) .itemInputs('tfc:ceramic/unfired_vessel') .inputFluids(Fluid.of(`gtceu:${dye}_dye`, 36)) .itemOutputs(`tfc:ceramic/${dye}_unfired_vessel`) .duration(150) .EUt(4) event.recipes.gtceu.chemical_bath(`${dye}_vessel`) .itemInputs('tfc:ceramic/vessel') .inputFluids(Fluid.of(`gtceu:${dye}_dye`, 36)) .itemOutputs(`tfc:ceramic/${dye}_glazed_vessel`) .duration(150) .EUt(4) }) //#endregion //#region Большой сосуд event.recipes.gtceu.chemical_bath(`unfired_large_vessel_decolor`) .itemInputs('#tfg:colorized_unfired_large_vessels') .inputFluids(Fluid.of(`gtceu:chlorine`, 72)) .itemOutputs('tfc:ceramic/unfired_large_vessel') .duration(300) .EUt(4) event.recipes.gtceu.chemical_bath(`fired_large_vessel_decolor`) .itemInputs('#tfg:colorized_fired_large_vessels') .inputFluids(Fluid.of(`gtceu:chlorine`, 72)) .itemOutputs('tfc:ceramic/large_vessel') .duration(300) .EUt(4) global.MINECRAFT_DYE_NAMES.forEach(dye => { event.recipes.gtceu.chemical_bath(`${dye}_large_unfired_vessel`) .itemInputs('tfc:ceramic/unfired_large_vessel') .inputFluids(Fluid.of(`gtceu:${dye}_dye`, 72)) .itemOutputs(`tfc:ceramic/unfired_large_vessel/${dye}`) .duration(150) .EUt(4) event.recipes.gtceu.chemical_bath(`${dye}_large_vessel`) .itemInputs('tfc:ceramic/large_vessel') .inputFluids(Fluid.of(`gtceu:${dye}_dye`, 72)) .itemOutputs(`tfc:ceramic/large_vessel/${dye}`) .duration(150) .EUt(4) }) //#endregion //#endregion //#region Удаление рецептов лопастей ветряной мельницы event.remove({ id: `tfc:crafting/windmill_blade` }) event.remove({ id: `tfc:barrel/dye/bleach_windmill_blades` }) global.MINECRAFT_DYE_NAMES.forEach(dye => { event.remove({ id: `tfc:barrel/dye/${dye}_windmill_blade` }) }) //#endregion //#region Удаление рецептов каменных инструментов TFC //#region Топор // Инструмент event.remove({ id: `tfc:crafting/stone/axe_igneous_extrusive` }) event.remove({ id: `tfc:crafting/stone/axe_igneous_intrusive` }) event.remove({ id: `tfc:crafting/stone/axe_metamorphic` }) event.remove({ id: `tfc:crafting/stone/axe_sedimentary` }) // Оголовья event.remove({ id: `tfc:rock_knapping/axe_head_igneous_extrusive` }) event.remove({ id: `tfc:rock_knapping/axe_head_igneous_intrusive` }) event.remove({ id: `tfc:rock_knapping/axe_head_metamorphic` }) event.remove({ id: `tfc:rock_knapping/axe_head_sedimentary` }) event.recipes.tfc.knapping('gtceu:stone_axe_head', 'tfc:rock', [ " X ", "XXXX ", "XXXXX", "XXXX ", " X " ]) .ingredient('#tfc:rock_knapping') .outsideSlotRequired(false) .id('tfg:rock_knapping/stone_axe_head') //#endregion //#region Молот // Инструмент event.remove({ id: `tfc:crafting/stone/hammer_igneous_extrusive` }) event.remove({ id: `tfc:crafting/stone/hammer_igneous_intrusive` }) event.remove({ id: `tfc:crafting/stone/hammer_metamorphic` }) event.remove({ id: `tfc:crafting/stone/hammer_sedimentary` }) // Оголовья event.remove({ id: `tfc:rock_knapping/hammer_head_igneous_extrusive` }) event.remove({ id: `tfc:rock_knapping/hammer_head_igneous_intrusive` }) event.remove({ id: `tfc:rock_knapping/hammer_head_metamorphic` }) event.remove({ id: `tfc:rock_knapping/hammer_head_sedimentary` }) event.recipes.tfc.knapping('gtceu:stone_hammer_head', 'tfc:rock', [ "XXXXX", "XXXXX", " X " ]) .ingredient('#tfc:rock_knapping') .outsideSlotRequired(false) .id('tfg:rock_knapping/stone_hammer_head') //#endregion //#region Мотыга // Инструмент event.remove({ id: `tfc:crafting/stone/hoe_igneous_extrusive` }) event.remove({ id: `tfc:crafting/stone/hoe_igneous_intrusive` }) event.remove({ id: `tfc:crafting/stone/hoe_metamorphic` }) event.remove({ id: `tfc:crafting/stone/hoe_sedimentary` }) // Оголовья event.remove({ id: `tfc:rock_knapping/hoe_head_igneous_extrusive` }) event.remove({ id: `tfc:rock_knapping/hoe_head_1_igneous_extrusive` }) event.remove({ id: `tfc:rock_knapping/hoe_head_2_igneous_extrusive` }) event.remove({ id: `tfc:rock_knapping/hoe_head_igneous_intrusive` }) event.remove({ id: `tfc:rock_knapping/hoe_head_1_igneous_intrusive` }) event.remove({ id: `tfc:rock_knapping/hoe_head_2_igneous_intrusive` }) event.remove({ id: `tfc:rock_knapping/hoe_head_metamorphic` }) event.remove({ id: `tfc:rock_knapping/hoe_head_1_metamorphic` }) event.remove({ id: `tfc:rock_knapping/hoe_head_2_metamorphic` }) event.remove({ id: `tfc:rock_knapping/hoe_head_sedimentary` }) event.remove({ id: `tfc:rock_knapping/hoe_head_1_sedimentary` }) event.remove({ id: `tfc:rock_knapping/hoe_head_2_sedimentary` }) event.recipes.tfc.knapping('gtceu:stone_hoe_head', 'tfc:rock', [ "XXXXX", " XX" ]) .ingredient('#tfc:rock_knapping') .outsideSlotRequired(false) .id('tfg:rock_knapping/stone_hoe_head') event.recipes.tfc.knapping('2x gtceu:stone_hoe_head', 'tfc:rock', [ "XXXXX", "XX ", " ", "XXXXX", "XX " ]) .ingredient('#tfc:rock_knapping') .outsideSlotRequired(false) .id('tfg:rock_knapping/stone_hoe_head_1') event.recipes.tfc.knapping('2x gtceu:stone_hoe_head', 'tfc:rock', [ "XXXXX", "XX ", " ", "XXXXX", " XX" ]) .ingredient('#tfc:rock_knapping') .outsideSlotRequired(false) .id('tfg:rock_knapping/stone_hoe_head_2') //#endregion //#region Нож // Инструмент event.remove({ id: `tfc:crafting/stone/knife_igneous_extrusive` }) event.remove({ id: `tfc:crafting/stone/knife_igneous_intrusive` }) event.remove({ id: `tfc:crafting/stone/knife_metamorphic` }) event.remove({ id: `tfc:crafting/stone/knife_sedimentary` }) // Оголовья event.remove({ id: `tfc:rock_knapping/knife_head_igneous_extrusive` }) event.remove({ id: `tfc:rock_knapping/knife_head_1_igneous_extrusive` }) event.remove({ id: `tfc:rock_knapping/knife_head_2_igneous_extrusive` }) event.remove({ id: `tfc:rock_knapping/knife_head_3_igneous_extrusive` }) event.remove({ id: `tfc:rock_knapping/knife_head_igneous_intrusive` }) event.remove({ id: `tfc:rock_knapping/knife_head_1_igneous_intrusive` }) event.remove({ id: `tfc:rock_knapping/knife_head_2_igneous_intrusive` }) event.remove({ id: `tfc:rock_knapping/knife_head_3_igneous_intrusive` }) event.remove({ id: `tfc:rock_knapping/knife_head_metamorphic` }) event.remove({ id: `tfc:rock_knapping/knife_head_1_metamorphic` }) event.remove({ id: `tfc:rock_knapping/knife_head_2_metamorphic` }) event.remove({ id: `tfc:rock_knapping/knife_head_3_metamorphic` }) event.remove({ id: `tfc:rock_knapping/knife_head_sedimentary` }) event.remove({ id: `tfc:rock_knapping/knife_head_1_sedimentary` }) event.remove({ id: `tfc:rock_knapping/knife_head_2_sedimentary` }) event.remove({ id: `tfc:rock_knapping/knife_head_3_sedimentary` }) event.recipes.tfc.knapping('gtceu:stone_knife_head', 'tfc:rock', [ "X ", "XX", "XX", "XX", "XX" ]) .ingredient('#tfc:rock_knapping') .outsideSlotRequired(false) .id('tfg:rock_knapping/stone_knife_head') event.recipes.tfc.knapping('2x gtceu:stone_knife_head', 'tfc:rock', [ "X X ", "XX XX", "XX XX", "XX XX", "XX XX" ]) .ingredient('#tfc:rock_knapping') .outsideSlotRequired(false) .id('tfg:rock_knapping/stone_knife_head_1') event.recipes.tfc.knapping('2x gtceu:stone_knife_head', 'tfc:rock', [ "X X", "XX XX", "XX XX", "XX XX", "XX XX" ]) .ingredient('#tfc:rock_knapping') .outsideSlotRequired(false) .id('tfg:rock_knapping/stone_knife_head_2') event.recipes.tfc.knapping('2x gtceu:stone_knife_head', 'tfc:rock', [ " X X ", "XX XX", "XX XX", "XX XX", "XX XX" ]) .ingredient('#tfc:rock_knapping') .outsideSlotRequired(false) .id('tfg:rock_knapping/stone_knife_head_3') //#endregion //#region Лопата // Инструмент event.remove({ id: `tfc:crafting/stone/shovel_igneous_extrusive` }) event.remove({ id: `tfc:crafting/stone/shovel_igneous_intrusive` }) event.remove({ id: `tfc:crafting/stone/shovel_metamorphic` }) event.remove({ id: `tfc:crafting/stone/shovel_sedimentary` }) // Оголовья event.remove({ id: `tfc:rock_knapping/shovel_head_igneous_extrusive` }) event.remove({ id: `tfc:rock_knapping/shovel_head_igneous_intrusive` }) event.remove({ id: `tfc:rock_knapping/shovel_head_metamorphic` }) event.remove({ id: `tfc:rock_knapping/shovel_head_sedimentary` }) event.recipes.tfc.knapping('gtceu:stone_shovel_head', 'tfc:rock', [ "XXX", "XXX", "XXX", "XXX", " X " ]) .ingredient('#tfc:rock_knapping') .outsideSlotRequired(false) .id('tfg:rock_knapping/stone_shovel_head') //#endregion //#endregion //#region Рецепты электрической теплицы // Дерево global.TFC_WOOD_TYPES.forEach(wood => { generateGreenHouseRecipe(event, `tfc:wood/sapling/${wood}`, 16000, `32x tfc:wood/log/${wood}`, `tfg:greenhouse/${wood}`) }) // Семена фруктов global.TFC_GREENHOUSE_FRUIT_RECIPE_COMPONENTS.forEach(element => { generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name) }) // Семена овощей global.TFC_GREENHOUSE_VEGETABLE_RECIPE_COMPONENTS.forEach(element => { generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name) }) // Семена ягод global.TFC_GREENHOUSE_BERRY_RECIPE_COMPONENTS.forEach(element => { generateGreenHouseRecipe(event, element.input, element.fluid_amount, element.output, element.name) }) // Растения Ingredient.of('#tfc:plants').stacks.forEach(element => { const itemId = element.id; const recipeId = `greenhouse_${itemId.replace(':', '_')}`; generateGreenHouseRecipe(event, itemId, 8000, `8x ${itemId}`, recipeId); }); //#endregion //#region Рецепты плоского теста global.TFC_MIXER_FLATBREAD_DOUGH_RECIPE_COMPONENTS.forEach(element => { event.recipes.gtceu.mixer(element.name) .itemInputs(element.input) .inputFluids(Fluid.of('minecraft:water', 100)) .itemOutputs(element.output) .duration(300) .EUt(16) }) //#endregion //#region Рецепты хлеба global.TFC_FURNACE_BREAD_RECIPE_COMPONENTS.forEach(element => { event.smelting(element.output, element.input) .id(`tfg:smelting/${element.name}`) }) //#endregion //#region Молды в ассемблере for (let i = 0; i < global.TFC_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS.length; i++) { let element = global.TFC_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS[i]; event.recipes.gtceu.assembler(`tfg:tfc/${element.name}`) .itemInputs(element.input) .circuit(i) .itemOutputs(element.output) .duration(450) .EUt(2) } //#endregion //#region Стеклянные смеси в бутылки в ассемблере global.TFC_BATCH_TO_BOTTLE_ASSEMBLING_RECIPE_COMPONENTS.forEach(element => { event.recipes.gtceu.alloy_smelter(`tfg:tfc/${element.name}`) .itemInputs(element.input) .notConsumable('gtceu:bottle_casting_mold') .itemOutputs(element.output) .duration(100) .EUt(2) }) //#endregion //#region СЫЫЫР 0_0 // Rennet event.recipes.gtceu.fermenter('tfg:fermenter/vegetable_rennet') .itemInputs('#tfg:ferments_to_rennet') .itemOutputs('firmalife:rennet') .duration(400) .EUt(16) event.recipes.gtceu.fermenter('tfg:fermenter/biomass_rennet') .inputFluids(Fluid.of('gtceu:fermented_biomass', 100)) .itemOutputs('firmalife:rennet') .duration(2400) .EUt(16) // Curdled milk event.recipes.gtceu.fermenter('tfg:fermenter/curdled_milk') .inputFluids(Fluid.of('minecraft:milk', 1000)) .itemInputs('firmalife:rennet') .outputFluids(Fluid.of('tfc:curdled_milk')) .duration(2400) .EUt(16) event.recipes.gtceu.fermenter('tfg:fermenter/curdled_yak_milk') .inputFluids(Fluid.of('firmalife:yak_milk', 1000)) .itemInputs('firmalife:rennet') .outputFluids(Fluid.of('firmalife:curdled_yak_milk')) .duration(2400) .EUt(16) event.recipes.gtceu.fermenter('tfg:fermenter/curdled_goat_milk') .inputFluids(Fluid.of('firmalife:goat_milk', 1000)) .itemInputs('firmalife:rennet') .outputFluids(Fluid.of('firmalife:curdled_goat_milk')) .duration(2400) .EUt(16) //Curds event.recipes.gtceu.fermenter('tfg:fermenter/milk_curd') .inputFluids(Fluid.of('tfc:curdled_milk', 1000)) .itemOutputs('firmalife:food/milk_curd') .duration(1200) .EUt(16) event.recipes.gtceu.fermenter('tfg:fermenter/yak_curd') .inputFluids(Fluid.of('firmalife:curdled_yak_milk', 1000)) .itemOutputs('firmalife:food/yak_curd') .duration(1200) .EUt(16) event.recipes.gtceu.fermenter('tfg:fermenter/goat_curd') .inputFluids(Fluid.of('firmalife:curdled_goat_milk', 1000)) .itemOutputs('firmalife:food/goat_curd') .duration(1200) .EUt(16) // Cheese wheels event.recipes.gtceu.fermenter('tfg:fermenter/gouda_wheel') .inputFluids(Fluid.of('tfc:salt_water', 750)) .itemInputs('3x firmalife:food/milk_curd') .itemOutputs('firmalife:gouda_wheel') .duration(12000) .EUt(24) event.recipes.gtceu.fermenter('tfg:fermenter/shosha_wheel') .inputFluids(Fluid.of('tfc:salt_water', 750)) .itemInputs('3x firmalife:food/yak_curd') .itemOutputs('firmalife:shosha_wheel') .duration(12000) .EUt(24) event.recipes.gtceu.fermenter('tfg:fermenter/feta_wheel') .inputFluids(Fluid.of('tfc:salt_water', 750)) .itemInputs('3x firmalife:food/goat_curd') .itemOutputs('firmalife:feta_wheel') .duration(12000) .EUt(24) // Cutting event.recipes.gtceu.cutter('tfg:cutter/gouda') .itemInputs('firmalife:gouda_wheel') .itemOutputs('4x firmalife:food/gouda') .duration(40) .EUt(28) event.recipes.gtceu.cutter('tfg:cutter/shosha') .itemInputs('firmalife:shosha_wheel') .itemOutputs('4x firmalife:food/shosha') .duration(40) .EUt(28) event.recipes.gtceu.cutter('tfg:cutter/feta') .itemInputs('firmalife:feta_wheel') .itemOutputs('4x firmalife:food/feta') .duration(40) .EUt(28) event.recipes.gtceu.cutter('tfg:cutter/cheddar') .itemInputs('firmalife:cheddar_wheel') .itemOutputs('4x firmalife:food/cheddar') .duration(40) .EUt(28) event.recipes.gtceu.cutter('tfg:cutter/chevre') .itemInputs('firmalife:chevre_wheel') .itemOutputs('4x firmalife:food/chevre') .duration(40) .EUt(28) event.recipes.gtceu.cutter('tfg:cutter/rajya_metok') .itemInputs('firmalife:rajya_metok_wheel') .itemOutputs('4x firmalife:food/rajya_metok') .duration(40) .EUt(28) // Misc global.TFC_MILKS.forEach(milk => { event.recipes.gtceu.fermenter(`tfg:fermenter/cream_from_${milk.id.replace(':', '_')}`) .inputFluids(Fluid.of(milk.id, 1000)) .outputFluids(Fluid.of('firmalife:cream')) .duration(1200) .EUt(24) }) event.recipes.gtceu.mixer('tfg:mixer/tomato_sauce') .itemInputs('firmalife:food/tomato_sauce_mix') .inputFluids(Fluid.of('minecraft:water', 200)) .itemOutputs('firmalife:food/tomato_sauce') .duration(200) .EUt(24) //endregion //#region Оливки event.recipes.gtceu.macerator(`tfg:tfc/olive_paste`) .itemInputs('tfc:food/olive') .itemOutputs('2x tfc:olive_paste') .duration(60) .EUt(2) event.recipes.createMilling('2x tfc:olive_paste', 'tfc:food/olive') .id(`tfg:milling/tfc/olive_paste`) event.recipes.gtceu.mixer('tfg:tfc/olive_oil_water') .inputFluids(Fluid.of('water', 200)) .itemInputs('2x tfc:olive_paste') .outputFluids(Fluid.of('tfc:olive_oil_water', 200)) .duration(200) .EUt(28) event.recipes.gtceu.distillery('tfg:tfc/olive_oil') .inputFluids(Fluid.of('tfc:olive_oil_water', 250)) .outputFluids(Fluid.of('tfc:olive_oil', 50)) .duration(600) .EUt(28) //#endregion //#region Рецепты бочки в миксере // А где? //#endregion // Бумага event.recipes.gtceu.cutter('tfg:unrefined_paper') .itemInputs('tfc:unrefined_paper') .itemOutputs('minecraft:paper') .duration(100) .EUt(16) // Limewater event.recipes.gtceu.mixer('tfg:limewater_from_lime') .itemInputs('tfc:powder/lime') .inputFluids(Fluid.of('water', 500)) .outputFluids(Fluid.of('tfc:limewater', 500)) .duration(20) .EUt(16) event.recipes.gtceu.mixer('tfg:limewater_from_flux') .itemInputs('tfc:powder/flux') .inputFluids(Fluid.of('water', 500)) .outputFluids(Fluid.of('tfc:limewater', 500)) .duration(20) .EUt(16) // Tannin event.recipes.gtceu.chemical_bath('tfg:tannin') .itemInputs('#tfc:makes_tannin') .inputFluids(Fluid.of('water', 1000)) .outputFluids(Fluid.of('tfc:tannin', 1000)) .duration(2400) .EUt(16) // Soaked hides event.recipes.gtceu.chemical_bath('tfg:small_soaked_hide') .itemInputs('tfc:small_raw_hide') .inputFluids(Fluid.of('tfc:limewater', 300)) .itemOutputs('tfc:small_soaked_hide') .duration(1600) .EUt(16) event.recipes.gtceu.chemical_bath('tfg:medium_soaked_hide') .itemInputs('tfc:medium_raw_hide') .inputFluids(Fluid.of('tfc:limewater', 400)) .itemOutputs('tfc:medium_soaked_hide') .duration(2400) .EUt(16) event.recipes.gtceu.chemical_bath('tfg:large_soaked_hide') .itemInputs('tfc:large_raw_hide') .inputFluids(Fluid.of('tfc:limewater', 500)) .itemOutputs('tfc:large_soaked_hide') .duration(3200) .EUt(16) // Scraped Hides event.recipes.gtceu.cutter('tfg:small_scraped_hide') .itemInputs('tfc:small_soaked_hide') .itemOutputs('tfc:small_scraped_hide') .duration(100) .EUt(16) event.recipes.gtceu.cutter('tfg:medium_scraped_hide') .itemInputs('tfc:medium_soaked_hide') .itemOutputs('tfc:medium_scraped_hide') .duration(100) .EUt(16) event.recipes.gtceu.cutter('tfg:large_scraped_hide') .itemInputs('tfc:large_soaked_hide') .itemOutputs('tfc:large_scraped_hide') .duration(100) .EUt(16) // Prepared hides event.recipes.gtceu.chemical_bath('tfg:small_prepared_hide') .itemInputs('tfc:small_soaked_hide') .inputFluids(Fluid.of('water', 300)) .itemOutputs('tfc:small_prepared_hide') .duration(1600) .EUt(16) event.recipes.gtceu.chemical_bath('tfg:medium_prepared_hide') .itemInputs('tfc:medium_soaked_hide') .inputFluids(Fluid.of('water', 400)) .itemOutputs('tfc:medium_prepared_hide') .duration(2400) .EUt(16) event.recipes.gtceu.chemical_bath('tfg:large_prepared_hide') .itemInputs('tfc:large_soaked_hide') .inputFluids(Fluid.of('water', 500)) .itemOutputs('tfc:large_prepared_hide') .duration(3200) .EUt(16) // Leather event.recipes.gtceu.chemical_bath('tfg:small_leather') .itemInputs('tfc:small_prepared_hide') .inputFluids(Fluid.of('tfc:tannin', 300)) .itemOutputs('minecraft:leather') .duration(1600) .EUt(16) event.recipes.gtceu.chemical_bath('tfg:medium_leather') .itemInputs('tfc:medium_prepared_hide') .inputFluids(Fluid.of('tfc:tannin', 400)) .itemOutputs('2x minecraft:leather') .duration(2400) .EUt(16) event.recipes.gtceu.chemical_bath('tfg:large_leather') .itemInputs('tfc:large_prepared_hide') .inputFluids(Fluid.of('tfc:tannin', 500)) .itemOutputs('3x minecraft:leather') .duration(3200) .EUt(16) // Другое event.remove({ id: `tfc:crafting/trip_hammer` }) event.remove({ id: `tfc:anvil/steel_pump` }) event.remove({ id: `tfc:crafting/steel_pump` }) event.remove({ id: `tfc:crafting/crankshaft` }) // Доменная печь event.shaped('tfc:blast_furnace', [ 'AAA', 'ABA', 'AAA' ], { A: '#forge:double_plates/wrought_iron', B: 'tfc:crucible' }).id('tfc:crafting/blast_furnace') // Тыква -> Кусочки тыквы event.recipes.minecraft.crafting_shaped('5x tfc:food/pumpkin_chunks', [ 'AB' ], { A: '#tfc:knives', B: 'tfc:pumpkin' }) // Lime event.smelting('tfc:powder/lime', 'tfc:powder/flux') .id('tfg:smelting/lime') // Kaolinite Clay event.smelting('tfc:kaolin_clay', 'tfc:powder/kaolinite') .id('tfg:smelting/kaolinite_clay') // Fire Brick event.smelting('tfc:ceramic/fire_brick', 'gtceu:compressed_fireclay') .id('tfg:smelting/fireclay_brick') // Выпаривание соли event.recipes.tfc.pot([], Fluid.of('tfc:salt_water', 625), 300, 1000) .itemOutput('gtceu:small_salt_dust') .id('tfg:tfc/pot/salt') // Salt Water generateMixerRecipe( event, ['#forge:dusts/salt'], Fluid.of('minecraft:water', 1000), [], null, Fluid.of('tfc:salt_water', 1000), 40, 7, 64, 'tfg:tfc/salt_water' ) // Lamp Glass event.recipes.gtceu.alloy_smelter(`tfg:tfc/lamp_glass`) .itemInputs('#tfc:glass_batches') .notConsumable('#tfg:unfinished_lamps') .itemOutputs('tfc:lamp_glass') .duration(100) .EUt(2) // Glass lens event.recipes.gtceu.alloy_smelter(`tfg:tfc/glass_lens`) .itemInputs('tfc:silica_glass_batch') .notConsumable('#forge:lenses') .itemOutputs('tfc:lens') .duration(100) .EUt(2) // Empty Jar event.recipes.gtceu.assembler(`tfg:tfc/glass_jar`) .itemInputs('#tfc:glass_batches_tier_2') .circuit(2) .itemOutputs('tfc:empty_jar') .duration(100) .EUt(2) // Wool Yarn event.recipes.gtceu.macerator('macerate_wool') .itemInputs('#minecraft:wool') .itemOutputs('tfc:wool_yarn') .chancedOutput('tfc:wool_yarn', 9000, 0) .chancedOutput('tfc:wool_yarn', 5000, 0) .chancedOutput('tfc:wool_yarn', 2000, 0) .duration(200) .EUt(2) // LimeWater + Sand -> Mortar event.recipes.gtceu.centrifuge('mortar') .itemInputs('#forge:sand') .inputFluids(Fluid.of('tfc:limewater', 100)) .itemOutputs('16x tfc:mortar') .duration(800) .EUt(8) // Brass Mechanism event.recipes.gtceu.assembler('tfg:tfc/brass_mechanism') .itemInputs('#forge:plates/brass') .circuit(10) .itemOutputs('2x tfc:brass_mechanisms') .duration(100) .EUt(4) // 1x Small SheepSkin -> 1x Wool event.recipes.gtceu.assembler('tfg:tfc/wool_1') .itemInputs('tfc:small_sheepskin_hide') .itemOutputs('tfc:wool') .duration(100) .EUt(4) // 1x Medium SheepSkin -> 1x Wool event.recipes.gtceu.assembler('tfg:tfc/wool_2') .itemInputs('tfc:medium_sheepskin_hide') .itemOutputs('2x tfc:wool') .duration(100) .EUt(4) // 1x Large SheepSkin -> 1x Wool event.recipes.gtceu.assembler('tfg:tfc/wool_3') .itemInputs('tfc:large_sheepskin_hide') .itemOutputs('3x tfc:wool') .duration(100) .EUt(4) // Wool Yarn event.recipes.gtceu.wiremill('tfg:tfc/wool_yarn') .itemInputs('tfc:wool') .itemOutputs('8x tfc:wool_yarn') .duration(100) .EUt(4) // Burlap Cloth event.recipes.gtceu.assembler('tfg:tfc/burlap_cloth') .itemInputs('12x tfc:jute_fiber') .itemOutputs('tfc:burlap_cloth') .duration(100) .EUt(4) // Silk Cloth event.recipes.gtceu.assembler('tfg:tfc/silk_cloth') .itemInputs('24x minecraft:string') .itemOutputs('tfc:silk_cloth') .duration(100) .EUt(4) // Silk Cloth event.recipes.gtceu.assembler('tfg:tfc/wool_cloth') .itemInputs('16x tfc:wool_yarn') .itemOutputs('tfc:wool_cloth') .duration(100) .EUt(4) // Jute Fiber generateMixerRecipe(event, 'tfc:jute', Fluid.of('minecraft:water', 200), 'tfc:jute_fiber', null, [], 100, 4, 16, 'tfg:tfc/jute_fiber') // Soda Ash event.smelting('3x tfc:powder/soda_ash', 'tfc:food/dried_seaweed').id('tfg:smelting/dried_seaweed_to_soda') event.smelting('3x tfc:powder/soda_ash', 'tfc:food/dried_kelp').id('tfg:smelting/dried_kelp_to_soda') //#region Обрушения event.recipes.tfc.collapse('#tfg:rock_slabs').id('tfg:collapse/rock_slabs') event.recipes.tfc.collapse('#tfg:rock_stairs').id('tfg:collapse/rock_stairs') event.recipes.tfc.collapse('#tfg:rock_walls').id('tfg:collapse/rock_walls') global.TFC_STONE_TYPES.forEach(stoneType => { event.custom({ type: "tfc:collapse", ingredient: { tag: `forge:ores_in_ground/${stoneType}` }, result: `tfc:rock/cobble/${stoneType}` }).id(`tfg:collapse/${stoneType}_gt_ores`) }) //#endregion //#region Выход: Свечи event.recipes.gtceu.chemical_bath(`tfg:tfc/candle_decolor`) .itemInputs('#tfc:colored_candles') .inputFluids(Fluid.of(`gtceu:chlorine`, 72)) .itemOutputs('tfc:candle') .duration(300) .EUt(4) global.MINECRAFT_DYE_NAMES.forEach(dye => { event.recipes.gtceu.chemical_bath(`tfg:tfc/${dye}_candle`) .itemInputs('tfc:candle') .inputFluids(Fluid.of(`gtceu:${dye}_dye`, 36)) .itemOutputs(`tfc:candle/${dye}`) .duration(300) .EUt(4) }) //#endregion //#region Алебастр event.recipes.tfc.damage_inputs_shapeless_crafting(event.recipes.minecraft.crafting_shapeless('4x tfc:alabaster_brick', ['#forge:raw_materials/gypsum', '#tfc:chisels'])) .id('tfc:crafting/alabaster_brick/raw_gypsum') event.recipes.tfc.damage_inputs_shapeless_crafting(event.recipes.minecraft.crafting_shapeless('2x tfc:alabaster_brick', ['#forge:poor_raw_materials/gypsum', '#tfc:chisels'])) .id('tfc:crafting/alabaster_brick/poor_raw_gypsum') event.recipes.tfc.damage_inputs_shapeless_crafting(event.recipes.minecraft.crafting_shapeless('6x tfc:alabaster_brick', ['#forge:rich_raw_materials/gypsum', '#tfc:chisels'])) .id('tfc:crafting/alabaster_brick/rich_raw_gypsum') // Alabaster Brick event.recipes.gtceu.assembler('tfc:alabaster/bricks') .itemInputs('5x tfc:alabaster_brick') .inputFluids(Fluid.of('gtceu:concrete', 72)) .itemOutputs('4x tfc:alabaster/bricks') .duration(50) .EUt(2) event.recipes.gtceu.chemical_bath('tfc:alabaster/bricks') .itemInputs('#tfc:colored_bricks_alabaster') .inputFluids(Fluid.of('gtceu:chlorine', 72)) .itemOutputs('tfc:alabaster/bricks') .duration(400) .EUt(2) for (let i = 0; i < 16; i++) { event.recipes.gtceu.chemical_bath(`tfg:tfc/alabaster/bricks/${global.MINECRAFT_DYE_NAMES[i]}`) .itemInputs('tfc:alabaster/bricks') .inputFluids(Fluid.of(`gtceu:${global.MINECRAFT_DYE_NAMES[i]}_dye`, 72)) .itemOutputs(`tfc:alabaster/bricks/${global.MINECRAFT_DYE_NAMES[i]}`) .duration(20) .EUt(7) } // Raw Alabaster event.recipes.gtceu.chemical_bath('tfc:alabaster/raw/poor_raw_gypsum') .itemInputs('gtceu:poor_raw_gypsum') .inputFluids(Fluid.of('tfc:limewater', 50)) .itemOutputs('tfc:alabaster/raw') .duration(400) .EUt(2) event.recipes.gtceu.chemical_bath('tfc:alabaster/raw/raw_gypsum') .itemInputs('gtceu:raw_gypsum') .inputFluids(Fluid.of('tfc:limewater', 100)) .itemOutputs('2x tfc:alabaster/raw') .duration(400) .EUt(2) event.recipes.gtceu.chemical_bath('tfc:alabaster/raw/rich_raw_gypsum') .itemInputs('gtceu:rich_raw_gypsum') .inputFluids(Fluid.of('tfc:limewater', 150)) .itemOutputs('3x tfc:alabaster/raw') .duration(400) .EUt(2) event.recipes.gtceu.chemical_bath('tfc:alabaster/raw') .itemInputs('#tfc:colored_bricks_alabaster') .inputFluids(Fluid.of('gtceu:chlorine', 72)) .itemOutputs('tfc:alabaster/raw') .duration(400) .EUt(2) for (let i = 0; i < 16; i++) { event.recipes.gtceu.chemical_bath(`tfg:tfc/alabaster/raw/${global.MINECRAFT_DYE_NAMES[i]}`) .itemInputs('tfc:alabaster/raw') .inputFluids(Fluid.of(`gtceu:${global.MINECRAFT_DYE_NAMES[i]}_dye`, 72)) .itemOutputs(`tfc:alabaster/raw/${global.MINECRAFT_DYE_NAMES[i]}`) .duration(20) .EUt(7) } //#endregion }