aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/gui/widget/Tab.java
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2018-12-30 20:10:36 +0800
committerUnknown <shekwancheung0528@gmail.com>2018-12-30 20:10:36 +0800
commit3e1f4333a51513b440b32adfe9b698590fbf76f5 (patch)
treecf337b4e12df85cd30d25721bab6c1ba1f4591f8 /src/main/java/me/shedaniel/gui/widget/Tab.java
parent814e2e94ad643f04576ab0569c4b94f96b275f51 (diff)
downloadRoughlyEnoughItems-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.java101
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);
+ }
+}