Mechanical press (#1243)

* welcome back, mechanical press

* EMI category order

* langs

* quests

* emi categories

* quests

* greate stress settings for the mech press

* I got distracted so I guess these are on this branch now

* removed welding recipes from the pressurizer

* recipe additions and changes for the mech press!

* let's go gambling!

* added flux to the mech press "welding" recipes
This commit is contained in:
Pyritie 2025-07-05 01:41:03 +01:00 committed by GitHub
parent 7d9a38d64b
commit 6bf2ad74cd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
161 changed files with 623 additions and 280 deletions

View file

@ -2,7 +2,6 @@
function registerGreateRecipes(event) {
removeGreateRecipes(event);
registerGreateRecyclingRecipes(event);
event.replaceInput({ input: 'create:cogwheel'}, 'create:cogwheel', '#tfg:small_cogwheels')
@ -638,4 +637,75 @@ function registerGreateRecipes(event) {
// #endregion
// #region Presses
event.shaped('greate:andesite_alloy_mechanical_press', [
'AEB',
'DF ',
' C '
], {
A: '#tfg:any_bronze_frame',
B: 'greate:andesite_alloy_cogwheel',
C: '#tfg:any_iron_plate',
D: '#forge:tools/hammers',
E: '#minecraft:planks',
F: 'greate:andesite_alloy_shaft'
}).id('greate:shaped/andesite_alloy_mechanical_press')
event.shaped('greate:steel_mechanical_press', [
' AD',
'EBF',
' C '
], {
A: 'create:andesite_casing',
B: 'greate:steel_shaft',
C: '#forge:double_plates/steel',
D: 'greate:steel_cogwheel',
E: '#forge:tools/hammers',
F: '#forge:tools/wrenches'
}).id('greate:shaped/steel_mechanical_press')
event.shaped('greate:aluminium_mechanical_press', [
'GAD',
'EBF',
' C '
], {
A: 'gtceu:mv_machine_hull',
B: 'greate:aluminium_shaft',
C: '#forge:double_plates/vanadium_steel',
D: 'greate:aluminium_cogwheel',
E: '#forge:tools/hammers',
F: '#forge:tools/wrenches',
G: '#gtceu:circuits/mv'
}).id('greate:shaped/aluminium_mechanical_press')
event.shaped('greate:stainless_steel_mechanical_press', [
'GAD',
'EBF',
' C '
], {
A: 'gtceu:hv_machine_hull',
B: 'greate:stainless_steel_shaft',
C: '#forge:double_plates/blue_alloy',
D: 'greate:stainless_steel_cogwheel',
E: '#forge:tools/hammers',
F: '#forge:tools/wrenches',
G: '#gtceu:circuits/hv'
}).id('greate:shaped/stainless_steel_mechanical_press')
event.shaped('greate:titanium_mechanical_press', [
'GAD',
'EBF',
' C '
], {
A: 'gtceu:ev_machine_hull',
B: 'greate:titanium_shaft',
C: '#forge:double_plates/ultimet',
D: 'greate:titanium_cogwheel',
E: '#forge:tools/hammers',
F: '#forge:tools/wrenches',
G: '#gtceu:circuits/ev'
}).id('greate:shaped/titanium_mechanical_press')
// #endregion
}

View file

@ -636,4 +636,80 @@ function registerGreateRecyclingRecipes(event) {
.EUt(GTValues.VA[GTValues.LV])
// #endregion
// #region Mechanical press
event.recipes.gtceu.macerator('greate:steel_mechanical_press')
.itemInputs('greate:steel_mechanical_press')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.WroughtIron, 2),
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Steel, 20))
.duration(GTMaterials.WroughtIron.getMass() * 4)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:steel_mechanical_press')
.itemInputs('greate:steel_mechanical_press')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.WroughtIron, 2),
ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Steel, 20))
.duration(GTMaterials.WroughtIron.getMass() * 4)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:aluminium_mechanical_press')
.itemInputs('greate:aluminium_mechanical_press')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 9),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.VanadiumSteel, 2))
.duration(GTMaterials.Aluminium.getMass() * 11)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:aluminium_mechanical_press')
.itemInputs('greate:aluminium_mechanical_press')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 9),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.VanadiumSteel, 2))
.duration(GTMaterials.Aluminium.getMass() * 11)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:stainless_steel_mechanical_press')
.itemInputs('greate:stainless_steel_mechanical_press')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.StainlessSteel, 9),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.BlueAlloy, 2))
.duration(GTMaterials.StainlessSteel.getMass() * 11)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:stainless_steel_mechanical_press')
.itemInputs('greate:stainless_steel_mechanical_press')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.StainlessSteel, 9),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.BlueAlloy, 2))
.duration(GTMaterials.StainlessSteel.getMass() * 11)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.macerator('greate:titanium_mechanical_press')
.itemInputs('greate:titanium_mechanical_press')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Titanium, 9),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Ultimet, 2))
.duration(GTMaterials.Titanium.getMass() * 11)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('greate:titanium_mechanical_press')
.itemInputs('greate:titanium_mechanical_press')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Titanium, 9),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Ultimet, 2))
.duration(GTMaterials.Titanium.getMass() * 11)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
// #endregion
}

