package net.minecraft.block; import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockState; import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Blocks; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.BlockPos; import net.minecraft.util.IStringSerializable; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class BlockWall extends Block { public static final PropertyBool field_176256_a = PropertyBool.create("up"); public static final PropertyBool field_176254_b = PropertyBool.create("north"); public static final PropertyBool field_176257_M = PropertyBool.create("east"); public static final PropertyBool field_176258_N = PropertyBool.create("south"); public static final PropertyBool field_176259_O = PropertyBool.create("west"); public static final PropertyEnum field_176255_P = PropertyEnum.create("variant", BlockWall.EnumType.class); private static final String __OBFID = "CL_00000331"; public BlockWall(Block p_i45435_1_) { super(p_i45435_1_.blockMaterial); this.setDefaultState(this.blockState.getBaseState().withProperty(field_176256_a, Boolean.valueOf(false)).withProperty(field_176254_b, Boolean.valueOf(false)).withProperty(field_176257_M, Boolean.valueOf(false)).withProperty(field_176258_N, Boolean.valueOf(false)).withProperty(field_176259_O, Boolean.valueOf(false)).withProperty(field_176255_P, BlockWall.EnumType.NORMAL)); this.setHardness(p_i45435_1_.blockHardness); this.setResistance(p_i45435_1_.blockResistance / 3.0F); this.setStepSound(p_i45435_1_.stepSound); this.setCreativeTab(CreativeTabs.tabBlock); } public boolean isFullCube() { return false; } public boolean isPassable(IBlockAccess blockAccess, BlockPos pos) { return false; } public boolean isOpaqueCube() { return false; } public void setBlockBoundsBasedOnState(IBlockAccess access, BlockPos pos) { boolean var3 = this.func_176253_e(access, pos.offsetNorth()); boolean var4 = this.func_176253_e(access, pos.offsetSouth()); boolean var5 = this.func_176253_e(access, pos.offsetWest()); boolean var6 = this.func_176253_e(access, pos.offsetEast()); float var7 = 0.25F; float var8 = 0.75F; float var9 = 0.25F; float var10 = 0.75F; float var11 = 1.0F; if (var3) { var9 = 0.0F; } if (var4) { var10 = 1.0F; } if (var5) { var7 = 0.0F; } if (var6) { var8 = 1.0F; } if (var3 && var4 && !var5 && !var6) { var11 = 0.8125F; var7 = 0.3125F; var8 = 0.6875F; } else if (!var3 && !var4 && var5 && var6) { var11 = 0.8125F; var9 = 0.3125F; var10 = 0.6875F; } this.setBlockBounds(var7, 0.0F, var9, var8, var11, var10); } public AxisAlignedBB getCollisionBoundingBox(World worldIn, BlockPos pos, IBlockState state) { this.setBlockBoundsBasedOnState(worldIn, pos); this.maxY = 1.5D; return super.getCollisionBoundingBox(worldIn, pos, state); } public boolean func_176253_e(IBlockAccess p_176253_1_, BlockPos p_176253_2_) { Block var3 = p_176253_1_.getBlockState(p_176253_2_).getBlock(); return var3 == Blocks.barrier ? false : (var3 != this && !(var3 instanceof BlockFenceGate) ? (var3.blockMaterial.isOpaque() && var3.isFullCube() ? var3.blockMaterial != Material.gourd : false) : true); } /** * Get the damage value that this Block should drop */ public int damageDropped(IBlockState state) { return ((BlockWall.EnumType)state.getValue(field_176255_P)).func_176657_a(); } /** * Convert the given metadata into a BlockState for this Block */ public IBlockState getStateFromMeta(int meta) { return this.getDefaultState().withProperty(field_176255_P, BlockWall.EnumType.func_176660_a(meta)); } /** * Convert the BlockState into the correct metadata value */ public int getMetaFromState(IBlockState state) { return ((BlockWall.EnumType)state.getValue(field_176255_P)).func_176657_a(); } /** * Get the actual Block state of this Block at the given position. This applies properties not visible in the * metadata, such as fence connections. */ public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos) { return state.withProperty(field_176256_a, Boolean.valueOf(!worldIn.isAirBlock(pos.offsetUp()))).withProperty(field_176254_b, Boolean.valueOf(this.func_176253_e(worldIn, pos.offsetNorth()))).withProperty(field_176257_M, Boolean.valueOf(this.func_176253_e(worldIn, pos.offsetEast()))).withProperty(field_176258_N, Boolean.valueOf(this.func_176253_e(worldIn, pos.offsetSouth()))).withProperty(field_176259_O, Boolean.valueOf(this.func_176253_e(worldIn, pos.offsetWest()))); } protected BlockState createBlockState() { return new BlockState(this, new IProperty[] {field_176256_a, field_176254_b, field_176257_M, field_176259_O, field_176258_N, field_176255_P}); } public static enum EnumType implements IStringSerializable { NORMAL("NORMAL", 0, 0, "cobblestone", "normal"), MOSSY("MOSSY", 1, 1, "mossy_cobblestone", "mossy"); private static final BlockWall.EnumType[] field_176666_c = new BlockWall.EnumType[values().length]; private final int field_176663_d; private final String field_176664_e; private String field_176661_f; private static final BlockWall.EnumType[] $VALUES = new BlockWall.EnumType[]{NORMAL, MOSSY}; private static final String __OBFID = "CL_00002048"; private EnumType(String p_i45673_1_, int p_i45673_2_, int p_i45673_3_, String p_i45673_4_, String p_i45673_5_) { this.field_176663_d = p_i45673_3_; this.field_176664_e = p_i45673_4_; this.field_176661_f = p_i45673_5_; } public int func_176657_a() { return this.field_176663_d; } public String toString() { return this.field_176664_e; } public static BlockWall.EnumType func_176660_a(int p_176660_0_) { if (p_176660_0_ < 0 || p_176660_0_ >= field_176666_c.length) { p_176660_0_ = 0; } return field_176666_c[p_176660_0_]; } public String getName() { return this.field_176664_e; } public String func_176659_c() { return this.field_176661_f; } static { BlockWall.EnumType[] var0 = values(); int var1 = var0.length; for (int var2 = 0; var2 < var1; ++var2) { BlockWall.EnumType var3 = var0[var2]; field_176666_c[var3.func_176657_a()] = var3; } } } }