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}