electrodynamics/src/main/scala/edx/electrical/transformer/ElectricTransformerNode.scala
2015-01-26 20:17:04 +08:00

63 lines
1.6 KiB
Scala

package edx.electrical.transformer
import net.minecraftforge.common.util.ForgeDirection
import resonantengine.api.graph.INodeProvider
import resonantengine.lib.grid.energy.electric.NodeElectricComponent
/**
* Created by robert on 8/11/2014.
*/
class ElectricTransformerNode(parent: INodeProvider) extends NodeElectricComponent(parent: INodeProvider)
{
var connectionDirection: ForgeDirection = ForgeDirection.NORTH
var input = true
var otherNode: ElectricTransformerNode = null
var step: Int = 2
def this(parent: INodeProvider, side: ForgeDirection, in: Boolean) =
{
this(parent)
connectionDirection = side
input = in
}
def getVoltage: Double =
{
if (!input)
{
return otherNode.getVoltage * step
}
return 120
}
override def canConnect[B <: NodeElectricComponent](obj: B, from: ForgeDirection): Boolean =
{
return obj.isInstanceOf[INodeProvider] && from == connectionDirection
}
/*
override def addEnergy(dir: ForgeDirection, wattage: Double, doAdd: Boolean): Double =
{
if (input)
{
return otherNode.sendEnergy(wattage, doAdd)
}
return 0
}
def sendEnergy(wattage: Double, doAdd: Boolean): Double =
{
val tile: TileEntity = new VectorWorld(parent.asInstanceOf[TileEntity]).add(connectionDirection).getTileEntity
if (Compatibility.isHandler(tile, connectionDirection.getOpposite))
{
return Compatibility.fill(tile, connectionDirection.getOpposite, wattage, doAdd)
}
return 0
}
override def removeEnergy(dir: ForgeDirection, wattage: Double, doRemove: Boolean): Double =
{
return 0
}*/
}