aboutsummaryrefslogtreecommitdiff
path: root/src/Java/binnie/craftgui/minecraft/control/ControlSlotBase.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/binnie/craftgui/minecraft/control/ControlSlotBase.java')
-rw-r--r--src/Java/binnie/craftgui/minecraft/control/ControlSlotBase.java77
1 files changed, 77 insertions, 0 deletions
diff --git a/src/Java/binnie/craftgui/minecraft/control/ControlSlotBase.java b/src/Java/binnie/craftgui/minecraft/control/ControlSlotBase.java
new file mode 100644
index 0000000000..db7b9fa973
--- /dev/null
+++ b/src/Java/binnie/craftgui/minecraft/control/ControlSlotBase.java
@@ -0,0 +1,77 @@
+package binnie.craftgui.minecraft.control;
+
+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.IArea;
+import binnie.craftgui.core.geometry.IPoint;
+import binnie.craftgui.core.renderer.Renderer;
+import binnie.craftgui.events.EventWidget.ChangeSize;
+import binnie.craftgui.events.EventWidget.ChangeSize.Handler;
+import binnie.craftgui.minecraft.Window;
+import binnie.craftgui.resource.minecraft.CraftGUITexture;
+import net.minecraft.item.ItemStack;
+
+public abstract class ControlSlotBase
+ extends Control
+ implements ITooltip
+{
+ private ControlItemDisplay itemDisplay;
+
+ public ControlSlotBase(IWidget parent, float x, float y)
+ {
+ this(parent, x, y, 18);
+ }
+
+ public ControlSlotBase(IWidget parent, float x, float y, int size)
+ {
+ super(parent, x, y, size, size);
+ addAttribute(Attribute.MouseOver);
+ this.itemDisplay = new ControlItemDisplay(this, 1.0F, 1.0F, size - 2);
+
+ addSelfEventHandler(new EventWidget.ChangeSize.Handler()
+ {
+ public void onEvent(EventWidget.ChangeSize event)
+ {
+ if (ControlSlotBase.this.itemDisplay != null) {
+ ControlSlotBase.this.itemDisplay.setSize(ControlSlotBase.this.getSize().sub(new IPoint(2.0F, 2.0F)));
+ }
+ }
+ });
+ }
+
+ protected void setRotating()
+ {
+ this.itemDisplay.setRotating();
+ }
+
+ public void onRenderBackground()
+ {
+ int size = (int)getSize().x();
+ CraftGUI.Render.texture(CraftGUITexture.Slot, getArea());
+ if (getSuperParent().getMousedOverWidget() == this) {
+ CraftGUI.Render.gradientRect(new IArea(new IPoint(1.0F, 1.0F), getArea().size().sub(new IPoint(2.0F, 2.0F))), -2130706433, -2130706433);
+ }
+ }
+
+ public void onUpdateClient()
+ {
+ super.onUpdateClient();
+ this.itemDisplay.setItemStack(getItemStack());
+ }
+
+ public void getTooltip(Tooltip tooltip)
+ {
+ ItemStack item = getItemStack();
+ if (item == null) {
+ return;
+ }
+ tooltip.add(item.getTooltip(((Window)getSuperParent()).getPlayer(), false));
+ }
+
+ public abstract ItemStack getItemStack();
+}