Batteries now can be charged
This commit is contained in:
parent
a273ca3975
commit
f555eb9506
|
@ -87,26 +87,34 @@ class TileBattery extends SpatialTile(Material.iron) with TIO with TElectric wit
|
||||||
{
|
{
|
||||||
if (isIndirectlyPowered)
|
if (isIndirectlyPowered)
|
||||||
{
|
{
|
||||||
if (energy > 0)
|
if (electricNode.voltage >= 0)
|
||||||
{
|
{
|
||||||
|
//Discharge battery when current is flowing positive direction
|
||||||
//TODO: Allow player to set the power output
|
//TODO: Allow player to set the power output
|
||||||
electricNode.generatePower(10000)
|
electricNode.generatePower(Math.min(10000, energy.value))
|
||||||
val dissipatedEnergy = electricNode.power / 20
|
val dissipatedEnergy = electricNode.power / 20
|
||||||
energy -= dissipatedEnergy
|
energy -= dissipatedEnergy
|
||||||
markUpdate()
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//Recharge battery when current is flowing negative direction
|
||||||
|
energy += electricNode.power / 20
|
||||||
|
}
|
||||||
|
|
||||||
|
if (energy.prev != energy.value)
|
||||||
|
markUpdate()
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update packet when energy level changes.
|
* Update packet when energy level changes.
|
||||||
*/
|
|
||||||
val prevEnergyLevel = energyRenderLevel
|
val prevEnergyLevel = energyRenderLevel
|
||||||
energyRenderLevel = Math.round((energy.value / TileBattery.getEnergyForTier(getBlockMetadata).toDouble) * 8).toInt
|
energyRenderLevel = Math.round((energy.value / TileBattery.getEnergyForTier(getBlockMetadata).toDouble) * 8).toInt
|
||||||
|
|
||||||
if (prevEnergyLevel != energyRenderLevel)
|
if (prevEnergyLevel != energyRenderLevel)
|
||||||
{
|
{
|
||||||
markUpdate()
|
markUpdate()
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -48,8 +48,8 @@ class TileWindTurbine extends TileTurbine with IBoilHandler
|
||||||
private var openBlockCache = new Array[Byte](224)
|
private var openBlockCache = new Array[Byte](224)
|
||||||
private var checkCount = 0
|
private var checkCount = 0
|
||||||
private var efficiency = 0f
|
private var efficiency = 0f
|
||||||
private var windPower = 0d
|
private var windTorque = 0d
|
||||||
private var nextWindPower = 0d
|
private var nextWindTorque = 0d
|
||||||
|
|
||||||
//Constructor
|
//Constructor
|
||||||
this.itemBlock = classOf[ItemBlockMetadata]
|
this.itemBlock = classOf[ItemBlockMetadata]
|
||||||
|
@ -76,13 +76,13 @@ class TileWindTurbine extends TileTurbine with IBoilHandler
|
||||||
if (ticks % 20 == 0)
|
if (ticks % 20 == 0)
|
||||||
computePower()
|
computePower()
|
||||||
|
|
||||||
windPower = MathUtility.lerp(windPower, nextWindPower, ticks % 20 / 20d)
|
windTorque = MathUtility.lerp(windTorque, nextWindTorque, ticks % 20 / 20d)
|
||||||
getMultiBlock.get.mechanicalNode.accelerate(windPower * multiBlockRadius / 20)
|
getMultiBlock.get.mechanicalNode.accelerate(windTorque * multiBlockRadius)
|
||||||
}
|
}
|
||||||
|
|
||||||
//Generate from steam
|
//Generate from steam
|
||||||
val steamPower = if (gasTank.getFluid != null) gasTank.drain(gasTank.getFluidAmount, true).amount else 0 * 1000 * Settings.steamMultiplier
|
val steamPower = if (gasTank.getFluid != null) gasTank.drain(gasTank.getFluidAmount, true).amount else 0 * 1000 * Settings.steamMultiplier
|
||||||
getMultiBlock.get.mechanicalNode.accelerate(steamPower * multiBlockRadius / 20)
|
getMultiBlock.get.mechanicalNode.accelerate(steamPower * multiBlockRadius)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -136,7 +136,7 @@ class TileWindTurbine extends TileTurbine with IBoilHandler
|
||||||
val hasBonus = biome.isInstanceOf[BiomeGenOcean] || biome.isInstanceOf[BiomeGenPlains] || biome == BiomeGenBase.river
|
val hasBonus = biome.isInstanceOf[BiomeGenOcean] || biome.isInstanceOf[BiomeGenPlains] || biome == BiomeGenBase.river
|
||||||
val windSpeed = (worldObj.rand.nextFloat / 5) + (yCoord / 256f) * (if (hasBonus) 1.2f else 1) + worldObj.getRainStrength(0.5f)
|
val windSpeed = (worldObj.rand.nextFloat / 5) + (yCoord / 256f) * (if (hasBonus) 1.2f else 1) + worldObj.getRainStrength(0.5f)
|
||||||
|
|
||||||
nextWindPower = 10 * materialMultiplier * multiblockMultiplier * windSpeed * efficiency * Settings.WIND_POWER_RATIO / 20
|
nextWindTorque = 5 * materialMultiplier * multiblockMultiplier * windSpeed * efficiency * Settings.WIND_POWER_RATIO / 20
|
||||||
}
|
}
|
||||||
|
|
||||||
override def getSubBlocks(par1: Item, par2CreativeTabs: CreativeTabs, par3List: List[_])
|
override def getSubBlocks(par1: Item, par2CreativeTabs: CreativeTabs, par3List: List[_])
|
||||||
|
@ -195,6 +195,15 @@ class TileWindTurbine extends TileTurbine with IBoilHandler
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
override def renderInventory(itemStack: ItemStack)
|
||||||
|
{
|
||||||
|
GL11.glPushMatrix()
|
||||||
|
GL11.glTranslatef(0.5f, 0.5f, 0.5f)
|
||||||
|
render(itemStack.getItemDamage, 1, false)
|
||||||
|
GL11.glPopMatrix()
|
||||||
|
}
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
def render(tier: Int, size: Int, isConstructed: Boolean)
|
def render(tier: Int, size: Int, isConstructed: Boolean)
|
||||||
{
|
{
|
||||||
|
@ -238,13 +247,4 @@ class TileWindTurbine extends TileTurbine with IBoilHandler
|
||||||
TileWindTurbine.model.renderOnly("SmallHub")
|
TileWindTurbine.model.renderOnly("SmallHub")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
|
||||||
override def renderInventory(itemStack: ItemStack)
|
|
||||||
{
|
|
||||||
GL11.glPushMatrix()
|
|
||||||
GL11.glTranslatef(0.5f, 0.5f, 0.5f)
|
|
||||||
render(itemStack.getItemDamage, 1, false)
|
|
||||||
GL11.glPopMatrix()
|
|
||||||
}
|
|
||||||
}
|
}
|
Loading…
Reference in a new issue