From 682788970cdd72529de7d0dfc92748a649c4a639 Mon Sep 17 00:00:00 2001 From: Redeix Date: Wed, 21 Jan 2026 00:35:11 -0600 Subject: [PATCH] pisciculture rebalance --- .../tfg/aquaponics/recipes.pisciculture.js | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/kubejs/server_scripts/tfg/aquaponics/recipes.pisciculture.js b/kubejs/server_scripts/tfg/aquaponics/recipes.pisciculture.js index ff4796d28..3de8ac17f 100644 --- a/kubejs/server_scripts/tfg/aquaponics/recipes.pisciculture.js +++ b/kubejs/server_scripts/tfg/aquaponics/recipes.pisciculture.js @@ -25,10 +25,10 @@ const pisciculture_base_duration = Math.max(1, greenhouse_base_duration * greenh /** @type {DimensionIndex[]} - Dimension settings array */ const pisciculture_dimension_index = [ // Overworld settings are also used as the default when no dimension is specified. - {id: 'minecraft:overworld', fluid: '#tfg:clean_water', fluid_chance: 15, fluid_out: 'tfg:nitrate_rich_water', eut: GTValues.VA[GTValues.LV], oxygenated: true}, - {id: 'minecraft:the_nether', fluid: '#tfg:clean_water', fluid_chance: 15, fluid_out: 'tfg:nitrate_rich_water', eut: GTValues.VA[GTValues.LV], oxygenated: true}, + {id: 'minecraft:overworld', fluid: '#tfg:clean_water', fluid_chance: 10, fluid_out: 'tfg:nitrate_rich_water', eut: GTValues.VA[GTValues.LV], oxygenated: true}, + {id: 'minecraft:the_nether', fluid: '#tfg:clean_water', fluid_chance: 10, fluid_out: 'tfg:nitrate_rich_water', eut: GTValues.VA[GTValues.LV], oxygenated: true}, // The moon has no fish yet :( - {id: 'ad_astra:mars', fluid: 'tfg:semiheavy_ammoniacal_water', fluid_chance: 15, fluid_out: 'tfg:nitrate_rich_semiheavy_ammoniacal_water', eut: GTValues.VA[GTValues.HV], oxygenated: null} + {id: 'ad_astra:mars', fluid: 'tfg:semiheavy_ammoniacal_water', fluid_chance: 10, fluid_out: 'tfg:nitrate_rich_semiheavy_ammoniacal_water', eut: GTValues.VA[GTValues.HV], oxygenated: null} ]; //#endregion @@ -48,11 +48,22 @@ const pisciculture_dimension_index = [ function generatePiscicultureRecipe(event, dimension, input, output, id) { // Resolve dimension based modifier defaults by comparing to the `pisciculture_dimension_index` array. + /** @type {DimensionIndex|null} */ const dimMods = dimension ? pisciculture_dimension_index.find(d => d.id === dimension) : null; + + /** @type {Internal.FluidStackIngredient_} - Resolved fluid ID or tag. Defaults to `#tfg:clean_water` */ const resolvedFluid = dimMods?.fluid ?? '#tfg:clean_water'; + + /** @type {Internal.FluidStackIngredient_} - Resolved aquaponic loop fluid ID or tag. Defaults to `tfg:nitrate_rich_water` */ const resolvedFluidOut = dimMods?.fluid_out ?? 'tfg:nitrate_rich_water'; + + /** @type {GTValues.EUt} - Resolved EUt value. Defaults to LV EUt. */ const resolvedEUt = dimMods ? dimMods.eut : GTValues.VA[GTValues.LV]; - const resolvedChance = dimMods ? (dimMods.fluid_chance * 100) : 5000; + + /** @type {number} - Resolved fluid chance multiplied by 100. Defaults to 1000. */ + const resolvedChance = dimMods ? (dimMods.fluid_chance * 100) : 1000; + + /** @type {boolean|null} - Whether the recipe requires an oxygenated environment. Defaults to true. */ const requiresOxygen = dimMods ? dimMods.oxygenated : true; // Collect errors. @@ -76,8 +87,8 @@ const pisciculture_dimension_index = [ let a = event.recipes.gtceu.pisciculture_fishery(`tfg:${id}`) .itemInputs(input) .perTick(true) - .chancedFluidInput(`${resolvedFluid} 5`, resolvedChance, 0) - .chancedFluidOutput(`${resolvedFluidOut} 5`, resolvedChance, 0) + .chancedFluidInput(`${resolvedFluid} 8`, resolvedChance, 0) + .chancedFluidOutput(`${resolvedFluidOut} 8`, resolvedChance, 0) .perTick(false) .itemOutputs(output) .duration(pisciculture_base_duration)