From 323d0bf78a14de5951259190a17710760dd8aafd Mon Sep 17 00:00:00 2001 From: SpeeeDCraft <52341158+SpeeeDCraft@users.noreply.github.com> Date: Fri, 27 Oct 2023 19:38:22 +0700 Subject: [PATCH] Update recipes.js --- kubejs/server_scripts/gregtech/recipes.js | 59 ++++++++++++----------- 1 file changed, 32 insertions(+), 27 deletions(-) diff --git a/kubejs/server_scripts/gregtech/recipes.js b/kubejs/server_scripts/gregtech/recipes.js index 4524d78bf..334d76502 100644 --- a/kubejs/server_scripts/gregtech/recipes.js +++ b/kubejs/server_scripts/gregtech/recipes.js @@ -17,10 +17,9 @@ const registerGTrecipes = (event) => { generateRecipesForRawOres(event, material) - /* global.allTFCStoneTypeNames.forEach(stoneTypeName => { generateRecipesForOres(event, stoneTypeName, material) - })*/ + }) } }) } @@ -64,36 +63,36 @@ const generateRecipesForRawOres = (event, material) => { const forgeHammerRecipeName = `hammer_${tagPrefix.name}_${material}_to_crushed_ore` const maceratorRecipeName = `macerate_${tagPrefix.name}_${material}_to_crushed_ore` - const rawStackInput = `1x #forge:${tagPrefix.name}_materials/${material}` - const crushedStackOutput = `${crushedOreAmountWithMultiplier}x #forge:crushed_ores/${material}` + const rawStack = `1x #forge:${tagPrefix.name}_materials/${material}` + const crushedStackMultiplied = `${crushedOreAmountWithMultiplier}x #forge:crushed_ores/${material}` event.recipes.gtceu.forge_hammer(forgeHammerRecipeName) - .itemInputs(rawStackInput) + .itemInputs(rawStack) .itemOutputs(outputItems) .duration(10).EUt(16); event.recipes.gtceu.macerator(maceratorRecipeName) - .itemInputs(rawStackInput) - .itemOutputs(crushedStackOutput) - .chancedOutput(crushedStackOutput, 5000, 750) - .chancedOutput(crushedStackOutput, 2500, 500) - .chancedOutput(crushedStackOutput, 1250, 250) + .itemInputs(rawStack) + .itemOutputs(crushedStackMultiplied) + .chancedOutput(crushedStackMultiplied, 5000, 750) + .chancedOutput(crushedStackMultiplied, 2500, 500) + .chancedOutput(crushedStackMultiplied, 1250, 250) .duration(10).EUt(16); // do not try to add smelting recipes for materials which require blast furnace if (!ingotStack.isEmpty() && doesMaterialUseNormalFurnace(smeltingMaterial) && !tagPrefix.isIgnored(material)) { const xp = Math.round(((1 + materialOreProperty.getOreMultiplier() * 0.33) / 3) * 10) / 10; - const smeltRecipeName = `tfg:smelting/smelt_${tagPrefix.name}_${material}_to_ingot` - const blastingRecipeName = `tfg:blasting/smelt_${tagPrefix.name}_${material}_to_ingot` + const smeltRecipeName = `tfg:smelting/smelt_${tagPrefix.name}_${material}_raw_to_ingot` + const blastingRecipeName = `tfg:blasting/smelt_${tagPrefix.name}_${material}_raw_to_ingot` const trueOrePrefix = ChemicalHelper.getPrefix(ingotStack.getItem()) const trueMaterial = ChemicalHelper.getUnificationEntry(ingotStack.getItem()).material const outputMaterial = `${ingotStack.getCount() * multiplier}x #${ChemicalHelper.getTag(trueOrePrefix, trueMaterial).location()}` - event.smelting(outputMaterial, rawStackInput).id(smeltRecipeName).xp(xp) - event.blasting(outputMaterial, rawStackInput).id(blastingRecipeName).xp(xp) + event.smelting(outputMaterial, rawStack).id(smeltRecipeName).xp(xp) + event.blasting(outputMaterial, rawStack).id(blastingRecipeName).xp(xp) } } @@ -112,6 +111,7 @@ const generateRecipesForOres = (event, stoneTypeName, material) => { let ingotStack; let byproductStack = ChemicalHelper.get(TagPrefix.gem, byproductMaterial, 1); if (byproductStack.isEmpty()) byproductStack = ChemicalHelper.get(TagPrefix.dust, byproductMaterial, 1); + const smeltingMaterial = materialOreProperty.getDirectSmeltResult() == null ? material : materialOreProperty.getDirectSmeltResult(); const crushedStack = ChemicalHelper.get(TagPrefix.crushed, material, 1); @@ -123,7 +123,7 @@ const generateRecipesForOres = (event, stoneTypeName, material) => { ingotStack = ChemicalHelper.get(TagPrefix.dust, smeltingMaterial, 1); } - const oreRecipeEntry = `1x #forge:ores/tfc_${stoneTypeName}/${material}` + const oreStack = `1x #forge:ores/tfc_${stoneTypeName}/${material}` if (!crushedStack.isEmpty()) { let outputItems; @@ -137,30 +137,35 @@ const generateRecipesForOres = (event, stoneTypeName, material) => { const forgeHammerRecipeName = `hammer_${stoneTypeName}_${material}_ore_to_raw_ore` const maceratorRecipeName = `macerate_${stoneTypeName}_${material}_ore_to_raw_ore` - const crushedRecipeEntry = `${crushedStack.getCount() * 2}x #forge:crushed_ores/${material}` - const stoneTypeMaterialEntry = `1x gtceu:${stoneTypeName}_dust` + const crushedStack = `2x #forge:crushed_ores/${material}` + const stoneTypeDustStack = `1x #forge:dusts/${stoneTypeName}` event.recipes.gtceu.forge_hammer(forgeHammerRecipeName) - .itemInputs(oreRecipeEntry) + .itemInputs(oreStack) .itemOutputs(outputItems) .duration(10).EUt(16); event.recipes.gtceu.macerator(maceratorRecipeName) - .itemInputs(oreRecipeEntry) - .itemOutputs(crushedRecipeEntry) + .itemInputs(oreStack) + .itemOutputs(crushedStack) .chancedOutput(byproductStack, 1400, 850) - .chancedOutput(stoneTypeMaterialEntry, 5000, 850) + .chancedOutput(stoneTypeDustStack, 5000, 850) .duration(10).EUt(16); } // do not try to add smelting recipes for materials which require blast furnace if (!ingotStack.isEmpty() && doesMaterialUseNormalFurnace(smeltingMaterial) && !stoneTypePrefix.isIgnored(material)) { const xp = Math.round(((1 + materialOreProperty.getOreMultiplier() * 0.5) * 0.5 - 0.05) * 10) / 10 -/* - const smeltRecipeName = `tfg:smelting/smelt_${stoneTypeName}_${material}_ore_to_ingot_1` - const blastingRecipeName = `tfg:blasting/smelt_${stoneTypeName}_${material}_ore_to_ingot_1` - console.log(oreRecipeEntry + " " + ingotStack) - event.smelting(ingotStack, oreRecipeEntry).id(smeltRecipeName).xp(xp) - event.blasting(ingotStack, oreRecipeEntry).id(blastingRecipeName).xp(xp)*/ + + const smeltRecipeName = `tfg:smelting/smelt_${stoneTypePrefix.name}_${material}_ore_to_ingot` + const blastingRecipeName = `tfg:blasting/smelt_${stoneTypePrefix.name}_${material}_ore_to_ingot` + + const trueOrePrefix = ChemicalHelper.getPrefix(ingotStack.getItem()) + const trueMaterial = ChemicalHelper.getUnificationEntry(ingotStack.getItem()).material + + const outputMaterial = `1x #${ChemicalHelper.getTag(trueOrePrefix, trueMaterial).location()}` + + event.smelting(outputMaterial, oreStack).id(smeltRecipeName).xp(xp) + event.blasting(outputMaterial, oreStack).id(blastingRecipeName).xp(xp) } } \ No newline at end of file