public class CeresBlocks extends Block implements ISortableBlock{
public static final PropertyEnum<EnumCeresBlocks> BASIC_TYPE = PropertyEnum.create("type", EnumCeresBlocks.class);
public CeresBlocks()
{
super(Material.ROCK);
this.setUnlocalizedName("ceresblocks");
this.setSoundType(SoundType.STONE);
this.setHarvestLevel("pickaxe", 2);
}
@SideOnly(Side.CLIENT)
@Override
public CreativeTabs getCreativeTabToDisplayOn()
{
return GSCreativeTabs.GSBlocksTab;
}
@SideOnly(Side.CLIENT)
@Override
public void getSubBlocks(CreativeTabs tab, NonNullList<ItemStack> list)
{
for (EnumCeresBlocks blockBasic : EnumCeresBlocks.values())
{
list.add(new ItemStack(this, 1, blockBasic.getMeta()));
}
}
@Override
public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) {
return new ItemStack(Item.getItemFromBlock(this), 1, this.getMetaFromState(state));
}
@Override
public EnumSortCategoryBlock getCategory(int meta) {
return EnumSortCategoryBlock.GENERAL;
}
@Override
public Item getItemDropped(IBlockState state, Random rand, int fortune)
{
switch (getMetaFromState(state))
{
case 2:
return GSItems.BASIC;
case 3:
return GCItems.meteoricIronRaw;
default:
return Item.getItemFromBlock(this);
}
}
@Override
public int damageDropped(IBlockState state)
{
switch (getMetaFromState(state))
{
case 2:
return 3;
case 3:
return 0;
default:
return getMetaFromState(state);
}
}
@Override
public int quantityDropped(IBlockState state, int fortune, Random random)
{
int bonus = 0;
if(this.getMetaFromState(state) == 2)
{
bonus = 2;
}
if (this.getMetaFromState(state) == 3)
{
bonus = 1;
}
if (fortune > 0 && Item.getItemFromBlock(this) != this.getItemDropped(state, random, fortune))
{
int j = random.nextInt(fortune + 2) - 1;
if (j < 0)
{
j = 0;
}
return this.quantityDropped(random) * (j + 1) + bonus;
}
else
{
return this.quantityDropped(random) + bonus;
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public enum EnumCeresBlocks implements IStringSerializable
{
CERES_GRUNT(0, "ceres_grunt"),
CERES_SUBGRUNT(1, "ceres_subgrunt"),
CERES_DOLOMITE_ORE(2, "ceres_dolomite_ore"),
CERES_METEORICIRON_ORE(3, "ceres_meteoriciron_ore");
private final int meta;
private final String name;
private EnumCeresBlocks(int meta, String name)
{
this.meta = meta;
this.name = name;
}
public int getMeta() { return this.meta; }
public static EnumCeresBlocks byMetadata(int meta) { return values()[meta]; }
@Override
public String getName() { return this.name; }
}
@Override
public IBlockState getStateFromMeta(int meta)
{
return this.getDefaultState().withProperty(BASIC_TYPE, EnumCeresBlocks.byMetadata(meta));
}
@Override
public int getMetaFromState(IBlockState state) {
return ((EnumCeresBlocks) state.getValue(BASIC_TYPE)).getMeta();
}
@Override
protected BlockStateContainer createBlockState()
{
return new BlockStateContainer(this, BASIC_TYPE);
}
}