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

public class BlockGrindstone extends BlockAttachable {

    public static final VoxelShape a = Block.a(2.0D, 0.0D, 6.0D, 4.0D, 7.0D, 10.0D);
    public static final VoxelShape b = Block.a(12.0D, 0.0D, 6.0D, 14.0D, 7.0D, 10.0D);
    public static final VoxelShape c = Block.a(2.0D, 7.0D, 5.0D, 4.0D, 13.0D, 11.0D);
    public static final VoxelShape d = Block.a(12.0D, 7.0D, 5.0D, 14.0D, 13.0D, 11.0D);
    public static final VoxelShape e = VoxelShapes.a(BlockGrindstone.a, BlockGrindstone.c);
    public static final VoxelShape f = VoxelShapes.a(BlockGrindstone.b, BlockGrindstone.d);
    public static final VoxelShape g = VoxelShapes.a(BlockGrindstone.e, BlockGrindstone.f);
    public static final VoxelShape h = VoxelShapes.a(BlockGrindstone.g, Block.a(4.0D, 4.0D, 2.0D, 12.0D, 16.0D, 14.0D));
    public static final VoxelShape i = Block.a(6.0D, 0.0D, 2.0D, 10.0D, 7.0D, 4.0D);
    public static final VoxelShape j = Block.a(6.0D, 0.0D, 12.0D, 10.0D, 7.0D, 14.0D);
    public static final VoxelShape k = Block.a(5.0D, 7.0D, 2.0D, 11.0D, 13.0D, 4.0D);
    public static final VoxelShape w = Block.a(5.0D, 7.0D, 12.0D, 11.0D, 13.0D, 14.0D);
    public static final VoxelShape x = VoxelShapes.a(BlockGrindstone.i, BlockGrindstone.k);
    public static final VoxelShape y = VoxelShapes.a(BlockGrindstone.j, BlockGrindstone.w);
    public static final VoxelShape z = VoxelShapes.a(BlockGrindstone.x, BlockGrindstone.y);
    public static final VoxelShape A = VoxelShapes.a(BlockGrindstone.z, Block.a(2.0D, 4.0D, 4.0D, 14.0D, 16.0D, 12.0D));
    public static final VoxelShape B = Block.a(2.0D, 6.0D, 0.0D, 4.0D, 10.0D, 7.0D);
    public static final VoxelShape D = Block.a(12.0D, 6.0D, 0.0D, 14.0D, 10.0D, 7.0D);
    public static final VoxelShape E = Block.a(2.0D, 5.0D, 7.0D, 4.0D, 11.0D, 13.0D);
    public static final VoxelShape F = Block.a(12.0D, 5.0D, 7.0D, 14.0D, 11.0D, 13.0D);
    public static final VoxelShape G = VoxelShapes.a(BlockGrindstone.B, BlockGrindstone.E);
    public static final VoxelShape H = VoxelShapes.a(BlockGrindstone.D, BlockGrindstone.F);
    public static final VoxelShape I = VoxelShapes.a(BlockGrindstone.G, BlockGrindstone.H);
    public static final VoxelShape J = VoxelShapes.a(BlockGrindstone.I, Block.a(4.0D, 2.0D, 4.0D, 12.0D, 14.0D, 16.0D));
    public static final VoxelShape K = Block.a(2.0D, 6.0D, 7.0D, 4.0D, 10.0D, 16.0D);
    public static final VoxelShape L = Block.a(12.0D, 6.0D, 7.0D, 14.0D, 10.0D, 16.0D);
    public static final VoxelShape M = Block.a(2.0D, 5.0D, 3.0D, 4.0D, 11.0D, 9.0D);
    public static final VoxelShape N = Block.a(12.0D, 5.0D, 3.0D, 14.0D, 11.0D, 9.0D);
    public static final VoxelShape O = VoxelShapes.a(BlockGrindstone.K, BlockGrindstone.M);
    public static final VoxelShape P = VoxelShapes.a(BlockGrindstone.L, BlockGrindstone.N);
    public static final VoxelShape Q = VoxelShapes.a(BlockGrindstone.O, BlockGrindstone.P);
    public static final VoxelShape R = VoxelShapes.a(BlockGrindstone.Q, Block.a(4.0D, 2.0D, 0.0D, 12.0D, 14.0D, 12.0D));
    public static final VoxelShape S = Block.a(7.0D, 6.0D, 2.0D, 16.0D, 10.0D, 4.0D);
    public static final VoxelShape T = Block.a(7.0D, 6.0D, 12.0D, 16.0D, 10.0D, 14.0D);
    public static final VoxelShape U = Block.a(3.0D, 5.0D, 2.0D, 9.0D, 11.0D, 4.0D);
    public static final VoxelShape V = Block.a(3.0D, 5.0D, 12.0D, 9.0D, 11.0D, 14.0D);
    public static final VoxelShape W = VoxelShapes.a(BlockGrindstone.S, BlockGrindstone.U);
    public static final VoxelShape X = VoxelShapes.a(BlockGrindstone.T, BlockGrindstone.V);
    public static final VoxelShape Y = VoxelShapes.a(BlockGrindstone.W, BlockGrindstone.X);
    public static final VoxelShape Z = VoxelShapes.a(BlockGrindstone.Y, Block.a(0.0D, 2.0D, 4.0D, 12.0D, 14.0D, 12.0D));
    public static final VoxelShape aa = Block.a(0.0D, 6.0D, 2.0D, 9.0D, 10.0D, 4.0D);
    public static final VoxelShape ab = Block.a(0.0D, 6.0D, 12.0D, 9.0D, 10.0D, 14.0D);
    public static final VoxelShape ac = Block.a(7.0D, 5.0D, 2.0D, 13.0D, 11.0D, 4.0D);
    public static final VoxelShape ad = Block.a(7.0D, 5.0D, 12.0D, 13.0D, 11.0D, 14.0D);
    public static final VoxelShape ae = VoxelShapes.a(BlockGrindstone.aa, BlockGrindstone.ac);
    public static final VoxelShape af = VoxelShapes.a(BlockGrindstone.ab, BlockGrindstone.ad);
    public static final VoxelShape ag = VoxelShapes.a(BlockGrindstone.ae, BlockGrindstone.af);
    public static final VoxelShape ah = VoxelShapes.a(BlockGrindstone.ag, Block.a(4.0D, 2.0D, 4.0D, 16.0D, 14.0D, 12.0D));
    public static final VoxelShape ai = Block.a(2.0D, 9.0D, 6.0D, 4.0D, 16.0D, 10.0D);
    public static final VoxelShape aj = Block.a(12.0D, 9.0D, 6.0D, 14.0D, 16.0D, 10.0D);
    public static final VoxelShape ak = Block.a(2.0D, 3.0D, 5.0D, 4.0D, 9.0D, 11.0D);
    public static final VoxelShape al = Block.a(12.0D, 3.0D, 5.0D, 14.0D, 9.0D, 11.0D);
    public static final VoxelShape am = VoxelShapes.a(BlockGrindstone.ai, BlockGrindstone.ak);
    public static final VoxelShape an = VoxelShapes.a(BlockGrindstone.aj, BlockGrindstone.al);
    public static final VoxelShape ao = VoxelShapes.a(BlockGrindstone.am, BlockGrindstone.an);
    public static final VoxelShape ap = VoxelShapes.a(BlockGrindstone.ao, Block.a(4.0D, 0.0D, 2.0D, 12.0D, 12.0D, 14.0D));
    public static final VoxelShape aq = Block.a(6.0D, 9.0D, 2.0D, 10.0D, 16.0D, 4.0D);
    public static final VoxelShape ar = Block.a(6.0D, 9.0D, 12.0D, 10.0D, 16.0D, 14.0D);
    public static final VoxelShape as = Block.a(5.0D, 3.0D, 2.0D, 11.0D, 9.0D, 4.0D);
    public static final VoxelShape at = Block.a(5.0D, 3.0D, 12.0D, 11.0D, 9.0D, 14.0D);
    public static final VoxelShape au = VoxelShapes.a(BlockGrindstone.aq, BlockGrindstone.as);
    public static final VoxelShape av = VoxelShapes.a(BlockGrindstone.ar, BlockGrindstone.at);
    public static final VoxelShape aw = VoxelShapes.a(BlockGrindstone.au, BlockGrindstone.av);
    public static final VoxelShape ax = VoxelShapes.a(BlockGrindstone.aw, Block.a(2.0D, 0.0D, 4.0D, 14.0D, 12.0D, 12.0D));
    private static final ChatMessage az = new ChatMessage("container.grindstone_title", new Object[0]);

