189 lines
4.8 KiB
Java
189 lines
4.8 KiB
Java
package resonantinduction.old.client.gui;
|
|
|
|
import net.minecraft.client.gui.GuiButton;
|
|
import net.minecraft.entity.player.InventoryPlayer;
|
|
|
|
import org.lwjgl.input.Keyboard;
|
|
import org.lwjgl.input.Mouse;
|
|
|
|
import resonantinduction.old.transport.encoder.TileEntityEncoder;
|
|
import dark.lib.prefab.invgui.GuiButtonImage;
|
|
import dark.lib.prefab.invgui.GuiButtonImage.ButtonIcon;
|
|
|
|
public class GuiEncoderCoder extends GuiEncoderBase
|
|
{
|
|
private GuiTaskList taskListGui;
|
|
GuiButtonImage left, right, up, down;
|
|
GuiButton newTask, newTask2;
|
|
String helpMessage = "";
|
|
boolean insertingTask = false;
|
|
boolean bellow = true;
|
|
|
|
public GuiEncoderCoder(InventoryPlayer player, TileEntityEncoder tileEntity)
|
|
{
|
|
super(player, tileEntity);
|
|
}
|
|
|
|
@Override
|
|
public void initGui()
|
|
{
|
|
super.initGui();
|
|
this.getTaskListElement(true);
|
|
left = new GuiButtonImage(3, containerWidth + 13, containerHeight + 120, ButtonIcon.ARROW_LEFT);
|
|
this.buttonList.add(left);
|
|
right = new GuiButtonImage(4, containerWidth + 147, containerHeight + 120, ButtonIcon.ARROW_RIGHT);
|
|
this.buttonList.add(right);
|
|
up = new GuiButtonImage(5, containerWidth + 147, containerHeight + 30, ButtonIcon.ARROW_UP);
|
|
this.buttonList.add(up);
|
|
down = new GuiButtonImage(6, containerWidth + 147, containerHeight + 100, ButtonIcon.ARROW_DOWN);
|
|
this.buttonList.add(down);
|
|
newTask = new GuiButton(7, containerWidth + 15, containerHeight + 135, 70, 10, "Insert bellow");
|
|
this.buttonList.add(newTask);
|
|
newTask2 = new GuiButton(8, containerWidth + 90, containerHeight + 135, 70, 10, "Insert Above");
|
|
newTask2.enabled = false; // TODO fix
|
|
this.buttonList.add(newTask2);
|
|
|
|
}
|
|
|
|
@Override
|
|
protected void actionPerformed(GuiButton button)
|
|
{
|
|
super.actionPerformed(button);
|
|
if (((TileEntityEncoder) tileEntity).getProgram() != null)
|
|
{
|
|
switch (button.id)
|
|
{
|
|
case 3:
|
|
getTaskListElement().scrollSide(-1);
|
|
break;
|
|
case 4:
|
|
getTaskListElement().scrollSide(1);
|
|
break;
|
|
case 5:
|
|
getTaskListElement().scroll(-1);
|
|
break;
|
|
case 6:
|
|
getTaskListElement().scroll(1);
|
|
break;
|
|
case 7:
|
|
this.insertingTask = true;
|
|
this.bellow = true;
|
|
this.helpMessage = "Click a task to create a new task";
|
|
break;
|
|
case 8:
|
|
this.insertingTask = true;
|
|
this.bellow = false;
|
|
this.helpMessage = "Click a task to create a new task";
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
protected GuiTaskList getTaskListElement(boolean renew)
|
|
{
|
|
if (taskListGui == null || renew)
|
|
{
|
|
if (taskListGui != null)
|
|
{
|
|
taskListGui.xPos = this.containerWidth + 25;
|
|
taskListGui.yPos = this.containerHeight + 15;
|
|
}
|
|
else
|
|
{
|
|
taskListGui = new GuiTaskList(this.tileEntity, this, this.containerWidth + 25, this.containerHeight + 15);
|
|
}
|
|
}
|
|
return this.taskListGui;
|
|
}
|
|
|
|
@Override
|
|
public void handleMouseInput()
|
|
{
|
|
super.handleMouseInput();
|
|
int wheel = Mouse.getEventDWheel();
|
|
if (((TileEntityEncoder) tileEntity).getProgram() != null)
|
|
{
|
|
if (wheel > 0)
|
|
{
|
|
this.getTaskListElement().scroll(-2);
|
|
}
|
|
else if (wheel < 0)
|
|
{
|
|
this.getTaskListElement().scroll(2);
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override
|
|
protected void keyTyped(char character, int keycode)
|
|
{
|
|
if (keycode == Keyboard.KEY_ESCAPE)
|
|
{
|
|
this.mc.thePlayer.closeScreen();
|
|
}
|
|
else if (((TileEntityEncoder) tileEntity).getProgram() != null)
|
|
{
|
|
|
|
if (keycode == Keyboard.KEY_UP) // PAGE UP (no constant)
|
|
{
|
|
this.getTaskListElement().scroll(-1);
|
|
}
|
|
else if (keycode == Keyboard.KEY_DOWN) // PAGE DOWN (no constant)
|
|
{
|
|
this.getTaskListElement().scroll(1);
|
|
}
|
|
else if (keycode == Keyboard.KEY_LEFT) // PAGE LEFT (no constant)
|
|
{
|
|
if (this.getTaskListElement().scrollX > -5)
|
|
this.getTaskListElement().scrollSide(-1);
|
|
}
|
|
else if (keycode == Keyboard.KEY_RIGHT) // PAGE RIGHT (no constant)
|
|
{
|
|
if (this.getTaskListElement().scrollX < ((TileEntityEncoder) tileEntity).getProgram().getSize().intX())
|
|
this.getTaskListElement().scrollSide(1);
|
|
}
|
|
}
|
|
}
|
|
|
|
protected GuiTaskList getTaskListElement()
|
|
{
|
|
return this.getTaskListElement(false);
|
|
}
|
|
|
|
@Override
|
|
protected void drawGuiContainerBackgroundLayer(float f, int i, int j)
|
|
{
|
|
super.drawGuiContainerBackgroundLayer(f, i, j);
|
|
getTaskListElement().drawConsole(this.mc);
|
|
}
|
|
|
|
@Override
|
|
protected void drawGuiContainerForegroundLayer(int x, int y)
|
|
{
|
|
super.drawGuiContainerForegroundLayer(x, y);
|
|
taskListGui.drawGuiContainerForegroundLayer(this.mc, x, y);
|
|
if (!this.insertingTask)
|
|
{
|
|
this.helpMessage = "";
|
|
}
|
|
this.fontRenderer.drawString(this.helpMessage, (this.xSize / 2 - 82), 150, 4210752);
|
|
|
|
}
|
|
|
|
@Override
|
|
protected void mouseClicked(int par1, int par2, int par3)
|
|
{
|
|
super.mouseClicked(par1, par2, par3);
|
|
if (par3 == 0)
|
|
{
|
|
this.taskListGui.mousePressed(par1, par2);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public TileEntityEncoder getTile()
|
|
{
|
|
return (TileEntityEncoder) this.tileEntity;
|
|
}
|
|
|
|
}
|