package openmods.utils.render;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.IIcon;
public class FakeIcon implements IIcon {
private final float minU;
private final float maxU;
private final float minV;
private final float maxV;
private final int width;
private final int height;
public FakeIcon(float minU, float maxU, float minV, float maxV, int width, int height) {
this.minU = minU;
this.maxU = maxU;
this.minV = minV;
this.maxV = maxV;
this.width = width;
this.height = height;
}
public static IIcon createSheetIcon(int x, int y, int width, int height) {
float minU = x / 256.0f;
float minV = y / 256.0f;
float maxU = (x + width) / 256.0f;
float maxV = (y + height) / 256.0f;
return new FakeIcon(minU, maxU, minV, maxV, Math.abs(width), Math.abs(height));
}
@Override
@SideOnly(Side.CLIENT)
public int getIconWidth() {
return width;
}
@Override
@SideOnly(Side.CLIENT)
public int getIconHeight() {
return height;
}
@Override
@SideOnly(Side.CLIENT)
public float getMinU() {
return minU;
}
@Override
@SideOnly(Side.CLIENT)
public float getMaxU() {
return maxU;
}
@Override
@SideOnly(Side.CLIENT)
public float getInterpolatedU(double p) {
return minU + (maxU - minU) * (float)p / 16.0f;
}
@Override
@SideOnly(Side.CLIENT)
public float getMinV() {
return minV;
}
@Override
@SideOnly(Side.CLIENT)
public float getMaxV() {
return maxV;
}
@Override
@SideOnly(Side.CLIENT)
public float getInterpolatedV(double p) {
return minV + (maxV - minV) * (float)p / 16.0f;
}
@Override
@SideOnly(Side.CLIENT)
public String getIconName() {
return "fake";
}
}