more unification for #898, also a workaround for #963 maybe?

This commit is contained in:
Pyritie 2025-07-07 18:54:55 +01:00
parent 4fa02ec0c9
commit df173e17ab
11 changed files with 243 additions and 145 deletions

View file

@ -10,14 +10,8 @@ const registerComfortsRecipes = (event) => {
.id("comforts:crafting/shaped/rope_and_nail");
//sleeping bag
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped("comforts:sleeping_bag_white", [
"AAA",
"B "
], {
A: "#tfc:high_quality_cloth",
B: 'tfc:bone_needle'
})
event.recipes.tfc.damage_inputs_shapeless_crafting(
event.shapeless("comforts:sleeping_bag_white", [ "3x #tfc:high_quality_cloth", 'tfc:bone_needle' ])
).id('comforts:shaped/sleeping_bag_white');
event.shaped("comforts:hammock_white", [

View file

@ -4,45 +4,39 @@ function registerCreateHorsePowerBlockRecipes(event) {
event.remove({id: 'createhorsepower:horse_crank' })
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('createhorsepower:horse_crank', [
' A ',
'EBD',
'CCC'
], {
A: '#forge:fences/wooden',
B: '#forge:small_gears/bronze',
C: '#tfc:rock/raw',
D: '#forge:tools/hammers',
E: '#tfc:chisels'
})
).id('tfg:shaped/horse_crank_bronze')
event.shaped('createhorsepower:horse_crank', [
' A ',
'EBD',
'CCC'
], {
A: '#forge:fences/wooden',
B: '#forge:small_gears/bronze',
C: '#tfc:rock/raw',
D: '#forge:tools/hammers',
E: '#forge:tools/saws'
}).id('tfg:shaped/horse_crank_bronze')
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('createhorsepower:horse_crank', [
' A ',
'EBD',
'CCC'
], {
A: '#forge:fences/wooden',
B: '#forge:small_gears/bismuth_bronze',
C: '#tfc:rock/raw',
D: '#forge:tools/hammers',
E: '#tfc:chisels'
})
).id('tfg:shaped/horse_crank_bismuth_bronze')
event.shaped('createhorsepower:horse_crank', [
' A ',
'EBD',
'CCC'
], {
A: '#forge:fences/wooden',
B: '#forge:small_gears/bismuth_bronze',
C: '#tfc:rock/raw',
D: '#forge:tools/hammers',
E: '#forge:tools/saws'
}).id('tfg:shaped/horse_crank_bismuth_bronze')
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('createhorsepower:horse_crank', [
' A ',
'EBD',
'CCC'
], {
A: '#forge:fences/wooden',
B: '#forge:small_gears/black_bronze',
C: '#tfc:rock/raw',
D: '#forge:tools/hammers',
E: '#tfc:chisels'
})
).id('tfg:shaped/horse_crank_black_bronze')
event.shaped('createhorsepower:horse_crank', [
' A ',
'EBD',
'CCC'
], {
A: '#forge:fences/wooden',
B: '#forge:small_gears/black_bronze',
C: '#tfc:rock/raw',
D: '#forge:tools/hammers',
E: '#forge:tools/saws'
}).id('tfg:shaped/horse_crank_black_bronze')
}

View file

@ -363,7 +363,7 @@ function registerGreateRecipes(event) {
'FE '
], {
A: '#gtceu:circuits/ulv',
B: 'gtceu:cobalt_brass_buzz_saw_blade',
B: 'gtceu:black_steel_buzz_saw_blade',
C: 'greate:steel_cogwheel',
D: 'gtceu:ulv_machine_hull',
E: 'greate:steel_shaft',
@ -371,7 +371,7 @@ function registerGreateRecipes(event) {
}).id('greate:shaped/steel_mechanical_saw')
event.recipes.gtceu.assembler('greate:steel_mechanical_saw')
.itemInputs('gtceu:ulv_machine_hull', 'greate:steel_shaft', '2x #gtceu:circuits/ulv', 'gtceu:cobalt_brass_buzz_saw_blade', '2x greate:steel_cogwheel')
.itemInputs('gtceu:ulv_machine_hull', 'greate:steel_shaft', '2x #gtceu:circuits/ulv', 'gtceu:black_steel_buzz_saw_blade', '2x greate:steel_cogwheel')
.itemOutputs('greate:steel_mechanical_saw')
.duration(200)
.EUt(GTValues.VA[GTValues.ULV])

View file

