package joshie.progression.gui.core;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.RenderHelper;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import static joshie.progression.gui.core.GuiList.CORE;
public class FeatureTooltip extends FeatureAbstract {
private Set<String> tooltip = new LinkedHashSet();
public FeatureTooltip() {}
@Override
public FeatureAbstract init() {
clear();
return this;
}
public void clear() {
tooltip.clear();
}
public void add(String tooltip) {
this.tooltip.add(tooltip);
}
public void add(List<String> list) {
this.tooltip.addAll(list);
}
public void add(String[] split) {
for (String s: split) {
this.tooltip.add(s.replace("\r", ""));
}
}
@Override
public void drawFeature(int x, int y) {
if (!tooltip.isEmpty()) {
GlStateManager.disableRescaleNormal();
RenderHelper.disableStandardItemLighting();
GlStateManager.disableLighting();
GlStateManager.disableDepth();
int k = 0;
Iterator<String> iterator = tooltip.iterator();
while (iterator.hasNext()) {
String s = iterator.next();
int l = CORE.mc.fontRendererObj.getStringWidth(s);
if (l > k) {
k = l;
}
}
int j2 = x + 12;
int k2 = y - 12;
int i1 = 8;
if (tooltip.size() > 1) {
i1 += 2 + (tooltip.size() - 1) * 10;
}
if (j2 + k > CORE.width) {
j2 -= 28 + k;
}
if (k2 + i1 + 6 > CORE.height) {
k2 = CORE.height - i1 - 6;
}
CORE.setZLevel(300.0F);
int j1 = -267386864;
CORE.drawGradientRect(j2 - 3, k2 - 4, j2 + k + 3, k2 - 3, j1, j1);
CORE.drawGradientRect(j2 - 3, k2 + i1 + 3, j2 + k + 3, k2 + i1 + 4, j1, j1);
CORE.drawGradientRect(j2 - 3, k2 - 3, j2 + k + 3, k2 + i1 + 3, j1, j1);
CORE.drawGradientRect(j2 - 4, k2 - 3, j2 - 3, k2 + i1 + 3, j1, j1);
CORE.drawGradientRect(j2 + k + 3, k2 - 3, j2 + k + 4, k2 + i1 + 3, j1, j1);
int k1 = GuiList.THEME.toolTipWhite;
int l1 = (k1 & 16711422) >> 1 | k1 & -16777216;
CORE.drawGradientRect(j2 - 3, k2 - 3 + 1, j2 - 3 + 1, k2 + i1 + 3 - 1, k1, l1);
CORE.drawGradientRect(j2 + k + 2, k2 - 3 + 1, j2 + k + 3, k2 + i1 + 3 - 1, k1, l1);
CORE.drawGradientRect(j2 - 3, k2 - 3, j2 + k + 3, k2 - 3 + 1, k1, k1);
CORE.drawGradientRect(j2 - 3, k2 + i1 + 2, j2 + k + 3, k2 + i1 + 3, l1, l1);
int i2 = 0;
for (String s1: tooltip) {
CORE.mc.fontRendererObj.drawStringWithShadow(s1, j2, k2, -1);
if (i2 == 0) {
k2 += 2;
}
k2 += 10;
++i2;
}
CORE.setZLevel(0.0F);
GlStateManager.enableLighting();
GlStateManager.enableDepth();
RenderHelper.enableStandardItemLighting();
GlStateManager.enableRescaleNormal();
}
}
@Override
public boolean isOverlay() {
return true;
}
}