aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-01-11 12:09:50 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-01-11 12:09:50 +0800
commitdef24dd1d0ebd6e12a3a459ece05c0fc94aae4de (patch)
tree0472186115f5da4d53c953daf0df6858e03d1a82 /src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java
parentff3c2799a766babb69d772f15958d7a0bf50868c (diff)
downloadRoughlyEnoughItems-def24dd1d0ebd6e12a3a459ece05c0fc94aae4de.tar.gz
RoughlyEnoughItems-def24dd1d0ebd6e12a3a459ece05c0fc94aae4de.tar.bz2
RoughlyEnoughItems-def24dd1d0ebd6e12a3a459ece05c0fc94aae4de.zip
Tabs & Item Usages
Diffstat (limited to 'src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java')
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java95
1 files changed, 95 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java
new file mode 100644
index 000000000..d9a35c934
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java
@@ -0,0 +1,95 @@
+package me.shedaniel.rei.gui.widget;
+
+import com.google.common.collect.Lists;
+import com.mojang.blaze3d.platform.GlStateManager;
+import me.shedaniel.rei.client.ClientHelper;
+import net.minecraft.client.MinecraftClient;
+import net.minecraft.client.gui.Drawable;
+import net.minecraft.client.render.GuiLighting;
+import net.minecraft.client.render.item.ItemRenderer;
+import net.minecraft.item.ItemStack;
+
+import java.awt.*;
+import java.util.Arrays;
+import java.util.List;
+
+public class TabWidget extends Drawable implements HighlightableWidget {
+
+ private boolean shown = false, selected = false;
+ private ItemStack item;
+ private int id;
+ private RecipeViewingWidget recipeViewingWidget;
+ private String categoryName;
+ private Rectangle bounds;
+ private ItemRenderer itemRenderer;
+
+ public TabWidget(int id, RecipeViewingWidget recipeViewingWidget, Rectangle bounds) {
+ this.id = id;
+ this.recipeViewingWidget = recipeViewingWidget;
+ this.bounds = bounds;
+ this.itemRenderer = MinecraftClient.getInstance().getItemRenderer();
+ }
+
+ 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 isSelected() {
+ return selected;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public boolean isShown() {
+ return shown;
+ }
+
+ public ItemStack getItemStack() {
+ return item;
+ }
+
+ @Override
+ public List<IWidget> getListeners() {
+ return Lists.newArrayList();
+ }
+
+ @Override
+ public void draw(int mouseX, int mouseY, float partialTicks) {
+ if (shown) {
+ int l = (int) this.bounds.getCenterX() - 8, i1 = (int) this.bounds.getCenterY() - 6;
+
+ GuiLighting.disable();
+ this.drawTexturedRect(bounds.x, bounds.y, selected ? 28 : 0, 158, 28, (selected ? 31 : 28));
+ this.zOffset = 100.0F;
+ this.itemRenderer.zOffset = 100.0F;
+ GuiLighting.enableForItems();
+ this.itemRenderer.renderItemAndGlowInGui(getItemStack(), l, i1);
+ this.itemRenderer.renderItemOverlaysInGUI(MinecraftClient.getInstance().fontRenderer, getItemStack(), l, i1);
+ GlStateManager.disableLighting();
+ this.itemRenderer.zOffset = 0.0F;
+ this.zOffset = 0.0F;
+ if (isHighlighted(mouseX, mouseY))
+ drawTooltip();
+ }
+ }
+
+ private void drawTooltip() {
+ recipeViewingWidget.getOverlay().addTooltip(new QueuedTooltip(ClientHelper.getMouseLocation(), Arrays.asList(categoryName)));
+ }
+
+ @Override
+ public Rectangle getBounds() {
+ return bounds;
+ }
+
+}