diff options
| author | Unknown <shekwancheung0528@gmail.com> | 2018-12-30 20:10:36 +0800 |
|---|---|---|
| committer | Unknown <shekwancheung0528@gmail.com> | 2018-12-30 20:10:36 +0800 |
| commit | 3e1f4333a51513b440b32adfe9b698590fbf76f5 (patch) | |
| tree | cf337b4e12df85cd30d25721bab6c1ba1f4591f8 /src/main/java/me/shedaniel/gui/widget/Tab.java | |
| parent | 814e2e94ad643f04576ab0569c4b94f96b275f51 (diff) | |
| download | RoughlyEnoughItems-3e1f4333a51513b440b32adfe9b698590fbf76f5.tar.gz RoughlyEnoughItems-3e1f4333a51513b440b32adfe9b698590fbf76f5.tar.bz2 RoughlyEnoughItems-3e1f4333a51513b440b32adfe9b698590fbf76f5.zip | |
Better stuff
Diffstat (limited to 'src/main/java/me/shedaniel/gui/widget/Tab.java')
| -rw-r--r-- | src/main/java/me/shedaniel/gui/widget/Tab.java | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/gui/widget/Tab.java b/src/main/java/me/shedaniel/gui/widget/Tab.java new file mode 100644 index 000000000..b667435b0 --- /dev/null +++ b/src/main/java/me/shedaniel/gui/widget/Tab.java @@ -0,0 +1,101 @@ +package me.shedaniel.gui.widget; + +import me.shedaniel.gui.REIRenderHelper; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.ItemRenderer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +import java.awt.*; +import java.util.ArrayList; +import java.util.List; + +public class Tab extends Control { + + private boolean shown = false, selected = false; + private ItemStack item; + private int id, guiLeft; + private String categoryName; + + public Tab(int id, int guiLeft, int x, int y, int width, int height) { + super(x, y, width, height); + this.id = id; + this.guiLeft = guiLeft; + itemRender = Minecraft.getInstance().getItemRenderer(); + } + + public void moveTo(int guiLeft, int x, int y) { + this.rect = new Rectangle(x, y, rect.width, rect.height); + this.guiLeft = guiLeft; + } + + public int getId() { + return id; + } + + @Override + public boolean equals(Object o) { + if (o instanceof Tab) { + Tab anotherTab = (Tab) o; + return anotherTab.id == this.id; + } + return false; + } + + public void setItem(ItemStack item, String categoryName, boolean selected) { + if (item == null) { + shown = false; + this.item = null; + } else { + shown = true; + this.item = item; + } + this.selected = selected; + this.categoryName = categoryName; + } + + public boolean isShown() { + return shown; + } + + public ItemStack getItemStack() { + return item; + } + + protected float zLevel; + protected ItemRenderer itemRender; + + @Override + public void draw() { + + } + + public void drawTab() { + if (shown) { + int l = this.guiLeft + 176 - 28 * (6 - id) - 4; + int i1 = this.rect.y + 8; + + GlStateManager.disableLighting(); + this.drawTexturedModalRect(rect.x, rect.y - (selected ? 0 : 2), 28, (selected ? 32 : 0), 28, (selected ? 32 : 31)); + this.zLevel = 100.0F; + this.itemRender.zLevel = 100.0F; + GlStateManager.enableLighting(); + GlStateManager.enableRescaleNormal(); + this.itemRender.renderItemAndEffectIntoGUI(getItemStack(), l, i1); + this.itemRender.renderItemOverlays(Minecraft.getInstance().fontRenderer, getItemStack(), l, i1); + GlStateManager.disableLighting(); + this.itemRender.zLevel = 0.0F; + this.zLevel = 0.0F; + if (isHighlighted()) + drawTooltip(); + } + } + + private void drawTooltip() { + List<String> toolTip = new ArrayList<>(); + toolTip.add(categoryName); + Point mouse = REIRenderHelper.getMouseLoc(); + REIRenderHelper.addToolTip(toolTip, mouse.x, mouse.y); + } +} |
