102 lines
2.6 KiB
Java
102 lines
2.6 KiB
Java
package resonantinduction.atomic.fusion;
|
|
|
|
import java.util.List;
|
|
|
|
import net.minecraft.client.renderer.texture.IconRegister;
|
|
import net.minecraft.creativetab.CreativeTabs;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.util.Icon;
|
|
import net.minecraft.world.IBlockAccess;
|
|
import resonant.api.IElectromagnet;
|
|
import resonant.lib.content.module.TileBase;
|
|
import resonant.lib.content.module.TileRender;
|
|
import resonant.lib.utility.ConnectedTextureRenderer;
|
|
import resonant.lib.prefab.item.ItemBlockMetadata;
|
|
import resonantinduction.core.Reference;
|
|
import universalelectricity.api.UniversalElectricity;
|
|
import cpw.mods.fml.relauncher.Side;
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
|
|
|
/** Electromagnet block */
|
|
public class TileElectromagnet extends TileBase implements IElectromagnet
|
|
{
|
|
private static Icon iconTop, iconGlass;
|
|
|
|
public TileElectromagnet()
|
|
{
|
|
super(UniversalElectricity.machine);
|
|
blockResistance = 20;
|
|
isOpaqueCube = false;
|
|
itemBlock = ItemBlockMetadata.class;
|
|
}
|
|
|
|
@Override
|
|
public Icon getIcon(int side, int metadata)
|
|
{
|
|
if (metadata == 1)
|
|
{
|
|
return iconGlass;
|
|
}
|
|
|
|
if (side == 0 || side == 1)
|
|
{
|
|
return iconTop;
|
|
}
|
|
|
|
return super.getIcon(side, metadata);
|
|
}
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
@Override
|
|
public void registerIcons(IconRegister iconRegister)
|
|
{
|
|
super.registerIcons(iconRegister);
|
|
iconTop = iconRegister.registerIcon(domain + textureName + "_top");
|
|
iconGlass = iconRegister.registerIcon(domain + "electromagnetGlass");
|
|
}
|
|
|
|
@Override
|
|
public int metadataDropped(int meta, int fortune)
|
|
{
|
|
return meta;
|
|
}
|
|
|
|
@Override
|
|
public boolean canUpdate()
|
|
{
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean shouldSideBeRendered(IBlockAccess access, int x, int y, int z, int side)
|
|
{
|
|
return true; // access.getBlockId(x, y, z) == blockID() && access.getBlockMetadata(x, y, z) == 1 ? false : super.shouldSideBeRendered(access, x, y, z, side);
|
|
}
|
|
|
|
@Override
|
|
public int getRenderBlockPass()
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
@Override
|
|
public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List)
|
|
{
|
|
par3List.add(new ItemStack(par1, 1, 0));
|
|
par3List.add(new ItemStack(par1, 1, 1));
|
|
}
|
|
|
|
@Override
|
|
public boolean isRunning()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
@Override
|
|
protected TileRender newRenderer()
|
|
{
|
|
return new ConnectedTextureRenderer(this, Reference.PREFIX + "atomic_edge");
|
|
}
|
|
}
|