    001package net.minecraft.util;
    002
    003import cpw.mods.fml.relauncher.Side;
    004import cpw.mods.fml.relauncher.SideOnly;
    005
    006public interface Icon
    007{
    008    @SideOnly(Side.CLIENT)
    009
    010    /**
    011     * Returns the X position of this icon on its texture sheet, in pixels.
    012     */
    013    int getOriginX();
    014
    015    @SideOnly(Side.CLIENT)
    016
    017    /**
    018     * Returns the Y position of this icon on its texture sheet, in pixels.
    019     */
    020    int getOriginY();
    021
    022    @SideOnly(Side.CLIENT)
    023
    024    /**
    025     * Returns the minimum U coordinate to use when rendering with this icon.
    026     */
    027    float getMinU();
    028
    029    @SideOnly(Side.CLIENT)
    030
    031    /**
    032     * Returns the maximum U coordinate to use when rendering with this icon.
    033     */
    034    float getMaxU();
    035
    036    @SideOnly(Side.CLIENT)
    037
    038    /**
    039     * Gets a U coordinate on the icon. 0 returns uMin and 16 returns uMax. Other arguments return in-between values.
    040     */
    041    float getInterpolatedU(double d0);
    042
    043    @SideOnly(Side.CLIENT)
    044
    045    /**
    046     * Returns the minimum V coordinate to use when rendering with this icon.
    047     */
    048    float getMinV();
    049
    050    @SideOnly(Side.CLIENT)
    051
    052    /**
    053     * Returns the maximum V coordinate to use when rendering with this icon.
    054     */
    055    float getMaxV();
    056
    057    @SideOnly(Side.CLIENT)
    058
    059    /**
    060     * Gets a V coordinate on the icon. 0 returns vMin and 16 returns vMax. Other arguments return in-between values.
    061     */
    062    float getInterpolatedV(double d0);
    063
    064    @SideOnly(Side.CLIENT)
    065    String getIconName();
    066
    067    @SideOnly(Side.CLIENT)
    068
    069    /**
    070     * Returns the width of the texture sheet this icon is on, in pixels.
    071     */
    072    int getSheetWidth();
    073
    074    @SideOnly(Side.CLIENT)
    075
    076    /**
    077     * Returns the height of the texture sheet this icon is on, in pixels.
    078     */
    079    int getSheetHeight();
    080}