use of blusunrize.immersiveengineering.client.gui.elements.GuiReactiveList in project ImmersiveEngineering by BluSunrize.
the class GuiTurret method initGui.
@Override
public void initGui() {
super.initGui();
Keyboard.enableRepeatEvents(true);
this.nameField = new GuiTextField(0, this.fontRendererObj, guiLeft + 11, guiTop + 88, 58, 12);
this.nameField.setTextColor(-1);
this.nameField.setDisabledTextColour(-1);
this.nameField.setEnableBackgroundDrawing(false);
this.nameField.setMaxStringLength(30);
this.buttonList.clear();
this.buttonList.add(new GuiReactiveList(this, 0, guiLeft + 10, guiTop + 10, 60, 72, tile.targetList.toArray(new String[tile.targetList.size()])).setPadding(0, 0, 2, 2).setFormatting(1, false));
this.buttonList.add(new GuiButtonIE(1, guiLeft + 74, guiTop + 84, 24, 16, I18n.format(Lib.GUI_CONFIG + "turret.add"), "immersiveengineering:textures/gui/turret.png", 176, 65));
this.buttonList.add(new GuiButtonCheckbox(2, guiLeft + 74, guiTop + 10, I18n.format(Lib.GUI_CONFIG + "turret.blacklist"), !tile.whitelist));
this.buttonList.add(new GuiButtonCheckbox(3, guiLeft + 74, guiTop + 26, I18n.format(Lib.GUI_CONFIG + "turret.animals"), tile.attackAnimals));
this.buttonList.add(new GuiButtonCheckbox(4, guiLeft + 74, guiTop + 42, I18n.format(Lib.GUI_CONFIG + "turret.players"), tile.attackPlayers));
this.buttonList.add(new GuiButtonCheckbox(5, guiLeft + 74, guiTop + 58, I18n.format(Lib.GUI_CONFIG + "turret.neutrals"), tile.attackNeutrals));
if (tile instanceof TileEntityTurretChem)
this.buttonList.add(new GuiButtonState(6, guiLeft + 135, guiTop + 68, 14, 14, null, ((TileEntityTurretChem) tile).ignite, "immersiveengineering:textures/gui/turret.png", 176, 51, 0));
else if (tile instanceof TileEntityTurretGun)
this.buttonList.add(new GuiButtonState(6, guiLeft + 134, guiTop + 31, 16, 16, null, ((TileEntityTurretGun) tile).expelCasings, "immersiveengineering:textures/gui/turret.png", 176, 81, 0));
}
use of blusunrize.immersiveengineering.client.gui.elements.GuiReactiveList in project ImmersiveEngineering by BluSunrize.
the class GuiTurret method actionPerformed.
@Override
protected void actionPerformed(GuiButton button) {
NBTTagCompound tag = new NBTTagCompound();
int listOffset = -1;
if (button.id == 0) {
int rem = ((GuiReactiveList) button).selectedOption;
tile.targetList.remove(rem);
tag.setInteger("remove", rem);
listOffset = ((GuiReactiveList) button).getOffset() - 1;
} else if (button.id == 1 && !this.nameField.getText().isEmpty()) {
String name = this.nameField.getText();
if (!tile.targetList.contains(name)) {
listOffset = ((GuiReactiveList) buttonList.get(0)).getMaxOffset();
tag.setString("add", name);
tile.targetList.add(name);
}
this.nameField.setText("");
} else if (button.id == 2) {
tile.whitelist = !((GuiButtonState) button).state;
tag.setBoolean("whitelist", tile.whitelist);
} else if (button.id == 3) {
tile.attackAnimals = ((GuiButtonState) button).state;
tag.setBoolean("attackAnimals", tile.attackAnimals);
} else if (button.id == 4) {
tile.attackPlayers = ((GuiButtonState) button).state;
tag.setBoolean("attackPlayers", tile.attackPlayers);
} else if (button.id == 5) {
tile.attackNeutrals = ((GuiButtonState) button).state;
tag.setBoolean("attackNeutrals", tile.attackNeutrals);
} else if (button.id == 6 && tile instanceof TileEntityTurretChem) {
((TileEntityTurretChem) tile).ignite = ((GuiButtonState) button).state;
tag.setBoolean("ignite", ((TileEntityTurretChem) tile).ignite);
} else if (button.id == 6 && tile instanceof TileEntityTurretGun) {
((TileEntityTurretGun) tile).expelCasings = ((GuiButtonState) button).state;
tag.setBoolean("expelCasings", ((TileEntityTurretGun) tile).expelCasings);
}
if (!tag.hasNoTags()) {
ImmersiveEngineering.packetHandler.sendToServer(new MessageTileSync(tile, tag));
this.initGui();
if (listOffset >= 0)
((GuiReactiveList) this.buttonList.get(0)).setOffset(listOffset);
}
}
use of blusunrize.immersiveengineering.client.gui.elements.GuiReactiveList in project ImmersiveEngineering by BluSunrize.
the class GuiTurret method keyTyped.
@Override
protected void keyTyped(char typedChar, int keyCode) throws IOException {
if (this.nameField.isFocused() && keyCode == 28) {
String name = this.nameField.getText();
if (!tile.targetList.contains(name)) {
NBTTagCompound tag = new NBTTagCompound();
tag.setString("add", name);
tile.targetList.add(name);
ImmersiveEngineering.packetHandler.sendToServer(new MessageTileSync(tile, tag));
this.initGui();
((GuiReactiveList) this.buttonList.get(0)).setOffset(((GuiReactiveList) this.buttonList.get(0)).getMaxOffset());
}
} else if (!this.nameField.textboxKeyTyped(typedChar, keyCode))
super.keyTyped(typedChar, keyCode);
}
Aggregations