package com.agilemods.materiamuto.common.block.prefab; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.init.Blocks; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.World; import com.agilemods.materiamuto.common.core.MMTab; import com.agilemods.materiamuto.common.tile.prefab.TileMM; public abstract class MMTileBlock extends BlockContainer { public MMTileBlock(Material material) { super(material); if (registerInCreative()) { setCreativeTab(MMTab.INSTANCE); } } public MMTileBlock(Material material, float hardness, float resistance) { this(material); this.setHardness(hardness); this.setResistance(resistance); } @Override public void breakBlock(World world, int x, int y, int z, Block block, int meta) { TileEntity tileEntity = world.getTileEntity(x, y, z); if (tileEntity != null && tileEntity instanceof TileMM) { ((TileMM) tileEntity).onBlockBroken(); } super.breakBlock(world, x, y, z, block, meta); } @SideOnly(Side.CLIENT) public abstract boolean useCustomRender(); @SideOnly(Side.CLIENT) public abstract void registerBlockIcons(IIconRegister iconRegister); @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta) { return Blocks.stone.getIcon(0, 0); } @SideOnly(Side.CLIENT) @Override public boolean isOpaqueCube() { return !this.useCustomRender(); } @SideOnly(Side.CLIENT) @Override public boolean renderAsNormalBlock() { return !this.useCustomRender(); } @SideOnly(Side.CLIENT) @Override public int getRenderType() { return this.useCustomRender() ? -1 : 0; } boolean registerInCreative() { return true; } }