    protected BlockGrindstone(Block.Info block_info) {
        super(block_info);
        this.p((IBlockData) ((IBlockData) ((IBlockData) this.blockStateList.getBlockData()).set(BlockGrindstone.FACING, EnumDirection.NORTH)).set(BlockGrindstone.FACE, BlockPropertyAttachPosition.WALL));
    }

    @Override
    public EnumRenderType c(IBlockData iblockdata) {
        return EnumRenderType.MODEL;
    }

    private VoxelShape i(IBlockData iblockdata) {
        EnumDirection enumdirection = (EnumDirection) iblockdata.get(BlockGrindstone.FACING);

        switch ((BlockPropertyAttachPosition) iblockdata.get(BlockGrindstone.FACE)) {
            case FLOOR:
                if (enumdirection != EnumDirection.NORTH && enumdirection != EnumDirection.SOUTH) {
                    return BlockGrindstone.A;
                }

                return BlockGrindstone.h;
            case WALL:
                if (enumdirection == EnumDirection.NORTH) {
                    return BlockGrindstone.R;
                } else if (enumdirection == EnumDirection.SOUTH) {
                    return BlockGrindstone.J;
                } else {
                    if (enumdirection == EnumDirection.EAST) {
                        return BlockGrindstone.ah;
                    }

                    return BlockGrindstone.Z;
                }
            case CEILING:
                if (enumdirection != EnumDirection.NORTH && enumdirection != EnumDirection.SOUTH) {
                    return BlockGrindstone.ax;
                }

                return BlockGrindstone.ap;
            default:
                return BlockGrindstone.A;
        }
    }

