aboutsummaryrefslogtreecommitdiff
path: root/src/Java/binnie/craftgui/minecraft/control/ControlItemDisplay.java
blob: 8db438bcc398a7060e7f576579ae15df60c2830c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package binnie.craftgui.minecraft.control;

import binnie.core.BinnieCore;
import binnie.core.proxy.BinnieProxy;
import binnie.craftgui.controls.core.Control;
import binnie.craftgui.core.Attribute;
import binnie.craftgui.core.CraftGUI;
import binnie.craftgui.core.ITooltip;
import binnie.craftgui.core.ITopLevelWidget;
import binnie.craftgui.core.IWidget;
import binnie.craftgui.core.Tooltip;
import binnie.craftgui.core.geometry.IPoint;
import binnie.craftgui.core.renderer.Renderer;
import binnie.craftgui.minecraft.Window;
import net.minecraft.client.Minecraft;
import net.minecraft.item.ItemStack;
import org.lwjgl.opengl.GL11;

public class ControlItemDisplay
  extends Control
  implements ITooltip
{
  private ItemStack itemStack = null;
  public boolean hastooltip = false;
  
  public void setTooltip()
  {
    this.hastooltip = true;
    addAttribute(Attribute.MouseOver);
  }
  
  public ControlItemDisplay(IWidget parent, float x, float y)
  {
    this(parent, x, y, 16.0F);
  }
  
  public ControlItemDisplay(IWidget parent, float f, float y, ItemStack stack, boolean tooltip)
  {
    this(parent, f, y, 16.0F);
    setItemStack(stack);
    if (tooltip) {
      setTooltip();
    }
  }
  
  public ControlItemDisplay(IWidget parent, float x, float y, float size)
  {
    super(parent, x, y, size, size);
  }
  
  public void onRenderBackground()
  {
    IPoint relativeToWindow = getAbsolutePosition().sub(getSuperParent().getPosition());
    if ((relativeToWindow.x() > Window.get(this).getSize().x() + 100.0F) || (relativeToWindow.y() > Window.get(this).getSize().y() + 100.0F)) {
      return;
    }
    if (this.itemStack != null) {
      if (getSize().x() != 16.0F)
      {
        GL11.glPushMatrix();
        float scale = getSize().x() / 16.0F;
        GL11.glScalef(scale, scale, 1.0F);
        BinnieCore.proxy.getMinecraftInstance();float phase = (float)Minecraft.getSystemTime() / 20.0F;
        CraftGUI.Render.item(IPoint.ZERO, this.itemStack, this.rotating);
        GL11.glPopMatrix();
      }
      else
      {
        CraftGUI.Render.item(IPoint.ZERO, this.itemStack, this.rotating);
      }
    }
  }
  
  public void setItemStack(ItemStack itemStack)
  {
    this.itemStack = itemStack;
  }
  
  public ItemStack getItemStack()
  {
    return this.itemStack;
  }
  
  public void getTooltip(Tooltip tooltip)
  {
    if ((this.hastooltip) && (this.itemStack != null)) {
      tooltip.add(this.itemStack.getTooltip(((Window)getSuperParent()).getPlayer(), false));
    }
    super.getTooltip(tooltip);
  }
  
  private boolean rotating = false;
  
  public void setRotating()
  {
    this.rotating = true;
  }
}