package net.minecraft.block; import java.util.Random; import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.properties.PropertyInteger; import net.minecraft.block.state.BlockState; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class BlockRedstoneRepeater extends BlockRedstoneDiode { public static final PropertyBool field_176411_a = PropertyBool.create("locked"); public static final PropertyInteger field_176410_b = PropertyInteger.create("delay", 1, 4); private static final String __OBFID = "CL_00000301"; protected BlockRedstoneRepeater(boolean p_i45424_1_) { super(p_i45424_1_); this.setDefaultState(this.blockState.getBaseState().withProperty(AGE, EnumFacing.NORTH).withProperty(field_176410_b, Integer.valueOf(1)).withProperty(field_176411_a, Boolean.valueOf(false))); } /** * 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_176411_a, Boolean.valueOf(this.func_176405_b(worldIn, pos, state))); } public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumFacing side, float hitX, float hitY, float hitZ) { if (!playerIn.capabilities.allowEdit) { return false; } else { worldIn.setBlockState(pos, state.cycleProperty(field_176410_b), 3); return true; } } protected int func_176403_d(IBlockState p_176403_1_) { return ((Integer)p_176403_1_.getValue(field_176410_b)).intValue() * 2; } protected IBlockState func_180674_e(IBlockState p_180674_1_) { Integer var2 = (Integer)p_180674_1_.getValue(field_176410_b); Boolean var3 = (Boolean)p_180674_1_.getValue(field_176411_a); EnumFacing var4 = (EnumFacing)p_180674_1_.getValue(AGE); return Blocks.powered_repeater.getDefaultState().withProperty(AGE, var4).withProperty(field_176410_b, var2).withProperty(field_176411_a, var3); } protected IBlockState func_180675_k(IBlockState p_180675_1_) { Integer var2 = (Integer)p_180675_1_.getValue(field_176410_b); Boolean var3 = (Boolean)p_180675_1_.getValue(field_176411_a); EnumFacing var4 = (EnumFacing)p_180675_1_.getValue(AGE); return Blocks.unpowered_repeater.getDefaultState().withProperty(AGE, var4).withProperty(field_176410_b, var2).withProperty(field_176411_a, var3); } /** * Get the Item that this Block should drop when harvested. * * @param fortune the level of the Fortune enchantment on the player's tool */ public Item getItemDropped(IBlockState state, Random rand, int fortune) { return Items.repeater; } public boolean func_176405_b(IBlockAccess p_176405_1_, BlockPos p_176405_2_, IBlockState p_176405_3_) { return this.func_176407_c(p_176405_1_, p_176405_2_, p_176405_3_) > 0; } protected boolean func_149908_a(Block p_149908_1_) { return isRedstoneRepeaterBlockID(p_149908_1_); } public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { super.breakBlock(worldIn, pos, state); this.func_176400_h(worldIn, pos, state); } /** * Convert the given metadata into a BlockState for this Block */ public IBlockState getStateFromMeta(int meta) { return this.getDefaultState().withProperty(AGE, EnumFacing.getHorizontal(meta)).withProperty(field_176411_a, Boolean.valueOf(false)).withProperty(field_176410_b, Integer.valueOf(1 + (meta >> 2))); } /** * Convert the BlockState into the correct metadata value */ public int getMetaFromState(IBlockState state) { byte var2 = 0; int var3 = var2 | ((EnumFacing)state.getValue(AGE)).getHorizontalIndex(); var3 |= ((Integer)state.getValue(field_176410_b)).intValue() - 1 << 2; return var3; } protected BlockState createBlockState() { return new BlockState(this, new IProperty[] {AGE, field_176410_b, field_176411_a}); } }