package drzhark.mocreatures.client.gui; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.EntityLiving; import net.minecraft.util.ChatAllowedCharacters; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import drzhark.mocreatures.MoCreatures; import drzhark.mocreatures.client.network.MoCClientPacketHandler; import drzhark.mocreatures.entity.MoCIMoCreature; @SideOnly(Side.CLIENT) public class MoCGUIEntityNamer extends GuiScreen { protected String screenTitle; private final MoCIMoCreature NamedEntity; private int updateCounter; private static String allowedCharacters; private String NameToSet; protected int xSize; protected int ySize; public MoCGUIEntityNamer(MoCIMoCreature mocanimal, String s) { xSize = 256; ySize = 181; screenTitle = "Choose your Pet's name:"; NamedEntity = mocanimal; NameToSet = s; } @Override public void initGui() { buttonList.clear(); //1.5 Keyboard.enableRepeatEvents(true); buttonList.add(new GuiButton(0, (width / 2) - 100, (height / 4) + 120, "Done")); //1.5 } static { allowedCharacters = ChatAllowedCharacters.allowedCharacters; } public void updateName() { //System.out.println("updating name of entity " + NamedEntity + "with " + NameToSet); NamedEntity.setName(NameToSet); MoCClientPacketHandler.sendNameInfo(((EntityLiving) NamedEntity).entityId, NameToSet); //MoCServerPacketHandler.sendNameInfo(((EntityLiving)NamedEntity).entityId, NameToSet, ((EntityLiving)NamedEntity).worldObj.provider.dimensionId); /* if(!mc.theWorld.isRemote) { } else { //MoCServerPacketHandler.sendNameInfo(((EntityLiving)NamedEntity).entityId, NameToSet); } */mc.displayGuiScreen(null); } @Override protected void actionPerformed(GuiButton guibutton) { if (!guibutton.enabled) { return; } if (guibutton.id == 0) { updateName(); } } @Override public void drawScreen(int i, int j, float f) { drawDefaultBackground(); //int k = mc.renderEngine.getTexture("/mocreatures/mocname.png"); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); //mc.renderEngine.bindTexture(k); this.mc.renderEngine.bindTexture(MoCreatures.proxy.GUI_TEXTURE + "mocname.png"); int l = (width - xSize) / 2; int i1 = (height - (ySize + 16)) / 2; drawTexturedModalRect(l, i1, 0, 0, xSize, ySize); drawCenteredString(fontRenderer, screenTitle, width / 2, 100, 0xffffff); drawCenteredString(fontRenderer, NameToSet, width / 2, 120, 0xffffff); super.drawScreen(i, j, f); } @Override public void handleKeyboardInput() { if (Keyboard.getEventKeyState()) { if (Keyboard.getEventKey() == 28) // Handle Enter Key { updateName(); } } super.handleKeyboardInput(); } @Override protected void keyTyped(char c, int i) { if ((i == 14) && (NameToSet.length() > 0)) { NameToSet = NameToSet.substring(0, NameToSet.length() - 1); } if ((allowedCharacters.indexOf(c) < 0) || (NameToSet.length() >= 15)) { } else { StringBuilder name = new StringBuilder(NameToSet); name.append(c); NameToSet = name.toString(); } } @Override public void onGuiClosed() { Keyboard.enableRepeatEvents(false); } @Override public void updateScreen() { updateCounter++; } }