    @Override
    public VoxelShape b(IBlockData iblockdata, IBlockAccess iblockaccess, BlockPosition blockposition, VoxelShapeCollision voxelshapecollision) {
        return this.i(iblockdata);
    }

    @Override
    public VoxelShape a(IBlockData iblockdata, IBlockAccess iblockaccess, BlockPosition blockposition, VoxelShapeCollision voxelshapecollision) {
        return this.i(iblockdata);
    }

    @Override
    public boolean canPlace(IBlockData iblockdata, IWorldReader iworldreader, BlockPosition blockposition) {
        return true;
    }

    @Override
    public EnumInteractionResult interact(IBlockData iblockdata, World world, BlockPosition blockposition, EntityHuman entityhuman, EnumHand enumhand, MovingObjectPositionBlock movingobjectpositionblock) {
        if (world.isClientSide) {
            return EnumInteractionResult.SUCCESS;
        } else {
            entityhuman.openContainer(iblockdata.b(world, blockposition));
            entityhuman.a(StatisticList.INTERACT_WITH_GRINDSTONE);
            return EnumInteractionResult.SUCCESS;
        }
    }

    @Override
    public ITileInventory getInventory(IBlockData iblockdata, World world, BlockPosition blockposition) {
        return new TileInventory((i, playerinventory, entityhuman) -> {
            return new ContainerGrindstone(i, playerinventory, ContainerAccess.at(world, blockposition));
        }, BlockGrindstone.az);
    }

    @Override
    public IBlockData a(IBlockData iblockdata, EnumBlockRotation enumblockrotation) {
        return (IBlockData) iblockdata.set(BlockGrindstone.FACING, enumblockrotation.a((EnumDirection) iblockdata.get(BlockGrindstone.FACING)));
    }

    @Override
    public IBlockData a(IBlockData iblockdata, EnumBlockMirror enumblockmirror) {
        return iblockdata.a(enumblockmirror.a((EnumDirection) iblockdata.get(BlockGrindstone.FACING)));
    }

    @Override
    protected void a(BlockStateList.a<Block, IBlockData> blockstatelist_a) {
        blockstatelist_a.a(BlockGrindstone.FACING, BlockGrindstone.FACE);
    }

    @Override
    public boolean a(IBlockData iblockdata, IBlockAccess iblockaccess, BlockPosition blockposition, PathMode pathmode) {
        return false;
    }
}