View file

@ -33,10 +33,10 @@ function removeGreateRecipes(event) {
event.remove({ id: /^greate:splashing\/integration\/create\/.*/ })
event.remove({ id: /^greate:crushing\/integration\/create\/.*/ })
event.remove({ id: /^greate:milling\/integration\/create\/.*/ })
event.remove({ id: /^greate:pressing\/integration\/create\/.*/ })
event.remove({ id: /^greate:compacting\/integration\/.*/ })
event.remove({ id: /^greate:pressing\/integration\/.*/ })
event.remove({ mod: 'greate', type: 'create:deploying' });
event.remove({ mod: 'greate', type: 'create:sequenced_assembly' });
event.remove({ mod: 'greate', type: 'gtceu:assembler' });
event.remove({ type: 'greate:pressing' });
}

View file

@ -59,6 +59,10 @@ const registerGTCEURecipes = (event) => {
.duration(30)
.EUt(2)
event.recipes.greate.pressing('2x tfc:powder/flux', '#tfc:fluxstone')
.recipeTier(0)
.id('greate:pressing/flux')
//#region Выход: Диоксид силикона
event.recipes.gtceu.electrolyzer('sand_electrolysis')

View file

@ -149,17 +149,24 @@ function registerGTCEUMetalRecipes(event) {
}).id(`tfg:rolling/${material.getName()}_plate`)
if (!blockStack.isEmpty() && GTMaterials.Stone != material) {
let ingotArray = ['tfc:powder/flux'];
for (var i = 0; i < matAmount; i++)
ingotArray.push(ingotStack)
// 9х Слиток -> Блок
event.recipes.createCompacting(blockStack, ingotStack.withCount(matAmount))
event.recipes.greate.compacting(blockStack, ingotArray)
.recipeTier(1)
.circuitNumber(9)
.heated()
.id(`tfg:compacting/${material.getName()}_block`)
.id(`greate:compacting/${material.getName()}_block`)
}
}
else {
if (!blockStack.isEmpty()) {
// Блок из гемов -> 9 Пластин
event.recipes.createCutting(plateStack.withCount(matAmount).withChance(0.65), blockStack)
.id(`tfg:cutting/${material.getName()}_plate`)
event.recipes.greate.cutting(plateStack.withCount(matAmount), blockStack)
.recipeTier(1)
.id(`greate:cutting/${material.getName()}_plate`)
}
}
}
@ -173,10 +180,18 @@ function registerGTCEUMetalRecipes(event) {
}
const processPlateDouble = (material) => {
const item = ChemicalHelper.get(TagPrefix.plateDouble, material, 1)
if (item.isEmpty()) return
const doublePlateItem = ChemicalHelper.get(TagPrefix.plateDouble, material, 1)
if (doublePlateItem.isEmpty()) return
const plateItem = ChemicalHelper.get(TagPrefix.plate, material, 1)
event.remove({ id: `gtceu:shaped/plate_double_${material.getName()}` })
if (material.getProperty(TFGPropertyKey.TFC_PROPERTY) == null) {
event.recipes.greate.compacting(doublePlateItem, [plateItem, plateItem, 'tfc:powder/flux'])
.heated()
.recipeTier(2)
.id(`greate:compacting/${material.getName()}_double_plate`)
}
}
const processBlock = (material) => {
@ -202,10 +217,20 @@ function registerGTCEUMetalRecipes(event) {
}
const processRodLong = (material) => {
const item = ChemicalHelper.get(TagPrefix.rodLong, material, 1)
if (item.isEmpty()) return
const longRodItem = ChemicalHelper.get(TagPrefix.rodLong, material, 1)
if (longRodItem.isEmpty()) return
const shortRodItem = ChemicalHelper.get(TagPrefix.rod, material, 1)
if (shortRodItem.isEmpty()) return;
event.remove({ id: `gtceu:shaped/stick_long_stick_${material.getName()}` })
// Rod welding recipes for all of the other non-tfc materials, since those were handled in tfc/recipes.materials.js
if (material.getProperty(TFGPropertyKey.TFC_PROPERTY) == null) {
event.recipes.greate.compacting(longRodItem, [shortRodItem, shortRodItem, 'tfc:powder/flux'])
.heated()
.recipeTier(1)
.id(`greate:compacting/${material.getName()}_long_rod`)
}
}
const processIngotDouble = (material) => {
@ -305,11 +330,22 @@ function registerGTCEUMetalRecipes(event) {
.duration(10)
.EUt(16)
if (material.hasProperty(PropertyKey.GEM) && !TagPrefix.gem.isIgnored(material))
hammerRecipe.chancedOutput(ChemicalHelper.get(TagPrefix.gem, material, crushedOreItem.getCount()), 7500, 950)
else
if (material.hasProperty(PropertyKey.GEM) && !TagPrefix.gem.isIgnored(material)) {
const gemItem = ChemicalHelper.get(TagPrefix.gem, material, crushedOreItem.getCount());
hammerRecipe.chancedOutput(gemItem, 7500, 950)
event.recipes.greate.pressing(TieredOutputItem.of(gemItem).withChance(0.75).withExtraTierChance(0.095), poorOreItem)
.recipeTier(1)
.id(`greate:pressing/poor_raw_${material.getName()}_to_gem`)
}
else {
hammerRecipe.chancedOutput(crushedOreItem, 7500, 950)
event.recipes.greate.pressing(TieredOutputItem.of(crushedOreItem).withChance(0.75).withExtraTierChance(0.095), poorOreItem)
.recipeTier(1)
.id(`greate:pressing/poor_raw_${material.getName()}_to_crushed_ore`)
}
// Macerator
let maceratorRecipe = event.recipes.gtceu.macerator(`macerate_poor_raw_${material.getName()}_ore_to_crushed_ore`)
.itemInputs(poorOreItem)
@ -372,11 +408,22 @@ function registerGTCEUMetalRecipes(event) {
.duration(10)
.EUt(16)
if (material.hasProperty(PropertyKey.GEM) && !TagPrefix.gem.isIgnored(material))
hammerRecipe.itemOutputs(ChemicalHelper.get(TagPrefix.gem, material, crushedOreItem.getCount()))
else
if (material.hasProperty(PropertyKey.GEM) && !TagPrefix.gem.isIgnored(material)) {
const gemItem = ChemicalHelper.get(TagPrefix.gem, material, crushedOreItem.getCount())
hammerRecipe.itemOutputs(gemItem)
event.recipes.greate.pressing(gemItem, normalOreItem)
.recipeTier(1)
.id(`greate:pressing/raw_${material.getName()}_to_gem`)
}
else {
hammerRecipe.itemOutputs(crushedOreItem)
event.recipes.greate.pressing(crushedOreItem, normalOreItem)
.recipeTier(1)
.id(`greate:pressing/raw_${material.getName()}_to_crushed_ore`)
}
event.remove({ id: `greate:milling/integration/gtceu/macerator/macerate_raw_${material.getName()}_ore_to_crushed_ore` })
// Macerator
@ -430,11 +477,22 @@ function registerGTCEUMetalRecipes(event) {
.duration(10)
.EUt(16)
if (material.hasProperty(PropertyKey.GEM) && !TagPrefix.gem.isIgnored(material))
hammerRecipe.itemOutputs(ChemicalHelper.get(TagPrefix.gem, material, crushedOreItem.getCount()))
else
if (material.hasProperty(PropertyKey.GEM) && !TagPrefix.gem.isIgnored(material)) {
const gemItem = ChemicalHelper.get(TagPrefix.gem, material, crushedOreItem.getCount())
hammerRecipe.itemOutputs(gemItem)
event.recipes.greate.pressing(gemItem, richOreItem)
.recipeTier(1)
.id(`greate:pressing/rich_raw_${material.getName()}_to_gem`)
}
else {
hammerRecipe.itemOutputs(crushedOreItem)
event.recipes.greate.pressing(crushedOreItem, richOreItem)
.recipeTier(1)
.id(`greate:pressing/rich_raw_${material.getName()}_to_crushed_ore`)
}
// Macerator
event.recipes.gtceu.macerator(`macerate_rich_raw_${material.getName()}_ore_to_crushed_ore`)
.itemInputs(richOreItem)
@ -571,6 +629,10 @@ function registerGTCEUMetalRecipes(event) {
[ 'A', 'B' ],
{ A: chipped, B: '#forge:tools/mortars'})
.id(`shapeless/mortar_chipped_${material.getName()}`)
event.recipes.greate.pressing(ChemicalHelper.get(TagPrefix.gem, material, 9), ChemicalHelper.get(TagPrefix.block, material, 1))
.recipeTier(0)
.id(`greate:pressing/unpacking_${material.getName()}_block`)
}
const processAnvil = (material) => {

View file

@ -246,4 +246,8 @@ ServerEvents.recipes(event => {
registerTreeTapRecipes(event)
registerVintageImprovementsRecipes(event)
registerWaterFlasksRecipes(event)
// This has to be last so it can clean up any auto-integration recipes that Greate adds after
// adding a recipe to another GT machine
removeGreateRecipes(event)
})

View file

@ -545,6 +545,11 @@ const registerMinecraftRecipes = (event) => {
event.recipes.tfc.welding('minecraft:bucket', 'tfc:metal/bucket/red_steel', 'tfc:metal/bucket/blue_steel', 6)
.id('tfg:anvil/vanilla_bucket')
event.recipes.greate.compacting('minecraft:bucket', ['tfc:metal/bucket/red_steel', 'tfc:metal/bucket/blue_steel', 'tfc:powder/flux'])
.heated()
.recipeTier(0)
.id('greate:compacting/vanilla_bucket')
event.recipes.gtceu.assembler('tfg:vanilla/bucket')
.itemInputs('#forge:plates/red_steel', '#forge:plates/blue_steel')
.circuit(6)

View file

@ -324,9 +324,9 @@ const registerRailWaysRecipes = (event) => {
'8x railways:track_monorail',
], 'create:metal_girder', [
event.recipes.createDeploying('railways:track_incomplete_monorail', ['railways:track_incomplete_monorail', '#forge:plates/wrought_iron']),
event.recipes.createDeploying('railways:track_incomplete_monorail', ['railways:track_incomplete_monorail', '#forge:tools/hammers']),
event.recipes.greate.pressing('railways:track_incomplete_monorail', 'railways:track_incomplete_monorail'),
event.recipes.createDeploying('railways:track_incomplete_monorail', ['railways:track_incomplete_monorail', '#forge:plates/wrought_iron']),
event.recipes.createDeploying('railways:track_incomplete_monorail', ['railways:track_incomplete_monorail', '#forge:tools/hammers']),
event.recipes.greate.pressing('railways:track_incomplete_monorail', 'railways:track_incomplete_monorail'),
]).transitionalItem('railways:track_incomplete_monorail').loops(1).id('tfg:railways/sequenced_assembly/track_monorail')
event.recipes.gtceu.assembler('railways/monorail')
@ -341,7 +341,7 @@ const registerRailWaysRecipes = (event) => {
], '#tfg:rock_slabs', [
event.recipes.createDeploying('railways:track_incomplete_create_andesite_narrow', ['railways:track_incomplete_create_andesite_narrow', 'gtceu:steel_rod']),
event.recipes.createDeploying('railways:track_incomplete_create_andesite_narrow', ['railways:track_incomplete_create_andesite_narrow', '#tfc:mortar']),
event.recipes.createDeploying('railways:track_incomplete_create_andesite_narrow', ['railways:track_incomplete_create_andesite_narrow', '#forge:tools/hammers']),
event.recipes.greate.pressing('railways:track_incomplete_create_andesite_narrow', 'railways:track_incomplete_create_andesite_narrow'),
]).transitionalItem('railways:track_incomplete_create_andesite_narrow').loops(2).id('tfg:railways/sequenced_assembly/track_create_andesite_narrow_from_steel')
event.recipes.gtceu.assembler('railways/track_create_andesite_narrow_from_steel')
@ -359,7 +359,7 @@ const registerRailWaysRecipes = (event) => {
event.recipes.createDeploying('create:incomplete_track', ['create:incomplete_track', '#tfg:rock_slabs']),
event.recipes.createDeploying('create:incomplete_track', ['create:incomplete_track', 'gtceu:steel_rod']),
event.recipes.createDeploying('create:incomplete_track', ['create:incomplete_track', '#tfc:mortar']),
event.recipes.createDeploying('create:incomplete_track', ['create:incomplete_track', '#forge:tools/hammers']),
event.recipes.greate.pressing('create:incomplete_track', 'create:incomplete_track'),
]).transitionalItem('create:incomplete_track').loops(2).id('tfg:railways/sequenced_assembly/track_create_andesite')
event.recipes.gtceu.assembler('railways/track')
@ -377,7 +377,7 @@ const registerRailWaysRecipes = (event) => {
event.recipes.createDeploying('railways:track_incomplete_create_andesite_wide', ['railways:track_incomplete_create_andesite_wide', '#forge:stone']),
event.recipes.createDeploying('railways:track_incomplete_create_andesite_wide', ['railways:track_incomplete_create_andesite_wide', 'gtceu:steel_rod']),
event.recipes.createDeploying('railways:track_incomplete_create_andesite_wide', ['railways:track_incomplete_create_andesite_wide', '#tfc:mortar']),
event.recipes.createDeploying('railways:track_incomplete_create_andesite_wide', ['railways:track_incomplete_create_andesite_wide', '#forge:tools/hammers']),
event.recipes.greate.pressing('railways:track_incomplete_create_andesite_wide', 'railways:track_incomplete_create_andesite_wide'),
]).transitionalItem('railways:track_incomplete_create_andesite_wide').loops(2).id('tfg:railways/sequenced_assembly/track_create_andesite_wide')
event.recipes.gtceu.assembler('railways/track_create_andesite_wide')
@ -396,7 +396,7 @@ const registerRailWaysRecipes = (event) => {
], `tfc:wood/planks/${woodType}_slab`, [
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}_narrow`, [`railways:track_incomplete_tfc_${woodType}_narrow`, 'gtceu:steel_rod']),
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}_narrow`, [`railways:track_incomplete_tfc_${woodType}_narrow`, '#forge:screws']),
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}_narrow`, [`railways:track_incomplete_tfc_${woodType}_narrow`, '#forge:tools/hammers']),
event.recipes.greate.pressing(`railways:track_incomplete_tfc_${woodType}_narrow`, `railways:track_incomplete_tfc_${woodType}_narrow`),
]).transitionalItem(`railways:track_incomplete_tfc_${woodType}_narrow`).loops(2).id(`tfg:railways/sequenced_assembly/track_create_${woodType}_narrow`)
event.recipes.gtceu.assembler(`railways/track_create_${woodType}_narrow`)
@ -413,7 +413,7 @@ const registerRailWaysRecipes = (event) => {
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}`, [`railways:track_incomplete_tfc_${woodType}`, `tfc:wood/lumber/${woodType}`]),
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}`, [`railways:track_incomplete_tfc_${woodType}`, 'gtceu:steel_rod']),
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}`, [`railways:track_incomplete_tfc_${woodType}`, '#forge:screws']),
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}`, [`railways:track_incomplete_tfc_${woodType}`, '#forge:tools/hammers']),
event.recipes.greate.pressing(`railways:track_incomplete_tfc_${woodType}`, `railways:track_incomplete_tfc_${woodType}`),
]).transitionalItem(`railways:track_incomplete_tfc_${woodType}`).loops(2).id(`tfg:railways/sequenced_assembly/track_create_${woodType}`)
event.recipes.gtceu.assembler(`railways/track_${woodType}`)
@ -430,7 +430,7 @@ const registerRailWaysRecipes = (event) => {
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}_wide`, [`railways:track_incomplete_tfc_${woodType}_wide`, `tfc:wood/planks/${woodType}_slab`]),
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}_wide`, [`railways:track_incomplete_tfc_${woodType}_wide`, `gtceu:steel_rod`]),
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}_wide`, [`railways:track_incomplete_tfc_${woodType}_wide`, '#forge:screws']),
event.recipes.createDeploying(`railways:track_incomplete_tfc_${woodType}_wide`, [`railways:track_incomplete_tfc_${woodType}_wide`, '#forge:tools/hammers'])
event.recipes.greate.pressing(`railways:track_incomplete_tfc_${woodType}_wide`, `railways:track_incomplete_tfc_${woodType}_wide`)
]).transitionalItem(`railways:track_incomplete_tfc_${woodType}_wide`).loops(2).id(`tfg:railways/sequenced_assembly/track_create_${woodType}_wide`)
event.recipes.gtceu.assembler(`railways/track_${woodType}_wide`)