@ -358,7 +358,7 @@ function registerGreateRecyclingRecipes(event) {
event.recipes.gtceu.macerator('greate:andesite_alloy_mechanical_saw')
.itemInputs('greate:andesite_alloy_mechanical_saw')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.WroughtIron, 7),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.WroughtIron, 5),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Wood, 1))
.duration(GTMaterials.WroughtIron.getMass() * 7)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
@ -367,7 +367,7 @@ function registerGreateRecyclingRecipes(event) {
event.recipes.gtceu.arc_furnace('greate:andesite_alloy_mechanical_saw')
.itemInputs('greate:andesite_alloy_mechanical_saw')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.WroughtIron, 7),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.WroughtIron, 5),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Ash, 1))
.duration(GTMaterials.WroughtIron.getMass() * 7)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
@ -377,7 +377,7 @@ function registerGreateRecyclingRecipes(event) {
.itemInputs('greate:steel_mechanical_saw')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.WroughtIron, 8),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.CobaltBrass, 4),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.BlackSteel, 2),
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Copper, 4))
.duration(GTMaterials.CobaltBrass.getMass() * 16)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
@ -387,7 +387,7 @@ function registerGreateRecyclingRecipes(event) {
.itemInputs('greate:steel_mechanical_saw')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.WroughtIron, 8),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.CobaltBrass, 4),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.BlackSteel, 2),
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.AnnealedCopper, 4))
.duration(GTMaterials.CobaltBrass.getMass() * 16)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)

View file

