icbm/src/main/java/icbm/core/di/BICBM.java

76 lines
2.6 KiB
Java

package icbm.core.di;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import icbm.core.ICBMTab;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.common.util.ForgeDirection;
import universalelectricity.prefab.block.BlockAdvanced;
import universalelectricity.prefab.implement.IRedstoneProvider;
public abstract class BICBM extends BlockAdvanced {
protected IIcon iconTop;
protected IIcon iconSide;
protected IIcon iconBottom;
protected boolean requireSidedTextures;
public BICBM(final String name, final Material material) {
super(material);
this.requireSidedTextures = false;
this.setBlockName("icbm:" + name);
this.setCreativeTab((CreativeTabs)ICBMTab.INSTANCE);
}
@Override
public int damageDropped(final int metadata) {
return metadata;
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(final IIconRegister iconRegister) {
super.registerBlockIcons(iconRegister);
if (this.requireSidedTextures) {
this.iconTop = iconRegister.registerIcon(
this.getUnlocalizedName().replace("tile.", "") + "_top");
this.iconSide = iconRegister.registerIcon(
this.getUnlocalizedName().replace("tile.", "") + "_side");
this.iconBottom = iconRegister.registerIcon(
this.getUnlocalizedName().replace("tile.", "") + "_bottom");
}
}
@Override
public int isProvidingStrongPower(final IBlockAccess par1IBlockAccess,
final int x, final int y, final int z,
final int side) {
final TileEntity tileEntity = par1IBlockAccess.getTileEntity(x, y, z);
if (tileEntity instanceof IRedstoneProvider) {
return ((IRedstoneProvider)tileEntity)
.isPoweringTo(ForgeDirection.getOrientation(side))
? 15
: 0;
}
return 0;
}
@Override
public int isProvidingWeakPower(final IBlockAccess par1IBlockAccess,
final int x, final int y, final int z,
final int side) {
final TileEntity tileEntity = par1IBlockAccess.getTileEntity(x, y, z);
if (tileEntity instanceof IRedstoneProvider) {
return ((IRedstoneProvider)tileEntity)
.isIndirectlyPoweringTo(ForgeDirection.getOrientation(side))
? 15
: 0;
}
return 0;
}
}