package openmods.gui.component;
import net.minecraft.client.Minecraft;
import net.minecraft.util.IIcon;
import net.minecraft.util.ResourceLocation;
import openmods.utils.render.FakeIcon;
import org.lwjgl.opengl.GL11;
public class GuiComponentSprite extends BaseComponent {
protected IIcon icon;
protected ResourceLocation texture;
protected float r = 1, g = 1, b = 1;
protected boolean overlay_mode;
public boolean isOverlay() {
return overlay_mode;
}
public BaseComponent setOverlayMode(boolean isOverlay) {
this.overlay_mode = isOverlay;
return this;
}
public static class Sprites {
public static IIcon hammer = FakeIcon.createSheetIcon(0, 233, 23, 23);
public static IIcon plus = FakeIcon.createSheetIcon(23, 242, 13, 13);
public static IIcon result = FakeIcon.createSheetIcon(36, 241, 22, 15);
}
public GuiComponentSprite(int x, int y, IIcon icon, ResourceLocation texture) {
super(x, y);
this.texture = texture;
this.icon = icon;
}
public GuiComponentSprite setColor(float r, float g, float b) {
this.r = r;
this.g = g;
this.b = b;
return this;
}
@Override
public void render(Minecraft minecraft, int offsetX, int offsetY, int mouseX, int mouseY) {
if (!overlay_mode) doRender(minecraft, offsetX, offsetY, mouseX, mouseY);
}
@Override
public void renderOverlay(Minecraft minecraft, int offsetX, int offsetY, int mouseX, int mouseY) {
if (overlay_mode) doRender(minecraft, offsetX, offsetY, mouseX, mouseY);
}
protected void doRender(Minecraft minecraft, int offsetX, int offsetY, int mouseX, int mouseY) {
if (icon == null) return;
if (texture != null) minecraft.renderEngine.bindTexture(texture);
GL11.glColor3f(r, g, b);
drawTexturedModelRectFromIcon(offsetX + x, offsetY + y, icon, icon.getIconWidth(), icon.getIconHeight());
}
@Override
public int getWidth() {
return icon != null? icon.getIconWidth() : 0;
}
@Override
public int getHeight() {
return icon != null? icon.getIconHeight() : 0;
}
public void setIcon(IIcon icon) {
this.icon = icon;
}
}