package org.halvors.electrometrics.client.gui.component;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.util.ResourceLocation;
import org.halvors.electrometrics.client.gui.IGui;
import org.halvors.electrometrics.common.base.ResourceType;
import org.halvors.electrometrics.common.util.ResourceUtils;
import org.lwjgl.opengl.GL11;
import java.util.List;
@SideOnly(Side.CLIENT)
public abstract class GuiComponentBase implements IGuiComponent {
private final ResourceLocation defaultResource;
static final Minecraft game = Minecraft.getMinecraft();
final ResourceLocation resource;
final IGui gui;
GuiComponentBase(String texture, IGui gui, ResourceLocation defaultResource) {
this.resource = ResourceUtils.getResource(ResourceType.GUI_COMPONENT, texture);
this.gui = gui;
this.defaultResource = defaultResource;
}
@Override
public void renderBackground(int xAxis, int yAxis, int xOrigin, int yOrigin, int guiWidthSize, int guiHeightSize) {
game.renderEngine.bindTexture(defaultResource);
}
@Override
public void renderForeground(int xAxis, int yAxis, int xSize, int ySize) {
game.renderEngine.bindTexture(defaultResource);
}
void displayTooltip(String text, int xAxis, int yAxis) {
gui.displayTooltip(text, xAxis, yAxis);
}
void displayTooltips(List<String> list, int xAxis, int yAxis) {
gui.displayTooltips(list, xAxis, yAxis);
}
void renderScaledText(String text, int x, int y, int color, int maxX) {
int length = getFontRenderer().getStringWidth(text);
if (length <= maxX) {
getFontRenderer().drawString(text, x, y, color);
} else {
float scale = (float) maxX / length;
float reverse = 1 / scale;
float yAdd = 4 - (scale * 8) / 2F;
GL11.glPushMatrix();
GL11.glScalef(scale, scale, scale);
getFontRenderer().drawString(text, (int) (x * reverse), (int) ((y * reverse) + yAdd), color);
GL11.glPopMatrix();
}
}
private FontRenderer getFontRenderer() {
return gui.getFontRenderer();
}
}