Newer
Older
void-pack-super-server / work / decompile-ee3ecae0 / net / minecraft / server / BlockActionContextDirectional.java
package net.minecraft.server;

public class BlockActionContextDirectional extends BlockActionContext {

    private final EnumDirection g;

    public BlockActionContextDirectional(World world, BlockPosition blockposition, EnumDirection enumdirection, ItemStack itemstack, EnumDirection enumdirection1) {
        super(world, (EntityHuman) null, EnumHand.MAIN_HAND, itemstack, new MovingObjectPositionBlock(new Vec3D((double) blockposition.getX() + 0.5D, (double) blockposition.getY(), (double) blockposition.getZ() + 0.5D), enumdirection1, blockposition, false));
        this.g = enumdirection;
    }

    @Override
    public BlockPosition getClickPosition() {
        return this.d.getBlockPosition();
    }

    @Override
    public boolean b() {
        return this.e.getType(this.d.getBlockPosition()).a((BlockActionContext) this);
    }

    @Override
    public boolean c() {
        return this.b();
    }

    @Override
    public EnumDirection d() {
        return EnumDirection.DOWN;
    }

    @Override
    public EnumDirection[] e() {
        switch (this.g) {
            case DOWN:
            default:
                return new EnumDirection[]{EnumDirection.DOWN, EnumDirection.NORTH, EnumDirection.EAST, EnumDirection.SOUTH, EnumDirection.WEST, EnumDirection.UP};
            case UP:
                return new EnumDirection[]{EnumDirection.DOWN, EnumDirection.UP, EnumDirection.NORTH, EnumDirection.EAST, EnumDirection.SOUTH, EnumDirection.WEST};
            case NORTH:
                return new EnumDirection[]{EnumDirection.DOWN, EnumDirection.NORTH, EnumDirection.EAST, EnumDirection.WEST, EnumDirection.UP, EnumDirection.SOUTH};
            case SOUTH:
                return new EnumDirection[]{EnumDirection.DOWN, EnumDirection.SOUTH, EnumDirection.EAST, EnumDirection.WEST, EnumDirection.UP, EnumDirection.NORTH};
            case WEST:
                return new EnumDirection[]{EnumDirection.DOWN, EnumDirection.WEST, EnumDirection.SOUTH, EnumDirection.UP, EnumDirection.NORTH, EnumDirection.EAST};
            case EAST:
                return new EnumDirection[]{EnumDirection.DOWN, EnumDirection.EAST, EnumDirection.SOUTH, EnumDirection.UP, EnumDirection.NORTH, EnumDirection.WEST};
        }
    }

    @Override
    public EnumDirection f() {
        return this.g.m() == EnumDirection.EnumAxis.Y ? EnumDirection.NORTH : this.g;
    }

    @Override
    public boolean isSneaking() {
        return false;
    }

    @Override
    public float h() {
        return (float) (this.g.get2DRotationValue() * 90);
    }
}