142 lines
4.6 KiB
Java
142 lines
4.6 KiB
Java
|
package resonantinduction.old.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 resonantinduction.core.Reference;
|
||
|
import resonantinduction.old.api.coding.IRedirectTask;
|
||
|
import resonantinduction.old.api.coding.ITask;
|
||
|
import cpw.mods.fml.relauncher.Side;
|
||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||
|
|
||
|
@SideOnly(Side.CLIENT)
|
||
|
public class GuiTask extends Gui
|
||
|
{
|
||
|
boolean isLeft = false;
|
||
|
private ResourceLocation gui_pic = new ResourceLocation(Reference.DOMAIN, Reference.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();
|
||
|
}
|
||
|
switch (task.getType())
|
||
|
{
|
||
|
case DATA:
|
||
|
gui_pic = new ResourceLocation(Reference.DOMAIN,Reference.GUI_DIRECTORY + "logic/DATA.png");
|
||
|
break;
|
||
|
case PROCESS:
|
||
|
gui_pic = new ResourceLocation(Reference.DOMAIN,Reference.GUI_DIRECTORY + "logic/PROCESS.png");
|
||
|
break;
|
||
|
case DEFINEDPROCESS:
|
||
|
gui_pic = new ResourceLocation(Reference.DOMAIN,Reference.GUI_DIRECTORY + "logic/DEFINEDPROCESS.png");
|
||
|
break;
|
||
|
case DECISION:
|
||
|
gui_pic = new ResourceLocation(Reference.DOMAIN,Reference.GUI_DIRECTORY + "logic/IF.png");
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void drawTask(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)
|
||
|
{
|
||
|
}
|
||
|
}
|