2015-01-14 12:06:03 +01:00
|
|
|
package edx.core.prefab.node
|
2014-07-14 23:29:24 +02:00
|
|
|
|
|
|
|
import codechicken.multipart.TMultiPart
|
|
|
|
import net.minecraft.tileentity.TileEntity
|
|
|
|
import net.minecraft.world.World
|
2015-01-26 12:40:32 +01:00
|
|
|
import resonantengine.lib.grid.core.NodeConnector
|
2014-07-14 23:29:24 +02:00
|
|
|
|
|
|
|
/**
|
2014-09-21 10:15:20 +02:00
|
|
|
* A trait that allows nodes to works with Forge Multipart. This trait MUST be mixed in.
|
2014-07-14 23:29:24 +02:00
|
|
|
* @author Calclavia
|
|
|
|
*/
|
2014-11-05 04:27:44 +01:00
|
|
|
trait TMultipartNode[A <: AnyRef] extends NodeConnector[A]
|
2014-07-14 23:29:24 +02:00
|
|
|
{
|
|
|
|
override def world: World =
|
|
|
|
{
|
2015-01-07 03:59:50 +01:00
|
|
|
return parent match
|
2014-09-07 05:50:03 +02:00
|
|
|
{
|
2015-01-07 03:59:50 +01:00
|
|
|
case p: TMultiPart => p.world
|
|
|
|
case p: TileEntity => p.getWorldObj
|
2014-08-23 19:57:44 +02:00
|
|
|
}
|
2014-07-14 23:29:24 +02:00
|
|
|
}
|
|
|
|
|
2014-08-14 13:22:49 +02:00
|
|
|
override def x: Double =
|
2014-07-14 23:29:24 +02:00
|
|
|
{
|
2015-01-07 03:59:50 +01:00
|
|
|
return parent match
|
2014-09-07 05:50:03 +02:00
|
|
|
{
|
2015-01-07 03:59:50 +01:00
|
|
|
case p: TMultiPart => p.x
|
|
|
|
case p: TileEntity => p.xCoord
|
2014-08-23 19:57:44 +02:00
|
|
|
}
|
2014-08-14 13:22:49 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
override def y: Double =
|
|
|
|
{
|
2015-01-07 03:59:50 +01:00
|
|
|
return parent match
|
2014-09-07 05:50:03 +02:00
|
|
|
{
|
2015-01-07 03:59:50 +01:00
|
|
|
case p: TMultiPart => p.y
|
|
|
|
case p: TileEntity => p.yCoord
|
2014-08-23 19:57:44 +02:00
|
|
|
}
|
2014-08-14 13:22:49 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
override def z: Double =
|
|
|
|
{
|
2015-01-07 03:59:50 +01:00
|
|
|
return parent match
|
2014-09-07 05:50:03 +02:00
|
|
|
{
|
2015-01-07 03:59:50 +01:00
|
|
|
case p: TMultiPart => p.z
|
|
|
|
case p: TileEntity => p.zCoord
|
2014-08-23 19:57:44 +02:00
|
|
|
}
|
2014-07-14 23:29:24 +02:00
|
|
|
}
|
|
|
|
}
|