electrodynamics/src/main/scala/edx/mechanical/mech/gear/GearMultiBlockHandler.scala

30 lines
879 B
Scala
Raw Normal View History

2015-01-14 12:06:03 +01:00
package edx.mechanical.mech.gear
2014-09-27 20:37:05 +02:00
2015-01-14 12:06:03 +01:00
import codechicken.multipart.TileMultipart
2014-09-27 20:37:05 +02:00
import net.minecraftforge.common.util.ForgeDirection
2015-01-26 12:40:32 +01:00
import resonantengine.lib.transform.vector.Vector3
2015-01-26 13:29:32 +01:00
import resonantengine.prefab.block.multiblock.MultiBlockHandler
2014-09-27 20:37:05 +02:00
class GearMultiBlockHandler(wrapper: PartGear) extends MultiBlockHandler[PartGear](wrapper: PartGear)
{
2014-11-13 07:17:05 +01:00
override def getWrapperAt(position: Vector3): PartGear =
{
val tile = position.getTileEntity(this.tile.getWorld)
2014-09-27 20:37:05 +02:00
2014-11-13 07:17:05 +01:00
if (tile.isInstanceOf[TileMultipart])
2014-09-27 20:37:05 +02:00
{
2014-11-13 07:17:05 +01:00
val part = tile.asInstanceOf[TileMultipart].partMap(getPlacementSide.ordinal)
if (part.isInstanceOf[PartGear])
{
if ((part.asInstanceOf[PartGear]).tier == this.tile.tier)
2014-09-27 20:37:05 +02:00
{
2014-11-13 07:17:05 +01:00
return part.asInstanceOf[PartGear]
2014-09-27 20:37:05 +02:00
}
2014-11-13 07:17:05 +01:00
}
2014-09-27 20:37:05 +02:00
}
2014-11-13 07:17:05 +01:00
return null
}
2014-09-27 20:37:05 +02:00
2014-11-13 07:17:05 +01:00
def getPlacementSide: ForgeDirection = tile.placementSide
2014-09-27 20:37:05 +02:00
}