diff --git a/src/main/scala/edx/electrical/battery/TileBattery.scala b/src/main/scala/edx/electrical/battery/TileBattery.scala index 656f31884..f65def0df 100644 --- a/src/main/scala/edx/electrical/battery/TileBattery.scala +++ b/src/main/scala/edx/electrical/battery/TileBattery.scala @@ -87,26 +87,34 @@ class TileBattery extends SpatialTile(Material.iron) with TIO with TElectric wit { 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 - electricNode.generatePower(10000) + electricNode.generatePower(Math.min(10000, energy.value)) val dissipatedEnergy = electricNode.power / 20 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. - */ + val prevEnergyLevel = energyRenderLevel energyRenderLevel = Math.round((energy.value / TileBattery.getEnergyForTier(getBlockMetadata).toDouble) * 8).toInt if (prevEnergyLevel != energyRenderLevel) { markUpdate() - } + }*/ } } diff --git a/src/main/scala/edx/mechanical/mech/turbine/TileWindTurbine.scala b/src/main/scala/edx/mechanical/mech/turbine/TileWindTurbine.scala index ac0c3fdc8..3394a4c83 100644 --- a/src/main/scala/edx/mechanical/mech/turbine/TileWindTurbine.scala +++ b/src/main/scala/edx/mechanical/mech/turbine/TileWindTurbine.scala @@ -48,8 +48,8 @@ class TileWindTurbine extends TileTurbine with IBoilHandler private var openBlockCache = new Array[Byte](224) private var checkCount = 0 private var efficiency = 0f - private var windPower = 0d - private var nextWindPower = 0d + private var windTorque = 0d + private var nextWindTorque = 0d //Constructor this.itemBlock = classOf[ItemBlockMetadata] @@ -76,13 +76,13 @@ class TileWindTurbine extends TileTurbine with IBoilHandler if (ticks % 20 == 0) computePower() - windPower = MathUtility.lerp(windPower, nextWindPower, ticks % 20 / 20d) - getMultiBlock.get.mechanicalNode.accelerate(windPower * multiBlockRadius / 20) + windTorque = MathUtility.lerp(windTorque, nextWindTorque, ticks % 20 / 20d) + getMultiBlock.get.mechanicalNode.accelerate(windTorque * multiBlockRadius) } //Generate from steam 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 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[_]) @@ -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) def render(tier: Int, size: Int, isConstructed: Boolean) { @@ -238,13 +247,4 @@ class TileWindTurbine extends TileTurbine with IBoilHandler 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() - } } \ No newline at end of file