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.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.init.Blocks; import net.minecraft.util.IIcon; import com.agilemods.materiamuto.common.core.MMTab; public abstract class MMBlock extends Block { public MMBlock(Material material) { super(material); if (registerInCreative()) { setCreativeTab(MMTab.INSTANCE); } } public MMBlock(Material material, float hardness, float resistance) { this(material); this.setHardness(hardness); this.setResistance(resistance); } @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; } }