@ -8,17 +8,45 @@ function registerGTCEUMetalRecipes(event) {
return
const toolHeadItem = ChemicalHelper.get(headTagPrefix, material, 1)
if (toolHeadItem.isEmpty())
if (toolHeadItem.isEmpty())
return
// Skip this one because it has a duping bug, and you can't remove the macerator/arc furnace iron pick recipes
if (material == GTMaterials.Iron)
return;
event.recipes.tfc.advanced_shapeless_crafting(
TFC.itemStackProvider.of(toolItem).copyForgingBonus().copyHeat(),
[toolHeadItem, '#forge:rods/wooden'], toolHeadItem)
.id(`gtceu:shaped/${toolType.name}_${material.getName()}`)
if (toolType == GTToolType.WRENCH) {
event.recipes.tfc.advanced_shaped_crafting(
TFC.itemStackProvider.of(toolItem).copyForgingBonus().copyHeat(), [
'ABC',
'DB '
], {
A: toolHeadItem,
B: `#forge:rods/${material.getName()}`,
C: '#forge:tools/screwdrivers',
D: `#forge:bolts/${material.getName()}`
}, 0, 0)
.id(`gtceu:shaped/${toolType.name}_${material.getName()}`)
}
else if (toolType == GTToolType.WIRE_CUTTER) {
event.recipes.tfc.advanced_shaped_crafting(
TFC.itemStackProvider.of(toolItem).copyForgingBonus().copyHeat(), [
' AD',
'CBC'
], {
A: toolHeadItem,
B: `#forge:small_springs`,
C: `#forge:rods/${material.getName()}`,
D: '#forge:tools/screwdrivers'
}, 0, 1)
.id(`gtceu:shaped/${toolType.name}_${material.getName()}`)
}
else {
event.recipes.tfc.advanced_shapeless_crafting(
TFC.itemStackProvider.of(toolItem).copyForgingBonus().copyHeat(),
[toolHeadItem, '#forge:rods/wooden'], toolHeadItem)
.id(`gtceu:shaped/${toolType.name}_${material.getName()}`)
}
processToolHead(headTagPrefix, extruderMold, cirucitMeta, material)
}
@ -28,56 +56,52 @@ function registerGTCEUMetalRecipes(event) {
if (toolHeadItem.isEmpty())
return
event.remove({ mod: 'gtceu', type: 'minecraft:crafting_shaped', output: toolHeadItem })
if (material.hasProperty(PropertyKey.INGOT)) {
const ingotItem = ChemicalHelper.get(TagPrefix.ingot, material, 1)
if (ingotItem.isEmpty()) return
const materialAmount = Math.floor(headTagPrefix.materialAmount() / GTValues.M) == 1 ? 1 : 2;
event.recipes.gtceu.extruder(`tfg:extrude_${material.getName()}_ingot_to_${new String(headTagPrefix.name).toLowerCase()}_head`)
.itemInputs(ingotItem.copyWithCount(Math.floor(headTagPrefix.materialAmount() / GTValues.M)))
.itemInputs(ingotItem.copyWithCount(materialAmount))
.notConsumable(extruderMold)
.itemOutputs(toolHeadItem)
.duration(material.getMass() * 6)
.EUt(GTValues.VA[GTValues.LV])
if (headTagPrefix.materialAmount() / GTValues.M == 1) {
event.custom({
type: 'vintageimprovements:curving',
ingredients: [ingotItem],
itemAsHead: extruderMold,
results: [toolHeadItem],
processingTime: material.getMass() * 6 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER
}).id(`tfg:vi/curving/${material.getName()}_ingot_to_${new String(headTagPrefix.name).toLowerCase()}_head`)
}
else {
event.custom({
type: 'vintageimprovements:curving',
// have to do [item, item] instead of [item x2]
ingredients: [ingotItem, ingotItem],
itemAsHead: extruderMold,
results: [toolHeadItem],
processingTime: material.getMass() * 6 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER
}).id(`tfg:vi/curving/${material.getName()}_ingot_to_${new String(headTagPrefix.name).toLowerCase()}_head`)
}
let ingotArray = [];
for (var i = 0; i < materialAmount; i++)
ingotArray.push(ingotItem)
event.custom({
type: 'vintageimprovements:curving',
ingredients: ingotArray,
itemAsHead: extruderMold,
results: [toolHeadItem],
processingTime: material.getMass() * 6 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER
}).id(`tfg:vi/curving/${material.getName()}_ingot_to_${new String(headTagPrefix.name).toLowerCase()}_head`)
event.recipes.gtceu.macerator(`tfg:macerate_${material.getName()}_${new String(headTagPrefix.name).toLowerCase()}_head`)
.itemInputs(toolHeadItem)
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, material, 1))
.duration(material.getMass() * 6)
.itemOutputs(ChemicalHelper.get(TagPrefix.dust, material, materialAmount))
.duration(material.getMass() * 6 * materialAmount)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace(`tfg:arc_furnace_${material.getName()}_${new String(headTagPrefix.name).toLowerCase()}_head`)
.itemInputs(toolHeadItem)
.itemOutputs(ChemicalHelper.get(TagPrefix.ingot, material, 1))
.duration(material.getMass() * 6)
.itemOutputs(ChemicalHelper.get(TagPrefix.ingot, material, materialAmount))
.duration(material.getMass() * 6 * materialAmount)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
if (GTMaterials.Stone != material) {
event.recipes.gtceu.extractor(`tfg:extract_${material.getName()}_${new String(headTagPrefix.name).toLowerCase()}_head`)
.itemInputs(toolHeadItem)
.outputFluids(Fluid.of(material.getFluid(), 144))
.duration(material.getMass() * 6)
.outputFluids(Fluid.of(material.getFluid(), materialAmount * 144))
.duration(material.getMass() * 6 * materialAmount)
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
.EUt(material.hasProperty(PropertyKey.BLAST) ? GTValues.VA[GTValues.MV] : GTValues.VA[GTValues.ULV])
}
@ -131,9 +155,8 @@ function registerGTCEUMetalRecipes(event) {
if (material.hasFlag(MaterialFlags.GENERATE_PLATE)
&& material != GTMaterials.Wood
&& material != GTMaterials.TreatedWood
&& !material.hasProperty(PropertyKey.POLYMER))
{
&& material != GTMaterials.TreatedWood
&& !material.hasProperty(PropertyKey.POLYMER)) {
const plateStack = ChemicalHelper.get(TagPrefix.plate, material, 1)
const blockStack = ChemicalHelper.get(TagPrefix.block, material, 1)
@ -440,7 +463,7 @@ function registerGTCEUMetalRecipes(event) {
// Quern
event.recipes.tfc.quern(crushedOreItem, normalOreItem)
.id(`tfg:quern/${material.getName()}_crushed_ore_from_normal_raw_ore`)
// Smelting
if (!material.hasProperty(PropertyKey.BLAST)) {
event.smelting(ingotItem, normalOreItem).id(`gtceu:smelting/smelt_raw_${material.getName()}_ore_to_ingot`)
@ -469,7 +492,7 @@ function registerGTCEUMetalRecipes(event) {
ingotItem = ChemicalHelper.get(TagPrefix.gem, smeltingMaterial, multiplier)
else
ingotItem = ChemicalHelper.get(TagPrefix.dust, smeltingMaterial, multiplier)
// Forge hammer
let hammerRecipe = event.recipes.gtceu.forge_hammer(`hammer_rich_raw_${material.getName()}_to_crushed_ore`)
.itemInputs(richOreItem)
@ -503,11 +526,11 @@ function registerGTCEUMetalRecipes(event) {
.category(GTRecipeCategories.ORE_CRUSHING)
.duration(400)
.EUt(2)
// Quern
event.recipes.tfc.quern(crushedOreItem, richOreItem)
.id(`tfg:quern/${material.getName()}_crushed_ore_from_rich_raw_ore`)
// Smelting
if (!material.hasProperty(PropertyKey.BLAST)) {
event.smelting(ingotItem, richOreItem).id(`gtceu:smelting/smelt_rich_raw_${material.getName()}_ore_to_ingot`)
@ -520,14 +543,14 @@ function registerGTCEUMetalRecipes(event) {
const pureOreItem = ChemicalHelper.get(TagPrefix.crushedPurified, material, 1)
if (crushedOreItem != null && pureOreItem != null) {
// Bulk washing
let byproductMaterial = material.getProperty(PropertyKey.ORE).getOreByProduct(0, material);
const byproductItem = ChemicalHelper.get(TagPrefix.dust, byproductMaterial, 1)
event.recipes.greate.splashing([pureOreItem, TieredOutputItem.of(byproductItem).withChance(0.333), 'gtceu:stone_dust'], crushedOreItem)
.id(`tfg:splashing/${material.getName()}_purified_ore`)
// Dropping in water
event.custom({
type: "ae2:transform",
@ -576,7 +599,7 @@ function registerGTCEUMetalRecipes(event) {
const dustItem = ChemicalHelper.get(TagPrefix.dust, material, 1)
if (impureDustItem != null && dustItem != null) {
// Bulk washing
event.recipes.greate.splashing(dustItem, impureDustItem)
.id(`tfg:splashing/${material.getName()}_dust_from_impure`)
@ -655,8 +678,8 @@ function registerGTCEUMetalRecipes(event) {
.id(`shapeless/${material.getName()}_bud_indicator`)
event.shaped(smallDust,
[ 'A', 'B' ],
{ A: chipped, B: '#forge:tools/mortars'})
['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))
@ -666,7 +689,7 @@ function registerGTCEUMetalRecipes(event) {
const processAnvil = (material) => {
const anvilStack = ChemicalHelper.get(TFGTagPrefix.anvil, material, 1)
if (anvilStack == null)
if (anvilStack == null)
return;
event.recipes.gtceu.macerator(`tfg:macerate_${material.getName()}_anvil`)
@ -708,7 +731,7 @@ function registerGTCEUMetalRecipes(event) {
const processLamp = (material) => {
const finishedLampStack = ChemicalHelper.get(TFGTagPrefix.lamp, material, 1)
if (finishedLampStack == null)
if (finishedLampStack == null)
return;
const materialDustStack = ChemicalHelper.get(TagPrefix.dust, material, 1)
@ -922,7 +945,7 @@ function registerGTCEUMetalRecipes(event) {
const processBars = (material) => {
const barsStack = ChemicalHelper.get(TFGTagPrefix.bars, material, 4)
const ingotStack = ChemicalHelper.get(TagPrefix.ingot, material, 1)
const ingotStack = ChemicalHelper.get(TagPrefix.ingot, material, 1)
if (barsStack == null)
return;
@ -933,36 +956,52 @@ function registerGTCEUMetalRecipes(event) {
.EUt(GTValues.VA[GTValues.LV])
}
const processBuzzsawBlade = (material) => {
const buzzsawBladeItem = ChemicalHelper.get(TagPrefix.toolHeadBuzzSaw, material, 1)
const doublePlateItem = ChemicalHelper.get(TagPrefix.plateDouble, material, 2)
if (buzzsawBladeItem == null || doublePlateItem == null)
return;
event.recipes.gtceu.lathe(`buzzsaw_gear_${material.getName()}`)
.itemInputs(doublePlateItem)
.itemOutputs(buzzsawBladeItem)
.duration(material.getMass() * 6)
.EUt(GTValues.VA[GTValues.MV])
event.remove({ id: `gtceu:shaped/buzzsaw_blade_${material.getName()}` })
}
forEachMaterial(material => {
const toolProperty = material.getProperty(PropertyKey.TOOL)
const ingotProperty = material.getProperty(PropertyKey.INGOT)
const oreProperty = material.getProperty(PropertyKey.ORE)
if (toolProperty != null) {
makeToolRecipe(GTToolType.SWORD, TFGTagPrefix.toolHeadSword, 'tfg:sword_head_extruder_mold', 1, material)
makeToolRecipe(GTToolType.PICKAXE, TFGTagPrefix.toolHeadPickaxe, 'tfg:pickaxe_head_extruder_mold', 2, material)
makeToolRecipe(GTToolType.AXE, TFGTagPrefix.toolHeadAxe, 'tfg:axe_head_extruder_mold', 3, material)
makeToolRecipe(GTToolType.SHOVEL, TFGTagPrefix.toolHeadShovel, 'tfg:shovel_head_extruder_mold', 4, material)
makeToolRecipe(GTToolType.HOE, TFGTagPrefix.toolHeadHoe, 'tfg:hoe_head_extruder_mold', 5, material)
makeToolRecipe(GTToolType.KNIFE, TFGTagPrefix.toolHeadKnife, 'tfg:knife_head_extruder_mold', 6, material)
makeToolRecipe(GTToolType.FILE, TFGTagPrefix.toolHeadFile, 'tfg:file_head_extruder_mold', 7, material)
makeToolRecipe(GTToolType.SAW, TFGTagPrefix.toolHeadSaw, 'tfg:saw_head_extruder_mold', 8, material)
makeToolRecipe(GTToolType.SPADE, TFGTagPrefix.toolHeadSpade, 'tfg:spade_head_extruder_mold', 9, material)
makeToolRecipe(GTToolType.MINING_HAMMER, TFGTagPrefix.toolHeadMiningHammer, 'tfg:mining_hammer_head_extruder_mold', 10, material)
makeToolRecipe(GTToolType.SCYTHE, TFGTagPrefix.toolHeadScythe, 'tfg:scythe_head_extruder_mold', 11, material)
makeToolRecipe(GTToolType.HARD_HAMMER, TFGTagPrefix.toolHeadHammer, 'tfg:hammer_head_extruder_mold', 12, material)
makeToolRecipe(GTToolType.SCREWDRIVER, TagPrefix.toolHeadScrewdriver, 'tfg:screwdriver_tip_extruder_mold', 14, material)
let circuit = 1;
makeToolRecipe(GTToolType.SWORD, TFGTagPrefix.toolHeadSword, 'tfg:sword_head_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.PICKAXE, TFGTagPrefix.toolHeadPickaxe, 'tfg:pickaxe_head_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.AXE, TFGTagPrefix.toolHeadAxe, 'tfg:axe_head_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.SHOVEL, TFGTagPrefix.toolHeadShovel, 'tfg:shovel_head_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.HOE, TFGTagPrefix.toolHeadHoe, 'tfg:hoe_head_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.KNIFE, TFGTagPrefix.toolHeadKnife, 'tfg:knife_head_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.FILE, TFGTagPrefix.toolHeadFile, 'tfg:file_head_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.SAW, TFGTagPrefix.toolHeadSaw, 'tfg:saw_head_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.SPADE, TFGTagPrefix.toolHeadSpade, 'tfg:spade_head_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.MINING_HAMMER, TFGTagPrefix.toolHeadMiningHammer, 'tfg:mining_hammer_head_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.SCYTHE, TFGTagPrefix.toolHeadScythe, 'tfg:scythe_head_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.HARD_HAMMER, TFGTagPrefix.toolHeadHammer, 'tfg:hammer_head_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.SCREWDRIVER, TagPrefix.toolHeadScrewdriver, 'tfg:screwdriver_tip_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.WRENCH, TagPrefix.toolHeadWrench, 'tfg:wrench_tip_extruder_mold', circuit++, material)
makeToolRecipe(GTToolType.WIRE_CUTTER, TagPrefix.toolHeadWireCutter, 'tfg:wire_cutter_extruder_mold', circuit++, material)
processToolMortar(GTToolType.MORTAR, material)
processToolHead(TagPrefix.toolHeadWrench, 'tfg:wrench_tip_extruder_mold', 15, material)
processToolHead(TFGTagPrefix.toolHeadPropick, 'tfg:propick_head_extruder_mold', 16, material)
processToolHead(TFGTagPrefix.toolHeadJavelin, 'tfg:javelin_head_extruder_mold', 17, material)
processToolHead(TFGTagPrefix.toolHeadChisel, 'tfg:chisel_head_extruder_mold', 18, material)
processToolHead(TFGTagPrefix.toolHeadMace, 'tfg:mace_head_extruder_mold', 19, material)
processToolHead(TFGTagPrefix.toolHeadMattock, 'tfg:mattock_head_extruder_mold', 20, material)
processToolHead(TFGTagPrefix.toolHeadHook, 'tfg:fish_hook_extruder_mold', 21, material)
processToolHead(TFGTagPrefix.toolHeadPropick, 'tfg:propick_head_extruder_mold', circuit++, material)
processToolHead(TFGTagPrefix.toolHeadJavelin, 'tfg:javelin_head_extruder_mold', circuit++, material)
processToolHead(TFGTagPrefix.toolHeadChisel, 'tfg:chisel_head_extruder_mold', circuit++, material)
processToolHead(TFGTagPrefix.toolHeadMace, 'tfg:mace_head_extruder_mold', circuit++, material)
processToolHead(TFGTagPrefix.toolHeadMattock, 'tfg:mattock_head_extruder_mold', circuit++, material)
processToolHead(TFGTagPrefix.toolHeadHook, 'tfg:fish_hook_extruder_mold', circuit++, material)
}
if (ingotProperty != null) {
@ -980,6 +1019,7 @@ function registerGTCEUMetalRecipes(event) {
processChain(material)
processBell(material)
processBars(material)
processBuzzsawBlade(material)
}
if (oreProperty != null) {
@ -998,9 +1038,9 @@ function registerGTCEUMetalRecipes(event) {
if (material.hasProperty(PropertyKey.GEM)) {
processGems(material)
}
// Indicators
event.replaceInput({ id: `gtceu:shaped/${material.getName()}_surface_indicator`},
event.replaceInput({ id: `gtceu:shaped/${material.getName()}_surface_indicator` },
'minecraft:gravel', '#tfc:rock/gravel')
}
})

View file

@ -14,7 +14,6 @@ ServerEvents.tags('item', event => {
registerBeneathItemTags(event)
registerBetterEndItemTags(event)
registerChalkItemTags(event);
registerChiselAndBitsItemTags(event)
registerComputerCraftItemTags(event)
registerConstructionWandItemTags(event)
registerCreateItemTags(event)
@ -60,7 +59,6 @@ ServerEvents.tags('block', event => {
registerAFCBlockTags(event)
registerAsticorCartsBlockTags(event)
registerBeneathBlockTags(event)
registerChiselAndBitsBlockTags(event)
registerComputerCraftBlockTags(event)
registerCreateBlockTags(event)
registerCreateAdditionsBlockTags(event)
@ -203,7 +201,6 @@ ServerEvents.recipes(event => {
registerBetterEndRecipes(event)
registerBuildingGadgetsRecipes(event)
registerChalkRecipes(event);
registerChiselAndBitsRecipes(event)
registerComfortsRecipes(event);
registerComputerCraftRecipes(event)
//registerCccBridgeRecipes(event)

View file

@ -265,6 +265,17 @@ function registerTFCMaterialsRecipes(event) {
//#endregion
}
// Buzzsaw blade
let buzzsawBladeItem = ChemicalHelper.get(TagPrefix.toolHeadBuzzSaw, material, 1)
if (!buzzsawBladeItem.isEmpty()) {
event.recipes.tfc.heating(buzzsawBladeItem, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 288))
.id(`tfc:heating/metal/${material.getName()}_buzzsaw_blade`)
event.recipes.tfc.anvil(buzzsawBladeItem, doublePlateItem, ['bend_last', 'hit_second_last', 'draw_third_last'])
.tier(tfcProperty.getTier())
.id(`tfc:anvil/${material.getName()}_buzzsaw_blade`)
}
}
// Tools (From Plate)
@ -541,6 +552,7 @@ function registerTFCMaterialsRecipes(event) {
}
// Ring
let ringItem = ChemicalHelper.get(TagPrefix.ring, material, 1)
if (!ringItem.isEmpty()) {
@ -556,6 +568,35 @@ function registerTFCMaterialsRecipes(event) {
}
// Spring
let springItem = ChemicalHelper.get(TagPrefix.spring, material, 1)
if (!springItem.isEmpty() && !longRodItem.isEmpty()) {
event.recipes.tfc.heating(springItem, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 144))
.id(`tfc:heating/metal/${material.getName()}_spring`)
event.recipes.tfc.anvil(springItem, longRodItem, ['hit_last', 'bend_second_last', 'bend_third_last'])
.tier(tfcProperty.getTier())
.id(`tfc:anvil/${material.getName()}_spring`)
}
event.remove({ id: `gtceu:shaped/spring_${material.getName()}` })
// Small spring
let smallSpringItem = ChemicalHelper.get(TagPrefix.springSmall, material, 1)
if (!smallSpringItem.isEmpty() && !rodItem.isEmpty()) {
event.recipes.tfc.heating(smallSpringItem, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 72))
.id(`tfc:heating/metal/${material.getName()}_small_spring`)
event.recipes.tfc.anvil(smallSpringItem, rodItem, ['hit_last', 'bend_second_last', 'bend_third_last'])
.tier(tfcProperty.getTier())
.id(`tfc:anvil/${material.getName()}_small_spring`)
}
event.remove({ id: `gtceu:shaped/spring_small_${material.getName()}` })
}
// Tools (From Ingot)
@ -636,13 +677,32 @@ function registerTFCMaterialsRecipes(event) {
//#region wrench
event.recipes.tfc.heating(`gtceu:${material.getName()}_wrench`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 576))
.resultFluid(Fluid.of(outputMaterial.getFluid(), 288 + 144 + 18))
.useDurability(true)
.id(`gtceu:heating/metal/${material.getName()}_wrench`)
event.recipes.tfc.heating(`gtceu:${material.getName()}_wrench_tip`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 576))
.resultFluid(Fluid.of(outputMaterial.getFluid(), 288))
.id(`gtceu:heating/metal/${material.getName()}_wrench_tip`)
event.recipes.tfc.anvil(`gtceu:${material.getName()}_wrench_tip`, doubleIngotItem, ['draw_last', 'hit_second_last', 'hit_third_last'])
.tier(tfcProperty.getTier())
.id(`gtceu:anvil/${material.getName()}_wrench_tip`)
//#endregion
//#region wire cutters
event.recipes.tfc.heating(`gtceu:${material.getName()}_wire_cutter`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 288 + 144 + 18))
.useDurability(true)
.id(`gtceu:heating/metal/${material.getName()}_wire_cutter`)
event.recipes.tfc.heating(`gtceu:${material.getName()}_wire_cutter_head`, tfcProperty.getMeltTemp())
.resultFluid(Fluid.of(outputMaterial.getFluid(), 288))
.id(`gtceu:heating/metal/${material.getName()}_wire_cutter_head`)
event.recipes.tfc.anvil(`gtceu:${material.getName()}_wire_cutter_head`, doubleIngotItem, ['draw_last', 'hit_second_last', 'hit_third_last'])
.tier(tfcProperty.getTier())
.id(`gtceu:anvil/${material.getName()}_wire_cutter_head`)
//#endregion
//#region Топор
@ -1179,7 +1239,7 @@ function registerTFCMaterialsRecipes(event) {
let tongsStack = Item.of(`tfchotornot:tongs/${material.getName()}`)
let tongPartStack = Item.of(`tfchotornot:tong_part/${material.getName()}`)
if (!tongsStack.isEmpty() && !tongPartStack.isEmpty()) {
if (!tongsStack.isEmpty() && !tongPartStack.isEmpty() && material != GTMaterials.Iron) {
event.shaped(tongsStack, [
'AA',
'BC'

View file

@ -155,17 +155,15 @@ function registerTFGMiscellaneousRecipes(event) {
.EUt(GTValues.VA[GTValues.ULV]);
//Airship Balloon
event.recipes.tfc.damage_inputs_shaped_crafting(
event.shaped('tfg:airship_balloon', [
'ABA',
'BCB',
'ABA'
], {
A: '#forge:string',
B: 'immersive_aircraft:sail',
C: 'tfc:bone_needle'
})
).id('tfg:shaped/airship_balloon')
// TODO: Add the needle back here once #963 is fixed
event.shaped('tfg:airship_balloon', [
'ABA',
'BAB',
'ABA'
], {
A: '#forge:string',
B: 'immersive_aircraft:sail'
}).id('tfg:shaped/airship_balloon')
event.recipes.gtceu.assembler('tfg:assembler/airship_balloon')
.itemInputs('4x immersive_aircraft:sail', '4x #forge:string')

View file

@ -97,12 +97,12 @@ function registerTFGPapermakingRecipes(event) {
.id('tfg:quern/soaked_hardwood_strip')
//Cook hardwood dust in lye
generateVatRecipe('tfg:vat/thermochemically_treat_hardwood_dust', 'gtceu:hardwood_dust', 'tfc:lye', 300, 'gtceu:thermochemically_treated_hardwood_dust')
generateVatRecipe('tfg:vat/thermochemically_treat_small_hardwood_dust', 'gtceu:small_hardwood_dust', 'tfc:lye', 75, 'gtceu:small_thermochemically_treated_hardwood_dust')
generateVatRecipe('tfg:vat/thermochemically_treat_tiny_hardwood_dust', 'gtceu:tiny_hardwood_dust', 'tfc:lye', 33, 'gtceu:tiny_thermochemically_treated_hardwood_dust')
generatePotRecipe('thermochemically_treat_hardwood_dust', 3, 'gtceu:hardwood_dust', 'tfc:lye', 300, 'gtceu:thermochemically_treated_hardwood_dust', 600, 300)
generatePotRecipe('thermochemically_treat_small_hardwood_dust', 5, 'gtceu:small_hardwood_dust', 'tfc:lye', 75, 'gtceu:small_thermochemically_treated_hardwood_dust', 600, 300)
generatePotRecipe('thermochemically_treat_tiny_hardwood_dust', 5, 'gtceu:tiny_hardwood_dust', 'tfc:lye', 33, 'gtceu:tiny_thermochemically_treated_hardwood_dust', 600, 300)
generateVatRecipe('tfg:vat/thermochemically_treat_hardwood_dust', 'gtceu:hardwood_dust', 'tfc:lye', 250, 'gtceu:thermochemically_treated_hardwood_dust')
generateVatRecipe('tfg:vat/thermochemically_treat_small_hardwood_dust', 'gtceu:small_hardwood_dust', 'tfc:lye', 250, 'gtceu:small_thermochemically_treated_hardwood_dust')
generateVatRecipe('tfg:vat/thermochemically_treat_tiny_hardwood_dust', 'gtceu:tiny_hardwood_dust', 'tfc:lye', 250, 'gtceu:tiny_thermochemically_treated_hardwood_dust')
generatePotRecipe('thermochemically_treat_hardwood_dust', 3, 'gtceu:hardwood_dust', 'tfc:lye', 250, 'gtceu:thermochemically_treated_hardwood_dust', 600, 300)
generatePotRecipe('thermochemically_treat_small_hardwood_dust', 5, 'gtceu:small_hardwood_dust', 'tfc:lye', 250, 'gtceu:small_thermochemically_treated_hardwood_dust', 600, 300)
generatePotRecipe('thermochemically_treat_tiny_hardwood_dust', 5, 'gtceu:tiny_hardwood_dust', 'tfc:lye', 250, 'gtceu:tiny_thermochemically_treated_hardwood_dust', 600, 300)
generateMixerRecipe(event, 'gtceu:hardwood_dust', Fluid.of('tfc:lye', 150), 'gtceu:thermochemically_treated_hardwood_dust', null, [], 150, 4, 64, 'tfg:mixer/mix_hardwood_dust_with_lye')
generateMixerRecipe(event, 'gtceu:small_hardwood_dust', Fluid.of('tfc:lye', 37), 'gtceu:small_thermochemically_treated_hardwood_dust', null, [], 100, 3, 64, 'tfg:mixer/mix_small_hardwood_dust_with_lye')
generateMixerRecipe(event, 'gtceu:tiny_hardwood_dust', Fluid.of('tfc:lye', 16), 'gtceu:tiny_thermochemically_treated_hardwood_dust', null, [], 50, 2, 64, 'tfg:mixer/mix_tiny_hardwood_dust_with_lye')

View file

@ -108,6 +108,18 @@ global.GTCEU_DISABLED_ITEMS = [
'gtceu:compressed_clay',
'gtceu:damascus_steel_nugget',
'gtceu:damascus_steel_ingot',
'gtceu:damascus_steel_block',
'gtceu:damascus_steel_plate',
'gtceu:damascus_steel_bolt',
'gtceu:damascus_steel_screw',
'gtceu:damascus_steel_rod',
'gtceu:long_damascus_steel_rod',
'gtceu:damascus_steel_dust',
'gtceu:small_damascus_steel_dust',
'gtceu:tiny_damascus_steel_dust',
// Sculk
'gtceu:tiny_echo_shard_dust',
'gtceu:small_echo_shard_dust',

View file

@ -60,6 +60,9 @@ const registerGTCEuMaterialModification = (event) => {
GTToolType.BUZZSAW,
GTToolType.SCYTHE,
GTToolType.WIRE_CUTTER,
GTToolType.WIRE_CUTTER_LV,
GTToolType.WIRE_CUTTER_HV,
GTToolType.WIRE_CUTTER_IV,
GTToolType.DRILL_LV,
GTToolType.DRILL_MV,
GTToolType.DRILL_HV,