package net.minecraft.block;
import java.util.Random;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
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.entity.monster.EntitySilverfish;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.BlockPos;
import net.minecraft.util.IStringSerializable;
import net.minecraft.world.World;
public class BlockSilverfish extends Block
{
public static final PropertyEnum VARIANT_PROP = PropertyEnum.create("variant", BlockSilverfish.EnumType.class);
private static final String __OBFID = "CL_00000271";
public BlockSilverfish()
{
super(Material.clay);
this.setDefaultState(this.blockState.getBaseState().withProperty(VARIANT_PROP, BlockSilverfish.EnumType.STONE));
this.setHardness(0.0F);
this.setCreativeTab(CreativeTabs.tabDecorations);
}
/**
* Returns the quantity of items to drop on block destruction.
*/
public int quantityDropped(Random random)
{
return 0;
}
public static boolean func_176377_d(IBlockState p_176377_0_)
{
Block var1 = p_176377_0_.getBlock();
return p_176377_0_ == Blocks.stone.getDefaultState().withProperty(BlockStone.VARIANT_PROP, BlockStone.EnumType.STONE) || var1 == Blocks.cobblestone || var1 == Blocks.stonebrick;
}
protected ItemStack createStackedBlock(IBlockState state)
{
switch (BlockSilverfish.SwitchEnumType.field_180178_a[((BlockSilverfish.EnumType)state.getValue(VARIANT_PROP)).ordinal()])
{
case 1:
return new ItemStack(Blocks.cobblestone);
case 2:
return new ItemStack(Blocks.stonebrick);
case 3:
return new ItemStack(Blocks.stonebrick, 1, BlockStoneBrick.EnumType.MOSSY.getMetaFromState());
case 4:
return new ItemStack(Blocks.stonebrick, 1, BlockStoneBrick.EnumType.CRACKED.getMetaFromState());
case 5:
return new ItemStack(Blocks.stonebrick, 1, BlockStoneBrick.EnumType.CHISELED.getMetaFromState());
default:
return new ItemStack(Blocks.stone);
}
}
/**
* Spawns this Block's drops into the World as EntityItems.
*
* @param chance The chance that each Item is actually spawned (1.0 = always, 0.0 = never)
* @param fortune The player's fortune level
*/
public void dropBlockAsItemWithChance(World worldIn, BlockPos pos, IBlockState state, float chance, int fortune)
{
if (!worldIn.isRemote && worldIn.getGameRules().getGameRuleBooleanValue("doTileDrops"))
{
EntitySilverfish var6 = new EntitySilverfish(worldIn);
var6.setLocationAndAngles((double)pos.getX() + 0.5D, (double)pos.getY(), (double)pos.getZ() + 0.5D, 0.0F, 0.0F);
worldIn.spawnEntityInWorld(var6);
var6.spawnExplosionParticle();
}
}
public int getDamageValue(World worldIn, BlockPos pos)
{
IBlockState var3 = worldIn.getBlockState(pos);
return var3.getBlock().getMetaFromState(var3);
}
/**
* Convert the given metadata into a BlockState for this Block
*/
public IBlockState getStateFromMeta(int meta)
{
return this.getDefaultState().withProperty(VARIANT_PROP, BlockSilverfish.EnumType.func_176879_a(meta));
}
/**
* Convert the BlockState into the correct metadata value
*/
public int getMetaFromState(IBlockState state)
{
return ((BlockSilverfish.EnumType)state.getValue(VARIANT_PROP)).func_176881_a();
}
protected BlockState createBlockState()
{
return new BlockState(this, new IProperty[] {VARIANT_PROP});
}
public static enum EnumType implements IStringSerializable
{
STONE("STONE", 0, 0, "stone", (BlockSilverfish.SwitchEnumType)null)
{
private static final String __OBFID = "CL_00002097";
public IBlockState func_176883_d()
{
return Blocks.stone.getDefaultState().withProperty(BlockStone.VARIANT_PROP, BlockStone.EnumType.STONE);
}
},
COBBLESTONE("COBBLESTONE", 1, 1, "cobblestone", "cobble", (BlockSilverfish.SwitchEnumType)null)
{
private static final String __OBFID = "CL_00002096";
public IBlockState func_176883_d()
{
return Blocks.cobblestone.getDefaultState();
}
},
STONEBRICK("STONEBRICK", 2, 2, "stone_brick", "brick", (BlockSilverfish.SwitchEnumType)null)
{
private static final String __OBFID = "CL_00002095";
public IBlockState func_176883_d()
{
return Blocks.stonebrick.getDefaultState().withProperty(BlockStoneBrick.VARIANT_PROP, BlockStoneBrick.EnumType.DEFAULT);
}
},
MOSSY_STONEBRICK("MOSSY_STONEBRICK", 3, 3, "mossy_brick", "mossybrick", (BlockSilverfish.SwitchEnumType)null)
{
private static final String __OBFID = "CL_00002094";
public IBlockState func_176883_d()
{
return Blocks.stonebrick.getDefaultState().withProperty(BlockStoneBrick.VARIANT_PROP, BlockStoneBrick.EnumType.MOSSY);
}
},
CRACKED_STONEBRICK("CRACKED_STONEBRICK", 4, 4, "cracked_brick", "crackedbrick", (BlockSilverfish.SwitchEnumType)null)
{
private static final String __OBFID = "CL_00002093";
public IBlockState func_176883_d()
{
return Blocks.stonebrick.getDefaultState().withProperty(BlockStoneBrick.VARIANT_PROP, BlockStoneBrick.EnumType.CRACKED);
}
},
CHISELED_STONEBRICK("CHISELED_STONEBRICK", 5, 5, "chiseled_brick", "chiseledbrick", (BlockSilverfish.SwitchEnumType)null)
{
private static final String __OBFID = "CL_00002092";
public IBlockState func_176883_d()
{
return Blocks.stonebrick.getDefaultState().withProperty(BlockStoneBrick.VARIANT_PROP, BlockStoneBrick.EnumType.CHISELED);
}
};
private static final BlockSilverfish.EnumType[] field_176885_g = new BlockSilverfish.EnumType[values().length];
private final int field_176893_h;
private final String field_176894_i;
private final String field_176891_j;
private static final BlockSilverfish.EnumType[] $VALUES = new BlockSilverfish.EnumType[]{STONE, COBBLESTONE, STONEBRICK, MOSSY_STONEBRICK, CRACKED_STONEBRICK, CHISELED_STONEBRICK};
private static final String __OBFID = "CL_00002098";
private EnumType(String p_i45704_1_, int p_i45704_2_, int p_i45704_3_, String p_i45704_4_)
{
this(p_i45704_1_, p_i45704_2_, p_i45704_3_, p_i45704_4_, p_i45704_4_);
}
private EnumType(String p_i45705_1_, int p_i45705_2_, int p_i45705_3_, String p_i45705_4_, String p_i45705_5_)
{
this.field_176893_h = p_i45705_3_;
this.field_176894_i = p_i45705_4_;
this.field_176891_j = p_i45705_5_;
}
public int func_176881_a()
{
return this.field_176893_h;
}
public String toString()
{
return this.field_176894_i;
}
public static BlockSilverfish.EnumType func_176879_a(int p_176879_0_)
{
if (p_176879_0_ < 0 || p_176879_0_ >= field_176885_g.length)
{
p_176879_0_ = 0;
}
return field_176885_g[p_176879_0_];
}
public String getName()
{
return this.field_176894_i;
}
public String func_176882_c()
{
return this.field_176891_j;
}
public abstract IBlockState func_176883_d();
public static BlockSilverfish.EnumType func_176878_a(IBlockState p_176878_0_)
{
BlockSilverfish.EnumType[] var1 = values();
int var2 = var1.length;
for (int var3 = 0; var3 < var2; ++var3)
{
BlockSilverfish.EnumType var4 = var1[var3];
if (p_176878_0_ == var4.func_176883_d())
{
return var4;
}
}
return STONE;
}
EnumType(String p_i45706_1_, int p_i45706_2_, int p_i45706_3_, String p_i45706_4_, BlockSilverfish.SwitchEnumType p_i45706_5_)
{
this(p_i45706_1_, p_i45706_2_, p_i45706_3_, p_i45706_4_);
}
EnumType(String p_i45707_1_, int p_i45707_2_, int p_i45707_3_, String p_i45707_4_, String p_i45707_5_, BlockSilverfish.SwitchEnumType p_i45707_6_)
{
this(p_i45707_1_, p_i45707_2_, p_i45707_3_, p_i45707_4_, p_i45707_5_);
}
static {
BlockSilverfish.EnumType[] var0 = values();
int var1 = var0.length;
for (int var2 = 0; var2 < var1; ++var2)
{
BlockSilverfish.EnumType var3 = var0[var2];
field_176885_g[var3.func_176881_a()] = var3;
}
}
}
static final class SwitchEnumType
{
static final int[] field_180178_a = new int[BlockSilverfish.EnumType.values().length];
private static final String __OBFID = "CL_00002099";
static
{
try
{
field_180178_a[BlockSilverfish.EnumType.COBBLESTONE.ordinal()] = 1;
}
catch (NoSuchFieldError var5)
{
;
}
try
{
field_180178_a[BlockSilverfish.EnumType.STONEBRICK.ordinal()] = 2;
}
catch (NoSuchFieldError var4)
{
;
}
try
{
field_180178_a[BlockSilverfish.EnumType.MOSSY_STONEBRICK.ordinal()] = 3;
}
catch (NoSuchFieldError var3)
{
;
}
try
{
field_180178_a[BlockSilverfish.EnumType.CRACKED_STONEBRICK.ordinal()] = 4;
}
catch (NoSuchFieldError var2)
{
;
}
try
{
field_180178_a[BlockSilverfish.EnumType.CHISELED_STONEBRICK.ordinal()] = 5;
}
catch (NoSuchFieldError var1)
{
;
}
}
}
}