electrodynamics/src/main/scala/edx/electrical/generator/TileSolarPanel.scala

71 lines
2.1 KiB
Scala
Raw Normal View History

2015-01-14 12:06:03 +01:00
package edx.electrical.generator
2014-08-06 13:57:45 +02:00
import cpw.mods.fml.relauncher.{Side, SideOnly}
2015-01-23 16:06:00 +01:00
import edx.core.Reference
2014-10-25 14:38:24 +02:00
import net.minecraft.block.material.Material
2014-08-06 13:57:45 +02:00
import net.minecraft.client.renderer.texture.IIconRegister
import net.minecraft.util.IIcon
2015-01-23 16:06:00 +01:00
import net.minecraftforge.common.util.ForgeDirection
import resonant.lib.content.prefab.TIO
2015-01-23 16:06:00 +01:00
import resonant.lib.grid.core.TSpatialNodeProvider
import resonant.lib.prefab.tile.spatial.{SpatialBlock, SpatialTile}
import resonant.lib.prefab.tile.traits.TElectric
2014-12-10 19:47:51 +01:00
import resonant.lib.render.block.RenderConnectedTexture
import resonant.lib.transform.region.Cuboid
2014-08-06 13:57:45 +02:00
2015-01-23 16:06:00 +01:00
import scala.collection.convert.wrapAll._
class TileSolarPanel extends SpatialTile(Material.iron) with TElectric with TSpatialNodeProvider with TIO with RenderConnectedTexture
2014-10-25 14:38:24 +02:00
{
ioMap = 728
textureName = "solarPanel_top"
bounds = new Cuboid(0, 0, 0, 1, 0.3f, 1)
2015-01-23 16:23:46 +01:00
2014-10-25 14:38:24 +02:00
isOpaqueCube = false
2015-01-23 16:23:46 +01:00
normalRender = false
renderStaticBlock = true
2014-11-07 04:16:26 +01:00
edgeTexture = Reference.prefix + "tankEdge"
2015-01-23 16:23:46 +01:00
electricNode.dynamicTerminals = true
2015-01-24 10:38:01 +01:00
electricNode.setPositives(Set(ForgeDirection.NORTH, ForgeDirection.EAST))
electricNode.setNegatives(Set(ForgeDirection.SOUTH, ForgeDirection.WEST))
2015-01-23 16:06:00 +01:00
nodes.add(electricNode)
2014-11-05 02:10:36 +01:00
2014-10-25 14:38:24 +02:00
@SideOnly(Side.CLIENT)
override def registerIcons(iconReg: IIconRegister)
{
2014-08-06 13:57:45 +02:00
SpatialBlock.icon.put("solarPanel_side", iconReg.registerIcon(Reference.prefix + "solarPanel_side"))
SpatialBlock.icon.put("solarPanel_bottom", iconReg.registerIcon(Reference.prefix + "solarPanel_bottom"))
super.registerIcons(iconReg)
}
2014-10-25 14:38:24 +02:00
@SideOnly(Side.CLIENT)
override def getIcon(side: Int, meta: Int): IIcon =
{
if (side == 0)
2014-08-06 13:57:45 +02:00
return SpatialBlock.icon.get("solarPanel_bottom")
2014-10-25 14:38:24 +02:00
else if (side == 1)
2014-08-06 13:57:45 +02:00
return getIcon
2014-10-25 14:38:24 +02:00
2014-08-06 13:57:45 +02:00
return SpatialBlock.icon.get("solarPanel_side")
}
2015-01-17 15:08:46 +01:00
override def update()
2014-10-25 14:38:24 +02:00
{
super.update()
if (!world.isRemote)
{
if (world.canBlockSeeTheSky(xCoord, yCoord + 1, zCoord) && !this.worldObj.provider.hasNoSky)
{
if (world.isDaytime)
{
if (!(world.isThundering || world.isRaining))
{
2015-01-23 16:06:00 +01:00
electricNode.generateVoltage(15)
2014-08-06 13:57:45 +02:00
}
}
}
}
}
}