mirror of
https://github.com/GTNewHorizons/Chisel.git
synced 2026-11-12 16:27:45 +00:00
82 lines
1.6 KiB
Java
82 lines
1.6 KiB
Java
package com.cricketcraft.chisel.client.render;
|
|
|
|
import net.minecraft.util.IIcon;
|
|
import cpw.mods.fml.relauncher.Side;
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
|
|
|
public class TextureVirtual implements IIcon {
|
|
|
|
private int width, height;
|
|
private float umin, umax, vmin, vmax;
|
|
private String name;
|
|
private IIcon parentIcon;
|
|
|
|
TextureVirtual(IIcon parent, int w, int h, int x, int y) {
|
|
parentIcon = parent;
|
|
|
|
umin = parentIcon.getInterpolatedU(16.0 * (x) / w);
|
|
umax = parentIcon.getInterpolatedU(16.0 * (x + 1) / w);
|
|
vmin = parentIcon.getInterpolatedV(16.0 * (y) / h);
|
|
vmax = parentIcon.getInterpolatedV(16.0 * (y + 1) / h);
|
|
|
|
name = parentIcon.getIconName() + "|" + x + "." + y;
|
|
|
|
width = parentIcon.getIconWidth();
|
|
height = parentIcon.getIconHeight();
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public float getMinU() {
|
|
return umin;
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public float getMaxU() {
|
|
return umax;
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public float getInterpolatedU(double d0) {
|
|
return (float) (umin + (umax - umin) * d0 / 16.0);
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public float getMinV() {
|
|
return vmin;
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public float getMaxV() {
|
|
return vmax;
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public float getInterpolatedV(double d0) {
|
|
return (float) (vmin + (vmax - vmin) * d0 / 16.0);
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public String getIconName() {
|
|
return name;
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public int getIconWidth() {
|
|
return width;
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public int getIconHeight() {
|
|
return height;
|
|
}
|
|
}
|