Integer Limit b2491a2a24
Fix Inefficient ABS Recipe Durations (#958)
[FEATURE]

[DETAILS]
detail = "Fixes #956"
[DETAILS]

[FIXUP]
[[fixes]]
sha = "b8d375f7e93887561486a1b2d464ef3ae4b33e47"
newBody = "[SKIP]"

[[fixes]]
sha = "8f8063c73de3dbcc83fded2885f797032eb97e04"
newBody = "[FEATURE]"
[FIXUP]
2024-08-26 19:07:59 +10:00

81 lines
3.2 KiB
Groovy
Executable File

import com.nomiceu.nomilabs.groovy.ChangeRecipeBuilder
import com.nomiceu.nomilabs.util.LabsModeHelper
import gregtech.api.recipes.RecipeBuilder
import gregtech.api.recipes.ingredients.GTRecipeInput
import gregtech.api.recipes.recipeproperties.TemperatureProperty
import static gregtech.api.GTValues.*
// Lumium
mods.gregtech.alloy_blast_smelter.changeByOutput(null, [fluid('molten.lumium')])
.forEach { ChangeRecipeBuilder builder ->
builder.builder { RecipeBuilder recipe ->
recipe.inputs(item('extendedcrafting:material', 7) * 2, ore('clathrateGlowstone')) // Luminessence
.fluidInputs(fluid('mana') * 1000)
}.changeDuration { duration -> (int) (duration / 6 * 4) } // Old recipe made 6, new recipe makes 4
.changeCircuitMeta { meta -> meta + 2 }
.changeEachFluidOutput { fluid -> fluid * (L * 4) }
.copyProperties(TemperatureProperty.instance)
.replaceAndRegister()
}
// Signalum
mods.gregtech.alloy_blast_smelter.changeByOutput(null, [fluid('molten.signalum')])
.forEach { ChangeRecipeBuilder builder ->
builder.builder { RecipeBuilder recipe ->
recipe.inputs(ore('clathrateRedstone'))
.fluidInputs(fluid('mana') * 1000)
}.changeDuration { duration -> (int) (duration / 8 * 4) } // Old recipe made 8, new recipe makes 4
.changeCircuitMeta { meta -> meta + 1 }
.changeEachFluidOutput { fluid -> fluid * (L * 4) }
.copyProperties(TemperatureProperty.instance)
.replaceAndRegister()
}
// Enderium
mods.gregtech.alloy_blast_smelter.changeByOutput(null, [fluid('molten.enderium')])
.forEach { ChangeRecipeBuilder builder ->
builder.builder { RecipeBuilder recipe ->
recipe.inputs(ore('clathrateEnder'))
.fluidInputs(fluid('mana') * 1000)
}.changeDuration { duration -> (int) (duration / 8 * 4) } // Old recipe made 8, new recipe makes 4
.changeCircuitMeta { meta -> meta + 1 }
.changeEachFluidOutput { fluid -> fluid * (L * 4) }
.copyProperties(TemperatureProperty.instance)
.replaceAndRegister()
}
// Fluxed Electrum
mods.gregtech.alloy_blast_smelter.changeByOutput(null, [fluid('electrum_flux')])
.forEach { ChangeRecipeBuilder builder ->
builder.builder {RecipeBuilder recipe ->
recipe.inputs(ore('dustMana'))
}.changeDuration { duration -> (int) (duration / 8 * 9) } // Old recipe made 8, new recipe makes 9
.changeCircuitMeta { meta -> meta + 1 }
.changeEachFluidOutput { fluid -> fluid * (L * 9) }
.copyProperties(TemperatureProperty.instance)
.replaceAndRegister()
}
if (LabsModeHelper.normal) {
// Red Alloy (Increases Output & Changes Copper/Redstone Ratio)
mods.gregtech.alloy_blast_smelter.changeByOutput(null, [fluid('red_alloy')])
.forEach { ChangeRecipeBuilder builder ->
builder.clearCircuitMeta()
.changeEachFluidOutput { fluid -> fluid * (L * 2) }
.builder { RecipeBuilder recipe ->
recipe.clearInputs()
.inputs(ore('dustCopper') * 2, item('minecraft:redstone') * 3)
.circuitMeta(2)
}.replaceAndRegister()
}
mods.gregtech.centrifuge.changeByInput([metaitem('dustRedAlloy')], null)
.changeEachInput { GTRecipeInput input ->
return input.copyWithAmount(2)
}.builder { RecipeBuilder recipe ->
recipe.clearOutputs()
.outputs(item('minecraft:redstone') * 3, metaitem('dustCopper') * 2)
}.replaceAndRegister()
}