electrodynamics/src/main/scala/edx/core/prefab/node/TMultipartNode.scala
2015-01-26 19:40:54 +08:00

50 lines
953 B
Scala

package edx.core.prefab.node
import codechicken.multipart.TMultiPart
import net.minecraft.tileentity.TileEntity
import net.minecraft.world.World
import resonantengine.lib.grid.core.NodeConnector
/**
* A trait that allows nodes to works with Forge Multipart. This trait MUST be mixed in.
* @author Calclavia
*/
trait TMultipartNode[A <: AnyRef] extends NodeConnector[A]
{
override def world: World =
{
return parent match
{
case p: TMultiPart => p.world
case p: TileEntity => p.getWorldObj
}
}
override def x: Double =
{
return parent match
{
case p: TMultiPart => p.x
case p: TileEntity => p.xCoord
}
}
override def y: Double =
{
return parent match
{
case p: TMultiPart => p.y
case p: TileEntity => p.yCoord
}
}
override def z: Double =
{
return parent match
{
case p: TMultiPart => p.z
case p: TileEntity => p.zCoord
}
}
}