147 lines
4.1 KiB
Java
Executable file
147 lines
4.1 KiB
Java
Executable file
/**
|
|
* Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team
|
|
* http://www.mod-buildcraft.com
|
|
*
|
|
* BuildCraft is distributed under the terms of the Minecraft Mod Public
|
|
* License 1.0, or MMPL. Please check the contents of the license located in
|
|
* http://www.mod-buildcraft.com/MMPL-1.0.txt
|
|
*/
|
|
package buildcraft.tests;
|
|
|
|
import org.lwjgl.input.Keyboard;
|
|
import org.lwjgl.opengl.GL11;
|
|
|
|
import net.minecraft.client.gui.GuiButton;
|
|
import net.minecraft.client.gui.GuiTextField;
|
|
import net.minecraft.client.gui.inventory.GuiContainer;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.util.ResourceLocation;
|
|
import net.minecraft.world.World;
|
|
|
|
import buildcraft.BuildCraftBuilders;
|
|
import buildcraft.core.DefaultProps;
|
|
import buildcraft.tests.testcase.SequenceActionCheckBlockMeta;
|
|
import buildcraft.tests.testcase.TileTestCase;
|
|
|
|
public class GuiTester extends GuiContainer {
|
|
|
|
private static final int TEXT_X = 10;
|
|
private static final int TEXT_Y = 10;
|
|
private static final int TEXT_WIDTH = 156;
|
|
private static final int TEXT_HEIGHT = 12;
|
|
|
|
private static final ResourceLocation TEXTURE = new ResourceLocation(
|
|
"buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/tester.png");
|
|
|
|
private GuiButton checkBlockAndMeta;
|
|
private GuiButton checkTileMethod;
|
|
private GuiButton checkTestCommand;
|
|
private GuiButton cancel;
|
|
|
|
private GuiTextField textField;
|
|
|
|
private World world;
|
|
private int x, y, z;
|
|
|
|
public GuiTester(EntityPlayer player, int ix, int iy, int iz) {
|
|
super(new ContainerTester(player, ix, iy, iz));
|
|
x = ix;
|
|
y = iy;
|
|
z = iz;
|
|
xSize = 256;
|
|
ySize = 166;
|
|
world = player.worldObj;
|
|
}
|
|
|
|
@SuppressWarnings("unchecked")
|
|
@Override
|
|
public void initGui() {
|
|
super.initGui();
|
|
int xscreen = (width - xSize) / 2;
|
|
int yscreen = (height - ySize) / 2;
|
|
|
|
Keyboard.enableRepeatEvents(true);
|
|
|
|
checkBlockAndMeta = new GuiButton(0, xscreen + 5, yscreen + 30, 120, 20, "");
|
|
checkBlockAndMeta.displayString = "Check Block and Meta";
|
|
buttonList.add(checkBlockAndMeta);
|
|
|
|
checkTileMethod = new GuiButton(1, xscreen + 5, yscreen + 55, 120, 20, "");
|
|
checkTileMethod.displayString = "Check Tile Method";
|
|
buttonList.add(checkTileMethod);
|
|
|
|
checkTestCommand = new GuiButton(2, xscreen + 5, yscreen + 80, 120, 20, "");
|
|
checkTestCommand.displayString = "Check Test Command";
|
|
buttonList.add(checkTestCommand);
|
|
|
|
cancel = new GuiButton(2, xscreen + 5, yscreen + 105, 120, 20, "");
|
|
cancel.displayString = "Cancel";
|
|
buttonList.add(cancel);
|
|
|
|
textField = new GuiTextField(this.fontRendererObj, TEXT_X, TEXT_Y, TEXT_WIDTH, TEXT_HEIGHT);
|
|
textField.setMaxStringLength(BuildCraftBuilders.MAX_BLUEPRINTS_NAME_SIZE);
|
|
textField.setText("");
|
|
textField.setFocused(true);
|
|
}
|
|
|
|
@Override
|
|
public void onGuiClosed() {
|
|
Keyboard.enableRepeatEvents(false);
|
|
}
|
|
|
|
@Override
|
|
protected void actionPerformed(GuiButton button) {
|
|
if (button == checkBlockAndMeta) {
|
|
TileTestCase.currentTestCase.registerAction(new SequenceActionCheckBlockMeta(world, x, y, z));
|
|
mc.thePlayer.closeScreen();
|
|
} else if (button == cancel) {
|
|
mc.thePlayer.closeScreen();
|
|
}
|
|
}
|
|
|
|
@Override
|
|
protected void drawGuiContainerForegroundLayer(int par1, int par2) {
|
|
textField.drawTextBox();
|
|
}
|
|
|
|
@Override
|
|
protected void drawGuiContainerBackgroundLayer(float f, int x, int y) {
|
|
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
|
mc.renderEngine.bindTexture(TEXTURE);
|
|
int j = (width - xSize) / 2;
|
|
int k = (height - ySize) / 2;
|
|
drawTexturedModalRect(j, k, 0, 0, xSize, ySize);
|
|
}
|
|
|
|
@Override
|
|
protected void mouseClicked(int i, int j, int k) {
|
|
super.mouseClicked(i, j, k);
|
|
|
|
int xMin = (width - xSize) / 2;
|
|
int yMin = (height - ySize) / 2;
|
|
int xscreen = i - xMin;
|
|
int yscreen = j - yMin;
|
|
|
|
if (xscreen >= TEXT_X && yscreen >= TEXT_Y
|
|
&& xscreen <= TEXT_X + TEXT_WIDTH && yscreen <= TEXT_Y + TEXT_HEIGHT) {
|
|
textField.setFocused(true);
|
|
} else {
|
|
textField.setFocused(false);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
protected void keyTyped(char c, int i) {
|
|
if (textField.isFocused()) {
|
|
if (c == 13 || c == 27) {
|
|
textField.setFocused(false);
|
|
} else {
|
|
textField.textboxKeyTyped(c, i);
|
|
|
|
}
|
|
} else {
|
|
super.keyTyped(c, i);
|
|
}
|
|
}
|
|
}
|