From 5f064b841f36cef185b59ae4a53a854bd64b0188 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Thu, 22 Jan 2026 23:01:36 +0000 Subject: [PATCH] make gt oreproc much faster (except the thermafuge) --- CHANGELOG.md | 1 + .../quests/chapters/hv__high_voltage.snbt | 1 + kubejs/server_scripts/tfc/recipes.metals.js | 8 +-- .../recipes.material_ores.js | 65 +++++++++++++++++-- 4 files changed, 66 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 06cc3cd55..05ad054d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ - Recolored the different oils so you can actually tell them apart visually @Pyritie - The food meter's saturation level is now indicated by a gold outline instead of a red one, so it's less difficult to see (#2812) @TreyR9 - Changed some of the colors of Greate things to make the different tiers more visually distinct @Pyritie +- Buffed ore washing and ore maceration recipes so at least they aren't so awful compared to Greate's methods @Pyritie ### Bug fixes - Fixed a config bug causing waves to deposit shells etc with 100% chance. @Mqrius - Fixed a bug preventing the Pisciculture Fishery and Hydroponics Facility from overclocking. @Redeix diff --git a/config/ftbquests/quests/chapters/hv__high_voltage.snbt b/config/ftbquests/quests/chapters/hv__high_voltage.snbt index f9e60e956..92974c4a4 100644 --- a/config/ftbquests/quests/chapters/hv__high_voltage.snbt +++ b/config/ftbquests/quests/chapters/hv__high_voltage.snbt @@ -1008,6 +1008,7 @@ "4AD686D18247315E" "72BD27FEEB34C7B0" ] + dependency_requirement: "one_completed" description: ["{quests.high_voltage.rocket_t1.desc}"] icon_scale: 2.0d id: "3FBDC8552F7D8008" diff --git a/kubejs/server_scripts/tfc/recipes.metals.js b/kubejs/server_scripts/tfc/recipes.metals.js index 4b150403c..64d5e7378 100644 --- a/kubejs/server_scripts/tfc/recipes.metals.js +++ b/kubejs/server_scripts/tfc/recipes.metals.js @@ -298,16 +298,16 @@ function registerTFCMetalsRecipes(event) { .inputFluids("#tfg:clean_water 100") .circuit(4) .itemOutputs(`1x tfc:ore/normal_${ore}`) - .duration(400) - .EUt(GTValues.VA[GTValues.LV]) + .duration(40) + .EUt(GTValues.VHA[GTValues.LV]) event.recipes.gtceu.ore_washer(`tfc:ore_washer/distilled_water/deposit/${ore}/${stone}`) .itemInputs(`1x tfc:deposit/${ore}/${stone}`) .inputFluids(Fluid.of('gtceu:distilled_water', 50)) .circuit(4) .itemOutputs(`1x tfc:ore/normal_${ore}`) - .duration(200) - .EUt(GTValues.VA[GTValues.LV]) + .duration(20) + .EUt(GTValues.VHA[GTValues.LV]) }) }) //#endregion diff --git a/kubejs/server_scripts/tfg/ores_and_materials/recipes.material_ores.js b/kubejs/server_scripts/tfg/ores_and_materials/recipes.material_ores.js index f2a38a7ec..9624a3cd3 100644 --- a/kubejs/server_scripts/tfg/ores_and_materials/recipes.material_ores.js +++ b/kubejs/server_scripts/tfg/ores_and_materials/recipes.material_ores.js @@ -114,7 +114,7 @@ function processPoorRawOre(event, material) { let maceratorRecipe = event.recipes.gtceu.macerator(`macerate_poor_raw_${materialName}_ore_to_crushed_ore`) .itemInputs(poorOreItem) .category(GTRecipeCategories.ORE_CRUSHING) - .duration(400) + .duration(40) .EUt(2) if (multiplier > 1) { @@ -198,7 +198,7 @@ function processNormalRawOre(event, material) { .chancedOutput(crushedOreItem.copyWithCount(1), 2500, 250) .chancedOutput(crushedOreItem.copyWithCount(1), 1250, 250) .category(GTRecipeCategories.ORE_CRUSHING) - .duration(400) + .duration(40) .EUt(2) // Quern @@ -267,7 +267,7 @@ function processRichRawOre(event, material) { .chancedOutput(crushedOreItem.copyWithCount(1), 2500, 500) .chancedOutput(crushedOreItem.copyWithCount(1), 1250, 250) .category(GTRecipeCategories.ORE_CRUSHING) - .duration(400) + .duration(40) .EUt(2) // Quern @@ -292,12 +292,39 @@ function processCrushedOre(event, material) { const crushedOreItem = ChemicalHelper.get(TagPrefix.crushed, material, 1) const impureDustItem = ChemicalHelper.get(TagPrefix.dustImpure, material, 1) const pureOreItem = ChemicalHelper.get(TagPrefix.crushedPurified, material, 1) - const materialName = material.getName(); + if (crushedOreItem !== null && pureOreItem !== null) { - // Bulk washing let byproductMaterial = material.getProperty(PropertyKey.ORE).getOreByProduct(0, material); const byproductItem = ChemicalHelper.get(TagPrefix.dust, byproductMaterial, 1) + + // GT machines + event.recipes.gtceu.ore_washer(`wash_${materialName}_crushed_ore_to_purified_ore_distilled`) + .itemInputs(crushedOreItem) + .inputFluids("gtceu:distilled_water 10") + .itemOutputs(pureOreItem, 'gtceu:stone_dust') + .chancedOutput(byproductItem, 3333, 0) + .duration(20) + .EUt(GTValues.VHA[GTValues.LV]) + + event.recipes.gtceu.ore_washer(`wash_${materialName}_crushed_ore_to_purified_ore`) + .itemInputs(crushedOreItem) + .inputFluids("minecraft:water 100") + .itemOutputs(pureOreItem, 'gtceu:stone_dust') + .chancedOutput(byproductItem, 3333, 0) + .circuit(1) + .duration(40) + .EUt(GTValues.VHA[GTValues.LV]) + + event.recipes.gtceu.macerator(`macerate_${materialName}_crushed_ore_to_impure_dust`) + .itemInputs(crushedOreItem) + .itemOutputs(impureDustItem) + .chancedOutput(byproductItem, 1400, 0) + .category(GTRecipeCategories.ORE_CRUSHING) + .duration(20) + .EUt(2) + + // Bulk washing event.recipes.greate.splashing([pureOreItem, Item.of(byproductItem).withChance(0.333), 'gtceu:stone_dust'], crushedOreItem) .id(`tfg:splashing/${materialName}_purified_ore`) @@ -344,6 +371,20 @@ function processPurifiedOre(event, material) { const pureDustItem = ChemicalHelper.get(TagPrefix.dustPure, material, 1) if (pureOreItem !== null && pureDustItem !== null) { + const materialName = material.getName(); + let byproductMaterial = material.getProperty(PropertyKey.ORE).getOreByProduct(1, material); + const byproductItem = ChemicalHelper.get(TagPrefix.dust, byproductMaterial, 1) + + // With byproducts + event.recipes.gtceu.macerator(`macerate_${materialName}_crushed_ore_to_dust`) + .itemInputs(pureOreItem) + .itemOutputs(pureDustItem) + .chancedOutput(byproductItem, 1400, 0) + .category(GTRecipeCategories.ORE_CRUSHING) + .duration(20) + .EUt(GTValues.VHA[GTValues.LV]) + + // Without byproducts event.recipes.greate.pressing(pureDustItem, pureOreItem) .recipeTier(1) .id(`greate:pressing/pure_crushed_${material.getName()}_to_pure_dust`) @@ -364,6 +405,20 @@ function processRefinedOre(event, material) { const dustItem = ChemicalHelper.get(TagPrefix.dust, material, 1) if (refinedOreItem !== null && dustItem !== null) { + const materialName = material.getName(); + let byproductMaterial = material.getProperty(PropertyKey.ORE).getOreByProduct(2, material); + const byproductItem = ChemicalHelper.get(TagPrefix.dust, byproductMaterial, 1) + + // With byproducts + event.recipes.gtceu.macerator(`macerate_${materialName}_refined_ore_to_dust`) + .itemInputs(refinedOreItem) + .itemOutputs(dustItem) + .chancedOutput(byproductItem, 1400, 0) + .category(GTRecipeCategories.ORE_CRUSHING) + .duration(20) + .EUt(GTValues.VHA[GTValues.LV]) + + // Without byproducts event.recipes.greate.pressing(dustItem, refinedOreItem) .recipeTier(1) .id(`greate:pressing/refined_${material.getName()}_to_dust`)