diff options
author | Draknyte1 <Draknyte1@hotmail.com> | 2016-01-20 14:24:34 +1000 |
---|---|---|
committer | Draknyte1 <Draknyte1@hotmail.com> | 2016-01-20 14:24:34 +1000 |
commit | 869c206c4fcc8001bd2e1d66f704290331813835 (patch) | |
tree | 96735ce8fe4665e2759c3374221d6f06f4527df2 /src/Java/binnie/craftgui/extratrees/kitchen/ControlFluidDisplay.java | |
parent | ec2c72827f01dd4bb2174137f1ab162f9ddaab62 (diff) | |
download | GT5-Unofficial-869c206c4fcc8001bd2e1d66f704290331813835.tar.gz GT5-Unofficial-869c206c4fcc8001bd2e1d66f704290331813835.tar.bz2 GT5-Unofficial-869c206c4fcc8001bd2e1d66f704290331813835.zip |
Initial Commit
Diffstat (limited to 'src/Java/binnie/craftgui/extratrees/kitchen/ControlFluidDisplay.java')
-rw-r--r-- | src/Java/binnie/craftgui/extratrees/kitchen/ControlFluidDisplay.java | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/src/Java/binnie/craftgui/extratrees/kitchen/ControlFluidDisplay.java b/src/Java/binnie/craftgui/extratrees/kitchen/ControlFluidDisplay.java new file mode 100644 index 0000000000..7ec1124226 --- /dev/null +++ b/src/Java/binnie/craftgui/extratrees/kitchen/ControlFluidDisplay.java @@ -0,0 +1,103 @@ +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.IPoint; +import binnie.craftgui.core.renderer.Renderer; +import binnie.craftgui.minecraft.Window; +import net.minecraft.util.IIcon; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; +import org.lwjgl.opengl.GL11; + +public class ControlFluidDisplay + extends Control + implements ITooltip +{ + FluidStack itemStack = null; + public boolean hastooltip = false; + + public void setTooltip() + { + this.hastooltip = true; + addAttribute(Attribute.MouseOver); + } + + public ControlFluidDisplay(IWidget parent, float f, float y) + { + this(parent, f, y, 16.0F); + } + + public ControlFluidDisplay(IWidget parent, float f, float y, FluidStack stack, boolean tooltip) + { + this(parent, f, y, 16.0F); + setItemStack(stack); + if (tooltip) { + setTooltip(); + } + } + + public ControlFluidDisplay(IWidget parent, float x, float y, float size) + { + super(parent, x, y, size, size); + } + + public void onRenderForeground() + { + if (this.itemStack == null) { + return; + } + 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) + { + Fluid fluid = this.itemStack.getFluid(); + + int hex = fluid.getColor(this.itemStack); + + int r = (hex & 0xFF0000) >> 16; + int g = (hex & 0xFF00) >> 8; + int b = hex & 0xFF; + + IIcon icon = this.itemStack.getFluid().getIcon(this.itemStack); + + GL11.glColor4f(r / 255.0F, g / 255.0F, b / 255.0F, 1.0F); + + GL11.glEnable(3042); + + GL11.glBlendFunc(770, 771); + if (getSize().x() != 16.0F) + { + GL11.glPushMatrix(); + float scale = getSize().x() / 16.0F; + GL11.glScalef(scale, scale, 1.0F); + CraftGUI.Render.iconBlock(IPoint.ZERO, this.itemStack.getFluid().getIcon(this.itemStack)); + GL11.glPopMatrix(); + } + else + { + CraftGUI.Render.iconBlock(IPoint.ZERO, this.itemStack.getFluid().getIcon(this.itemStack)); + } + GL11.glDisable(3042); + } + } + + public void setItemStack(FluidStack itemStack) + { + this.itemStack = itemStack; + } + + public void getTooltip(Tooltip tooltip) + { + if ((this.hastooltip) && (this.itemStack != null)) { + tooltip.add(this.itemStack.getLocalizedName()); + } + } +} |