51 lines
1.1 KiB
Java
51 lines
1.1 KiB
Java
package appeng.helpers;
|
|
|
|
import net.minecraft.world.IBlockAccess;
|
|
import net.minecraft.world.World;
|
|
import net.minecraftforge.common.util.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() + " received, expected 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;
|
|
}
|
|
}
|