diff --git a/src/minecraft/dark/assembly/client/gui/GuiTask.java b/src/minecraft/dark/assembly/client/gui/GuiTask.java new file mode 100644 index 000000000..26790872a --- /dev/null +++ b/src/minecraft/dark/assembly/client/gui/GuiTask.java @@ -0,0 +1,127 @@ +package dark.assembly.client.gui; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.Gui; +import net.minecraft.util.ResourceLocation; + +import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import dark.api.al.coding.IRedirectTask; +import dark.api.al.coding.ITask; +import dark.core.common.DarkMain; + +@SideOnly(Side.CLIENT) +public class GuiTask extends Gui +{ + boolean isLeft = false; + private static final ResourceLocation gui_pic = new ResourceLocation(DarkMain.GUI_DIRECTORY + "gui@.png"); + /** Button width in pixels */ + protected int width; + + /** Button height in pixels */ + protected int height; + + /** The x position of this control. */ + public int xPosition; + + /** The y position of this control. */ + public int yPosition; + ITask task; + + /** True if this control is enabled, false to disable. */ + public boolean enabled; + + /** Hides the button completely if false. */ + public boolean drawButton; + protected boolean field_82253_i; + + public GuiTask(int x, int y, ITask task) + { + this.xPosition = x; + this.yPosition = y; + this.task = task; + this.width = 50; + this.height = 50; + this.drawButton = true; + if (task instanceof IRedirectTask) + { + this.drawButton = ((IRedirectTask) task).render(); + } + } + + public void drawButton(Minecraft par1Minecraft, int par2, int par3) + { + if (this.drawButton) + { + FontRenderer fontrenderer = par1Minecraft.fontRenderer; + par1Minecraft.getTextureManager().bindTexture(gui_pic); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.field_82253_i = par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height; + int k = this.getHoverState(this.field_82253_i); + this.drawTexturedModalRect(this.xPosition, this.yPosition, 0, 46 + k * 20, this.width / 2, this.height); + this.drawTexturedModalRect(this.xPosition + this.width / 2, this.yPosition, 200 - this.width / 2, 46 + k * 20, this.width / 2, this.height); + this.mouseDragged(par1Minecraft, par2, par3); + int l = 14737632; + + if (!this.enabled) + { + l = -6250336; + } + else if (this.field_82253_i) + { + l = 16777120; + } + + this.drawCenteredString(fontrenderer, this.task.getMethodName(), this.xPosition + this.width / 2, this.yPosition + (this.height - 8) / 2, l); + } + } + + /** Returns 0 if the button is disabled, 1 if the mouse is NOT hovering over this button and 2 if + * it IS hovering over this button. */ + protected int getHoverState(boolean par1) + { + byte b0 = 1; + + if (!this.enabled) + { + b0 = 0; + } + else if (par1) + { + b0 = 2; + } + + return b0; + } + + /** Fired when the mouse button is dragged. Equivalent of MouseListener.mouseDragged(MouseEvent + * e). */ + protected void mouseDragged(Minecraft par1Minecraft, int par2, int par3) + { + } + + /** Fired when the mouse button is released. Equivalent of MouseListener.mouseReleased(MouseEvent + * e). */ + public void mouseReleased(int par1, int par2) + { + } + + /** Returns true if the mouse has been pressed on this control. Equivalent of + * MouseListener.mousePressed(MouseEvent e). */ + public boolean mousePressed(Minecraft par1Minecraft, int par2, int par3) + { + return this.enabled && this.drawButton && par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height; + } + + public boolean func_82252_a() + { + return this.field_82253_i; + } + + public void func_82251_b(int par1, int par2) + { + } +} \ No newline at end of file