package net.minecraft.server; import java.util.Random; import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason; // CraftBukkit public class BlockMonsterEggs extends Block { public static final BlockStateEnum<BlockMonsterEggs.EnumMonsterEggVarient> VARIANT = BlockStateEnum.of("variant", BlockMonsterEggs.EnumMonsterEggVarient.class); public BlockMonsterEggs() { super(Material.CLAY); this.y(this.blockStateList.getBlockData().set(BlockMonsterEggs.VARIANT, BlockMonsterEggs.EnumMonsterEggVarient.STONE)); this.c(0.0F); this.a(CreativeModeTab.c); } public int a(Random random) { return 0; } public static boolean i(IBlockData iblockdata) { Block block = iblockdata.getBlock(); return iblockdata == Blocks.STONE.getBlockData().set(BlockStone.VARIANT, BlockStone.EnumStoneVariant.STONE) || block == Blocks.COBBLESTONE || block == Blocks.STONEBRICK; } protected ItemStack w(IBlockData iblockdata) { switch ((BlockMonsterEggs.EnumMonsterEggVarient) iblockdata.get(BlockMonsterEggs.VARIANT)) { case COBBLESTONE: return new ItemStack(Blocks.COBBLESTONE); case STONEBRICK: return new ItemStack(Blocks.STONEBRICK); case MOSSY_STONEBRICK: return new ItemStack(Blocks.STONEBRICK, 1, BlockSmoothBrick.EnumStonebrickType.MOSSY.a()); case CRACKED_STONEBRICK: return new ItemStack(Blocks.STONEBRICK, 1, BlockSmoothBrick.EnumStonebrickType.CRACKED.a()); case CHISELED_STONEBRICK: return new ItemStack(Blocks.STONEBRICK, 1, BlockSmoothBrick.EnumStonebrickType.CHISELED.a()); default: return new ItemStack(Blocks.STONE); } } public void dropNaturally(World world, BlockPosition blockposition, IBlockData iblockdata, float f, int i) { if (!world.isClientSide && world.getGameRules().getBoolean("doTileDrops")) { EntitySilverfish entitysilverfish = new EntitySilverfish(world); entitysilverfish.setPositionRotation((double) blockposition.getX() + 0.5D, (double) blockposition.getY(), (double) blockposition.getZ() + 0.5D, 0.0F, 0.0F); world.addEntity(entitysilverfish, SpawnReason.SILVERFISH_BLOCK); // CraftBukkit - add SpawnReason entitysilverfish.doSpawnEffect(); } } public ItemStack a(World world, BlockPosition blockposition, IBlockData iblockdata) { return new ItemStack(this, 1, iblockdata.getBlock().toLegacyData(iblockdata)); } public IBlockData fromLegacyData(int i) { return this.getBlockData().set(BlockMonsterEggs.VARIANT, BlockMonsterEggs.EnumMonsterEggVarient.a(i)); } public int toLegacyData(IBlockData iblockdata) { return ((BlockMonsterEggs.EnumMonsterEggVarient) iblockdata.get(BlockMonsterEggs.VARIANT)).a(); } protected BlockStateList getStateList() { return new BlockStateList(this, new IBlockState[] { BlockMonsterEggs.VARIANT}); } public static enum EnumMonsterEggVarient implements INamable { STONE(0, "stone") {; public IBlockData d() { return Blocks.STONE.getBlockData().set(BlockStone.VARIANT, BlockStone.EnumStoneVariant.STONE); } }, COBBLESTONE(1, "cobblestone", "cobble") {; public IBlockData d() { return Blocks.COBBLESTONE.getBlockData(); } }, STONEBRICK(2, "stone_brick", "brick") {; public IBlockData d() { return Blocks.STONEBRICK.getBlockData().set(BlockSmoothBrick.VARIANT, BlockSmoothBrick.EnumStonebrickType.DEFAULT); } }, MOSSY_STONEBRICK(3, "mossy_brick", "mossybrick") {; public IBlockData d() { return Blocks.STONEBRICK.getBlockData().set(BlockSmoothBrick.VARIANT, BlockSmoothBrick.EnumStonebrickType.MOSSY); } }, CRACKED_STONEBRICK(4, "cracked_brick", "crackedbrick") {; public IBlockData d() { return Blocks.STONEBRICK.getBlockData().set(BlockSmoothBrick.VARIANT, BlockSmoothBrick.EnumStonebrickType.CRACKED); } }, CHISELED_STONEBRICK(5, "chiseled_brick", "chiseledbrick") {; public IBlockData d() { return Blocks.STONEBRICK.getBlockData().set(BlockSmoothBrick.VARIANT, BlockSmoothBrick.EnumStonebrickType.CHISELED); } }; private static final BlockMonsterEggs.EnumMonsterEggVarient[] g = new BlockMonsterEggs.EnumMonsterEggVarient[values().length]; private final int h; private final String i; private final String j; private EnumMonsterEggVarient(int i, String s) { this(i, s, s); } private EnumMonsterEggVarient(int i, String s, String s1) { this.h = i; this.i = s; this.j = s1; } public int a() { return this.h; } public String toString() { return this.i; } public static BlockMonsterEggs.EnumMonsterEggVarient a(int i) { if (i < 0 || i >= BlockMonsterEggs.EnumMonsterEggVarient.g.length) { i = 0; } return BlockMonsterEggs.EnumMonsterEggVarient.g[i]; } public String getName() { return this.i; } public String c() { return this.j; } public abstract IBlockData d(); public static BlockMonsterEggs.EnumMonsterEggVarient a(IBlockData iblockdata) { BlockMonsterEggs.EnumMonsterEggVarient[] ablockmonstereggs_enummonstereggvarient = values(); int i = ablockmonstereggs_enummonstereggvarient.length; for (int j = 0; j < i; ++j) { BlockMonsterEggs.EnumMonsterEggVarient blockmonstereggs_enummonstereggvarient = ablockmonstereggs_enummonstereggvarient[j]; if (iblockdata == blockmonstereggs_enummonstereggvarient.d()) { return blockmonstereggs_enummonstereggvarient; } } return BlockMonsterEggs.EnumMonsterEggVarient.STONE; } EnumMonsterEggVarient(int i, String s, Object object) { this(i, s); } EnumMonsterEggVarient(int i, String s, String s1, Object object) { this(i, s, s1); } static { BlockMonsterEggs.EnumMonsterEggVarient[] ablockmonstereggs_enummonstereggvarient = values(); int i = ablockmonstereggs_enummonstereggvarient.length; for (int j = 0; j < i; ++j) { BlockMonsterEggs.EnumMonsterEggVarient blockmonstereggs_enummonstereggvarient = ablockmonstereggs_enummonstereggvarient[j]; BlockMonsterEggs.EnumMonsterEggVarient.g[blockmonstereggs_enummonstereggvarient.a()] = blockmonstereggs_enummonstereggvarient; } } } }