Finished Power Advantage integration, looks like it works the way it should! Closes #1248.

This commit is contained in:
Florian Nücke 2015-07-11 21:52:47 +02:00
parent 7366d8d07a
commit 94fd8d14b1
3 changed files with 9 additions and 6 deletions

View File

@ -780,6 +780,7 @@ opencomputers {
Galacticraft: 48.0 Galacticraft: 48.0
IndustrialCraft2: 400.0 IndustrialCraft2: 400.0
Mekanism: 1333.33 Mekanism: 1333.33
PowerAdvantage: 31.25
RedstoneFlux: 100.0 RedstoneFlux: 100.0
} }
} }

View File

@ -218,6 +218,7 @@ class Settings(val config: Config) {
private val valueGalacticraft = config.getDouble("power.value.Galacticraft") private val valueGalacticraft = config.getDouble("power.value.Galacticraft")
private val valueIndustrialCraft2 = config.getDouble("power.value.IndustrialCraft2") private val valueIndustrialCraft2 = config.getDouble("power.value.IndustrialCraft2")
private val valueMekanism = config.getDouble("power.value.Mekanism") private val valueMekanism = config.getDouble("power.value.Mekanism")
private val valuePowerAdvantage = config.getDouble("power.value.PowerAdvantage")
private val valueRedstoneFlux = config.getDouble("power.value.RedstoneFlux") private val valueRedstoneFlux = config.getDouble("power.value.RedstoneFlux")
private val valueInternal = 1000 private val valueInternal = 1000
@ -227,6 +228,7 @@ class Settings(val config: Config) {
val ratioGalacticraft = valueGalacticraft / valueInternal val ratioGalacticraft = valueGalacticraft / valueInternal
val ratioIndustrialCraft2 = valueIndustrialCraft2 / valueInternal val ratioIndustrialCraft2 = valueIndustrialCraft2 / valueInternal
val ratioMekanism = valueMekanism / valueInternal val ratioMekanism = valueMekanism / valueInternal
val ratioPowerAdvantage = valuePowerAdvantage / valueInternal
val ratioRedstoneFlux = valueRedstoneFlux / valueInternal val ratioRedstoneFlux = valueRedstoneFlux / valueInternal
// ----------------------------------------------------------------------- // // ----------------------------------------------------------------------- //

View File

@ -24,23 +24,23 @@ object LightWeightPowerAcceptor extends ILightWeightPowerAcceptor {
def getEnergyDemand(tileEntity: TileEntity, powerType: ConduitType) = tileEntity match { def getEnergyDemand(tileEntity: TileEntity, powerType: ConduitType) = tileEntity match {
case acceptor: PowerAcceptor if canAcceptEnergyType(powerType) => case acceptor: PowerAcceptor if canAcceptEnergyType(powerType) =>
EnumFacing.values().map(side => { (EnumFacing.values().map(side => {
val capacity = (acceptor.globalBufferSize(side) / Settings.get.ratioRedstoneFlux).toInt val capacity = acceptor.globalBufferSize(side)
val stored = (acceptor.globalBuffer(side) / Settings.get.ratioRedstoneFlux).toInt val stored = acceptor.globalBuffer(side)
capacity - stored capacity - stored
}).max }).max / Settings.get.ratioPowerAdvantage).toInt
case _ => 0 case _ => 0
} }
def addEnergy(tileEntity: TileEntity, amountAdded: Float, powerType: ConduitType) = tileEntity match { def addEnergy(tileEntity: TileEntity, amountAdded: Float, powerType: ConduitType) = tileEntity match {
case acceptor: PowerAcceptor if canAcceptEnergyType(powerType) => case acceptor: PowerAcceptor if canAcceptEnergyType(powerType) =>
var remainingEnergy = math.min(amountAdded, acceptor.energyThroughput) var remainingEnergy = math.min(amountAdded, acceptor.energyThroughput) * Settings.get.ratioPowerAdvantage
// .exists() for early exit. // .exists() for early exit.
EnumFacing.values().exists(side => { EnumFacing.values().exists(side => {
remainingEnergy -= acceptor.tryChangeBuffer(side, remainingEnergy) remainingEnergy -= acceptor.tryChangeBuffer(side, remainingEnergy)
remainingEnergy <= 0 remainingEnergy <= 0
}) })
amountAdded - remainingEnergy.toFloat amountAdded - (remainingEnergy / Settings.get.ratioPowerAdvantage).toFloat
case _ => 0 case _ => 0
} }
} }