aboutsummaryrefslogtreecommitdiff
path: root/src/Java/binnie/craftgui/extratrees/kitchen/ControlSlotFluid.java
blob: 5cd82c39dee8d7402bc02db9394e88fa5a123b9b (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
package binnie.craftgui.extratrees.kitchen;

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.resource.minecraft.CraftGUITexture;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;

public class ControlSlotFluid
  extends Control
  implements ITooltip
{
  ControlFluidDisplay itemDisplay;
  FluidStack fluidStack;
  
  public ControlSlotFluid(IWidget parent, int x, int y, FluidStack fluid)
  {
    this(parent, x, y, 18, fluid);
  }
  
  public ControlSlotFluid(IWidget parent, int x, int y, int size, FluidStack fluid)
  {
    super(parent, x, y, size, size);
    addAttribute(Attribute.MouseOver);
    this.itemDisplay = new ControlFluidDisplay(this, 1.0F, 1.0F, size - 2);
    this.fluidStack = fluid;
    
    addSelfEventHandler(new EventWidget.ChangeSize.Handler()
    {
      public void onEvent(EventWidget.ChangeSize event)
      {
        if (ControlSlotFluid.this.itemDisplay != null) {
          ControlSlotFluid.this.itemDisplay.setSize(ControlSlotFluid.this.getSize().sub(new IPoint(2.0F, 2.0F)));
        }
      }
    });
  }
  
  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(getFluidStack());
  }
  
  public void getTooltip(Tooltip tooltip)
  {
    FluidStack item = getFluidStack();
    if (item == null) {
      return;
    }
    tooltip.add(item.getFluid().getLocalizedName());
  }
  
  public FluidStack getFluidStack()
  {
    return this.fluidStack;
  }
}