Applied-Energistics-2-tiler.../helpers/MetaRotation.java

52 lines
1.1 KiB
Java
Raw Normal View History

package appeng.helpers;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeDirection;
import appeng.api.util.IOrientable;
public class MetaRotation implements IOrientable
{
final IBlockAccess w;
final int x;
final int y;
final int z;
public MetaRotation(IBlockAccess world, int x, int y, int z) {
w = world;
this.x = x;
this.y = y;
this.z = z;
}
@Override
public void setOrientation(ForgeDirection Forward, ForgeDirection Up)
{
if ( w instanceof World )
((World) w).setBlockMetadataWithNotify( x, y, z, Up.ordinal(), 1 + 2 );
else
throw new RuntimeException( w.getClass().getName() + " recieved, exptected World" );
}
@Override
public ForgeDirection getUp()
{
return ForgeDirection.getOrientation( w.getBlockMetadata( x, y, z ) );
}
@Override
public ForgeDirection getForward()
{
if ( getUp().offsetY == 0 )
return ForgeDirection.UP;
return ForgeDirection.SOUTH;
}
@Override
public boolean canBeRotated()
{
return true;
}
}