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
|
|
|
}
|