View file

@ -60,6 +60,12 @@ function registerTFCMaterialsRecipes(event) {
event.recipes.tfc.welding(doubleIngotItem, ingotItem, ingotItem, tfcProperty.getTier() - 1)
.id(`tfc:welding/${material.getName()}_double_ingot`)
event.recipes.greate.compacting(doubleIngotItem, [ingotItem, ingotItem, 'tfc:powder/flux'])
.heated()
.recipeTier(tfcProperty.getTier() < 5 ? 0 : 1)
.circuitNumber(0)
.id(`greate:compacting/${material.getName()}_double_ingot`)
// Plates
let plateItem = ChemicalHelper.get(TagPrefix.plate, material, 1)
if (!plateItem.isEmpty()) {
@ -88,6 +94,11 @@ function registerTFCMaterialsRecipes(event) {
.tier(tfcProperty.getTier())
.id(`tfc:welding/${material.getName()}_double_sheet`)
event.recipes.greate.compacting(doublePlateItem, [plateItem, plateItem, 'tfc:powder/flux'])
.heated()
.recipeTier(tfcProperty.getTier() < 4 ? 0 : 1)
.id(`greate:compacting/${material.getName()}_double_sheet`)
// Armor
if (material.hasFlag(TFGMaterialFlags.HAS_TFC_ARMOR)) {
//#region Шлем
@ -113,6 +124,11 @@ function registerTFCMaterialsRecipes(event) {
.tier(tfcProperty.getTier())
.id(`tfc:welding/${material.getName()}_helmet`)
event.recipes.greate.compacting(`tfc:metal/helmet/${material.getName()}`, [`tfc:metal/unfinished_helmet/${material.getName()}`, plateItem, 'tfc:powder/flux'])
.heated()
.recipeTier(tfcProperty.getTier() < 4 ? 0 : 1)
.id(`greate:compacting/${material.getName()}_helmet`)
//#endregion
//#region Нагрудник
@ -138,6 +154,11 @@ function registerTFCMaterialsRecipes(event) {
.tier(tfcProperty.getTier())
.id(`tfc:welding/${material.getName()}_chestplate`)
event.recipes.greate.compacting(`tfc:metal/chestplate/${material.getName()}`, [`tfc:metal/unfinished_chestplate/${material.getName()}`, doublePlateItem, 'tfc:powder/flux'])
.heated()
.recipeTier(tfcProperty.getTier() < 4 ? 0 : 1)
.id(`greate:compacting/${material.getName()}_chestplate`)
//#endregion
//#region Поножи
@ -163,6 +184,11 @@ function registerTFCMaterialsRecipes(event) {
.tier(tfcProperty.getTier())
.id(`tfc:welding/${material.getName()}_greaves`)
event.recipes.greate.compacting(`tfc:metal/greaves/${material.getName()}`, [`tfc:metal/unfinished_greaves/${material.getName()}`, plateItem, 'tfc:powder/flux'])
.heated()
.recipeTier(tfcProperty.getTier() < 4 ? 0 : 1)
.id(`greate:compacting/${material.getName()}_greaves`)
//#endregion
//#region Ботинки
@ -188,6 +214,11 @@ function registerTFCMaterialsRecipes(event) {
.tier(tfcProperty.getTier())
.id(`tfc:welding/${material.getName()}_boots`)
event.recipes.greate.compacting(`tfc:metal/boots/${material.getName()}`, [`tfc:metal/unfinished_boots/${material.getName()}`, plateItem, 'tfc:powder/flux'])
.heated()
.recipeTier(tfcProperty.getTier() < 4 ? 0 : 1)
.id(`greate:compacting/${material.getName()}_boots`)
//#endregion
}
@ -472,6 +503,10 @@ function registerTFCMaterialsRecipes(event) {
.tier(tfcProperty.getTier())
.id(`tfc:anvil/${material.getName()}_long_rod`)
event.recipes.greate.compacting(longRodItem, [rodItem, rodItem, 'tfc:powder/flux'])
.heated()
.recipeTier(tfcProperty.getTier() < 4 ? 0 : 1)
.id(`greate:compacting/${material.getName()}_long_rod`)
}
// Bolt
@ -943,6 +978,11 @@ function registerTFCMaterialsRecipes(event) {
event.recipes.tfc.welding(`tfc:metal/shears/${material.getName()}`, knifeHeadItem, knifeHeadItem, tfcProperty.getTier())
.id(`tfc:welding/${material.getName()}_shears`)
event.recipes.greate.compacting(`tfc:metal/shears/${material.getName()}`, [knifeHeadItem, knifeHeadItem, 'tfc:powder/flux'])
.heated()
.recipeTier(tfcProperty.getTier() < 4 ? 0 : 1)
.id(`greate:compacting/${material.getName()}_shears`)
// Декрафт инструмента в жидкость
event.recipes.tfc.heating(`tfc:metal/shears/${material.getName()}`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 288))

View file

@ -212,6 +212,11 @@ function registerTFCMetalsRecipes(event) {
event.recipes.tfc.welding('tfc:jacks', '#forge:rods/brass', '#forge:plates/brass', 2)
.id(`tfc:welding/jacks`)
event.recipes.greate.compacting('tfc:jacks', ['#forge:rods/brass', '#forge:plates/brass', 'tfc:powder/flux'])
.heated()
.recipeTier(0)
.id('greate:compacting/jacks')
// Декрафт Jacks
event.recipes.tfc.heating('tfc:jacks', 930)
.resultFluid(Fluid.of('gtceu:brass', 144))

View file

@ -32,29 +32,41 @@ function registerTFCSandRecipes(event) {
// Песчанник -> Песок
event.recipes.gtceu.forge_hammer(`raw_${sandColor}_sandstone_to_sand`)
.itemInputs(`tfc:raw_sandstone/${sandColor}`)
.itemOutputs(`tfc:sand/${sandColor}`)
.duration(400)
.itemOutputs(`4x tfc:sand/${sandColor}`)
.duration(200)
.EUt(2)
event.recipes.greate.pressing(`4x tfc:sand/${sandColor}`, `tfc:raw_sandstone/${sandColor}`)
.recipeTier(1)
.id(`greate:pressing/raw_${sandColor}_sandstone_to_sand`)
// Гладкий песчанник -> Песок
event.recipes.gtceu.forge_hammer(`smooth_${sandColor}_sandstone_to_sand`)
.itemInputs(`tfc:smooth_sandstone/${sandColor}`)
.itemOutputs(`tfc:sand/${sandColor}`)
.duration(400)
.itemOutputs(`4x tfc:sand/${sandColor}`)
.duration(200)
.EUt(2)
event.recipes.greate.pressing(`4x tfc:sand/${sandColor}`, `tfc:smooth_sandstone/${sandColor}`)
.recipeTier(1)
.id(`greate:pressing/smooth_${sandColor}_sandstone_to_sand`)
// Обрезанный песчанник -> Песок
event.recipes.gtceu.forge_hammer(`cut_${sandColor}_sandstone_to_sand`)
.itemInputs(`tfc:cut_sandstone/${sandColor}`)
.itemOutputs(`tfc:sand/${sandColor}`)
.duration(400)
.itemOutputs(`4x tfc:sand/${sandColor}`)
.duration(200)
.EUt(2)
event.recipes.greate.pressing(`4x tfc:sand/${sandColor}`, `tfc:cut_sandstone/${sandColor}`)
.recipeTier(1)
.id(`greate:pressing/cut_${sandColor}_sandstone_to_sand`)
// Песок -> Песчанник
event.recipes.gtceu.compressor(`sand_${sandColor}_to_sandstone`)
.itemInputs(`4x tfc:sand/${sandColor}`)
.itemOutputs(`tfc:raw_sandstone/${sandColor}`)
.duration(800)
.duration(400)
.EUt(2)
// Песчанник -> Гладкий песчанник
@ -125,49 +137,76 @@ function registerTFCSandRecipes(event) {
event.recipes.gtceu.forge_hammer('brown_gravel_to_sand')
.itemInputs('#tfc:brown_gravel')
.itemOutputs('tfc:sand/brown')
.duration(400)
.duration(200)
.EUt(2)
event.recipes.greate.pressing('tfc:sand/brown', '#tfc:brown_gravel')
.recipeTier(1)
.id(`greate:pressing/brown_gravel_to_sand`)
// Белый гравий -> Песок
event.recipes.gtceu.forge_hammer('white_gravel_to_sand')
.itemInputs('#tfc:white_gravel')
.itemOutputs('tfc:sand/white')
.duration(400)
.duration(200)
.EUt(2)
event.recipes.greate.pressing('tfc:sand/white', '#tfc:white_gravel')
.recipeTier(1)
.id(`greate:pressing/white_gravel_to_sand`)
// Черный гравий -> Песок
event.recipes.gtceu.forge_hammer('black_gravel_to_sand')
.itemInputs('#tfc:black_gravel')
.itemOutputs('tfc:sand/black')
.duration(400)
.duration(200)
.EUt(2)
event.recipes.greate.pressing('tfc:sand/black', '#tfc:black_gravel')
.recipeTier(1)
.id(`greate:pressing/black_gravel_to_sand`)
// Красный гравий -> Песок
event.recipes.gtceu.forge_hammer('red_gravel_to_sand')
.itemInputs('#tfc:red_gravel')
.itemOutputs('tfc:sand/red')
.duration(400)
.duration(200)
.EUt(2)
event.recipes.greate.pressing('tfc:sand/red', '#tfc:red_gravel')
.recipeTier(1)
.id(`greate:pressing/red_gravel_to_sand`)
// Желтый гравий -> Песок
event.recipes.gtceu.forge_hammer('yellow_gravel_to_sand')
.itemInputs('#tfc:yellow_gravel')
.itemOutputs('tfc:sand/yellow')
.duration(400)
.duration(200)
.EUt(2)
event.recipes.greate.pressing('tfc:sand/yellow', '#tfc:yellow_gravel')
.recipeTier(1)
.id(`greate:pressing/yellow_gravel_to_sand`)
// Зеленый гравий -> Песок
event.recipes.gtceu.forge_hammer('green_gravel_to_sand')
.itemInputs('#tfc:green_gravel')
.itemOutputs('tfc:sand/green')
.duration(400)
.duration(200)
.EUt(2)
event.recipes.greate.pressing('tfc:sand/green', '#tfc:green_gravel')
.recipeTier(1)
.id(`greate:pressing/green_gravel_to_sand`)
// Розовый гравий -> Песок
event.recipes.gtceu.forge_hammer('pink_gravel_to_sand')
.itemInputs('#tfc:pink_gravel')
.itemOutputs('tfc:sand/pink')
.duration(400)
.duration(200)
.EUt(2)
event.recipes.greate.pressing('tfc:sand/pink', '#tfc:pink_gravel')
.recipeTier(1)
.id(`greate:pressing/pink_gravel_to_sand`)
}

View file

@ -31,6 +31,10 @@ function registerTFCStoneRecipes(event) {
.duration(10)
.EUt(16)
event.recipes.greate.pressing(`tfc:rock/cobble/${stone}`, `tfc:rock/raw/${stone}`)
.recipeTier(1)
.id(`greate:pressing/${stone}_raw_to_cobble`)
// ? -> Сырая нажимная пластина
event.shaped(`tfc:rock/pressure_plate/${stone}`, [
' B ',
@ -174,6 +178,10 @@ function registerTFCStoneRecipes(event) {
.duration(10)
.EUt(16)
event.recipes.greate.pressing(`tfc:rock/gravel/${stone}`, `tfc:rock/cobble/${stone}`)
.recipeTier(1)
.id(`greate:pressing/${stone}_cobble_to_gravel`)
// Камни -> Булыжник
event.shaped(`tfc:rock/cobble/${stone}`, [
'ABA',
@ -215,6 +223,10 @@ function registerTFCStoneRecipes(event) {
.duration(25)
.EUt(8)
event.recipes.greate.pressing(`tfc:rock/cracked_bricks/${stone}`, `tfc:rock/bricks/${stone}`)
.recipeTier(1)
.id(`greate:pressing/cracked_bricks_${stone}`)
//#endregion
//#region Замшелый булыжник

View file

@ -110,8 +110,9 @@ function registerTFGPapermakingRecipes(event) {
//Beat thermochemically treated hardwood dust into soaked unrefined paper
event.recipes.tfc.anvil('tfg:soaked_unrefined_paper', 'gtceu:thermochemically_treated_hardwood_dust', ['hit_last', 'hit_last', 'hit_last'])
.id('tfg:anvil/soaked_unrefined_paper')
event.recipes.createDeploying(Item.of('tfg:soaked_unrefined_paper').withChance(0.8), ['gtceu:thermochemically_treated_hardwood_dust', '#forge:tools/hammers'])
.id('tfg:pressing/soaked_unrefined_paper')
event.recipes.greate.pressing(Item.of('tfg:soaked_unrefined_paper'), 'gtceu:thermochemically_treated_hardwood_dust')
.recipeTier(0)
.id('greate:pressing/soaked_unrefined_paper')
event.custom({
type: "firmalife:stomping",
ingredient: {

View file

@ -145,6 +145,10 @@ function registerTFGRockRecipes(event) {
.itemOutputs(x.cracked)
.duration(12)
.EUt(8)
event.recipes.greate.pressing(x.cracked, x.raw)
.recipeTier(1)
.id(`greate:pressing/${x.raw}_to_${x.cracked}`.replace(/:/g, '_'))
})
// forge hammer
@ -183,6 +187,10 @@ function registerTFGRockRecipes(event) {
.itemOutputs(x.hammered)
.duration(12)
.EUt(8)
event.recipes.greate.pressing(x.hammered, x.raw)
.recipeTier(1)
.id(`greate:pressing/${x.raw}_to_${x.hammered}`.replace(/:/g, '_'))
})
// slabs, stairs, walls

View file

@ -138,8 +138,15 @@ const registerTFGItemTags = (event) => {
global.UNIVERSAL_CIRCUIT_TIERS.forEach(tier => { event.add(`gtceu:circuits/${tier}`, `tfg:${tier}_universal_circuit`); })
// Use either cast or wrought iron
event.add('forge:double_iron_ingots', '#forge:double_ingots/iron')
event.add('forge:double_iron_ingots', '#forge:double_ingots/wrought_iron')
event.add('tfg:any_iron_double_ingot', '#forge:double_ingots/iron')
event.add('tfg:any_iron_double_ingot', '#forge:double_ingots/wrought_iron')
event.add('tfg:any_iron_plate', '#forge:double_plates/iron')
event.add('tfg:any_iron_plate', '#forge:double_plates/wrought_iron')
event.add('tfg:any_bronze_frame', '#forge:frames/bronze')
event.add('tfg:any_bronze_frame', '#forge:frames/bismuth_bronze')
event.add('tfg:any_bronze_frame', '#forge:frames/black_bronze')
//#region Food
const RAW_MEATS = [

View file

@ -82,39 +82,13 @@ function registerVintageImprovementsRecipes(event) {
'BBE',
'C D'
], {
A: '#forge:frames/bronze',
A: '#tfg:any_bronze_frame',
B: '#tfg:hardwood',
C: '#forge:double_iron_ingots',
C: '#tfg:any_iron_double_ingot',
D: 'greate:andesite_alloy_cogwheel',
E: '#minecraft:planks',
F: '#forge:tools/hammers'
}).id('tfg:vi/shaped/helve_hammer_bronze')
event.shaped('vintageimprovements:helve_hammer', [
'F A',
'BBE',
'C D'
], {
A: '#forge:frames/black_bronze',
B: '#tfg:hardwood',
C: '#forge:double_iron_ingots',
D: 'greate:andesite_alloy_cogwheel',
E: '#minecraft:planks',
F: '#forge:tools/hammers'
}).id('tfg:vi/shaped/helve_hammer_black_bronze')
event.shaped('vintageimprovements:helve_hammer', [
'F A',
'BBE',
'C D'
], {
A: '#forge:frames/bismuth_bronze',
B: '#tfg:hardwood',
C: '#forge:double_iron_ingots',
D: 'greate:andesite_alloy_cogwheel',
E: '#minecraft:planks',
F: '#forge:tools/hammers'
}).id('tfg:vi/shaped/helve_hammer_bismuth_bronze')
}).id('tfg:vi/shaped/helve_hammer')
event.recipes.create.mechanical_crafting('vintageimprovements:lathe', [
'DEEFE',
@ -414,32 +388,6 @@ function registerVintageImprovementsRecipes(event) {
}
// #endregion
// #region Pressurizing
if (material.hasFlag(TFGMaterialFlags.GENERATE_DOUBLE_INGOTS)) {
const ingotItem = ChemicalHelper.get(TagPrefix.ingot, material, 1);
event.custom({
type: 'vintageimprovements:pressurizing',
ingredients: [ingotItem, ingotItem, { item: 'tfc:powder/flux' }],
heatRequirement: "heated",
results: [ChemicalHelper.get(TFGTagPrefix.ingotDouble, material, 1)],
processingTime: material.getMass() * 6 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER
}).id(`tfg:vi/pressurizing/${material.getName()}_double_ingot`)
const plateItem = ChemicalHelper.get(TagPrefix.plate, material, 1);
event.custom({
type: 'vintageimprovements:pressurizing',
ingredients: [plateItem, plateItem, { item: 'tfc:powder/flux' }],
heatRequirement: "heated",
results: [ChemicalHelper.get(TagPrefix.plateDouble, material, 1)],
processingTime: material.getMass() * 6 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER
}).id(`tfg:vi/pressurizing/${material.getName()}_double_plate`)
}
// #endregion
})