    001package net.minecraft.block;
    002
    003import cpw.mods.fml.relauncher.Side;
    004import cpw.mods.fml.relauncher.SideOnly;
    005import net.minecraft.client.renderer.texture.IconRegister;
    006import net.minecraft.util.Icon;
    007import net.minecraft.world.World;
    008
    009public class BlockRail extends BlockRailBase
    010{
    011    @SideOnly(Side.CLIENT)
    012    private Icon theIcon;
    013
    014    protected BlockRail(int par1)
    015    {
    016        super(par1, false);
    017    }
    018
    019    @SideOnly(Side.CLIENT)
    020
    021    /**
    022     * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata
    023     */
    024    public Icon getIcon(int par1, int par2)
    025    {
    026        return par2 >= 6 ? this.theIcon : this.blockIcon;
    027    }
    028
    029    @SideOnly(Side.CLIENT)
    030
    031    /**
    032     * When this method is called, your block should register all the icons it needs with the given IconRegister. This
    033     * is the only chance you get to register icons.
    034     */
    035    public void registerIcons(IconRegister par1IconRegister)
    036    {
    037        super.registerIcons(par1IconRegister);
    038        this.theIcon = par1IconRegister.registerIcon("rail_turn");
    039    }
    040
    041    protected void func_94358_a(World par1World, int par2, int par3, int par4, int par5, int par6, int par7)
    042    {
    043        if (par7 > 0 && Block.blocksList[par7].canProvidePower() && (new BlockBaseRailLogic(this, par1World, par2, par3, par4)).getNumberOfAdjacentTracks() == 3)
    044        {
    045            this.refreshTrackShape(par1World, par2, par3, par4, false);
    046        }
    047    }
    048}