001 package net.minecraft.src; 002 003 import cpw.mods.fml.common.Side; 004 import cpw.mods.fml.common.asm.SideOnly; 005 import net.minecraft.client.Minecraft; 006 007 @SideOnly(Side.CLIENT) 008 public class GuiConnecting extends GuiScreen 009 { 010 /** A reference to the NetClientHandler. */ 011 private NetClientHandler clientHandler; 012 013 /** True if the connection attempt has been cancelled. */ 014 private boolean cancelled = false; 015 016 public GuiConnecting(Minecraft par1Minecraft, ServerData par2ServerData) 017 { 018 this.mc = par1Minecraft; 019 ServerAddress var3 = ServerAddress.func_78860_a(par2ServerData.serverIP); 020 par1Minecraft.loadWorld((WorldClient)null); 021 par1Minecraft.setServerData(par2ServerData); 022 this.spawnNewServerThread(var3.getIP(), var3.getPort()); 023 } 024 025 public GuiConnecting(Minecraft par1Minecraft, String par2Str, int par3) 026 { 027 this.mc = par1Minecraft; 028 par1Minecraft.loadWorld((WorldClient)null); 029 this.spawnNewServerThread(par2Str, par3); 030 } 031 032 private void spawnNewServerThread(String par1Str, int par2) 033 { 034 System.out.println("Connecting to " + par1Str + ", " + par2); 035 (new ThreadConnectToServer(this, par1Str, par2)).start(); 036 } 037 038 /** 039 * Called from the main game loop to update the screen. 040 */ 041 public void updateScreen() 042 { 043 if (this.clientHandler != null) 044 { 045 this.clientHandler.processReadPackets(); 046 } 047 } 048 049 /** 050 * Fired when a key is typed. This is the equivalent of KeyListener.keyTyped(KeyEvent e). 051 */ 052 protected void keyTyped(char par1, int par2) {} 053 054 /** 055 * Adds the buttons (and other controls) to the screen in question. 056 */ 057 public void initGui() 058 { 059 StringTranslate var1 = StringTranslate.getInstance(); 060 this.controlList.clear(); 061 this.controlList.add(new GuiButton(0, this.width / 2 - 100, this.height / 4 + 120 + 12, var1.translateKey("gui.cancel"))); 062 } 063 064 /** 065 * Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e). 066 */ 067 protected void actionPerformed(GuiButton par1GuiButton) 068 { 069 if (par1GuiButton.id == 0) 070 { 071 this.cancelled = true; 072 073 if (this.clientHandler != null) 074 { 075 this.clientHandler.disconnect(); 076 } 077 078 this.mc.displayGuiScreen(new GuiMainMenu()); 079 } 080 } 081 082 /** 083 * Draws the screen and all the components in it. 084 */ 085 public void drawScreen(int par1, int par2, float par3) 086 { 087 this.drawDefaultBackground(); 088 StringTranslate var4 = StringTranslate.getInstance(); 089 090 if (this.clientHandler == null) 091 { 092 this.drawCenteredString(this.fontRenderer, var4.translateKey("connect.connecting"), this.width / 2, this.height / 2 - 50, 16777215); 093 this.drawCenteredString(this.fontRenderer, "", this.width / 2, this.height / 2 - 10, 16777215); 094 } 095 else 096 { 097 this.drawCenteredString(this.fontRenderer, var4.translateKey("connect.authorizing"), this.width / 2, this.height / 2 - 50, 16777215); 098 this.drawCenteredString(this.fontRenderer, this.clientHandler.field_72560_a, this.width / 2, this.height / 2 - 10, 16777215); 099 } 100 101 super.drawScreen(par1, par2, par3); 102 } 103 104 /** 105 * Sets the NetClientHandler. 106 */ 107 static NetClientHandler setNetClientHandler(GuiConnecting par0GuiConnecting, NetClientHandler par1NetClientHandler) 108 { 109 return par0GuiConnecting.clientHandler = par1NetClientHandler; 110 } 111 112 static Minecraft func_74256_a(GuiConnecting par0GuiConnecting) 113 { 114 return par0GuiConnecting.mc; 115 } 116 117 static boolean isCancelled(GuiConnecting par0GuiConnecting) 118 { 119 return par0GuiConnecting.cancelled; 120 } 121 122 static Minecraft func_74254_c(GuiConnecting par0GuiConnecting) 123 { 124 return par0GuiConnecting.mc; 125 } 126 127 /** 128 * Gets the NetClientHandler. 129 */ 130 static NetClientHandler getNetClientHandler(GuiConnecting par0GuiConnecting) 131 { 132 return par0GuiConnecting.clientHandler; 133 } 134 135 static Minecraft func_74249_e(GuiConnecting par0GuiConnecting) 136 { 137 return par0GuiConnecting.mc; 138 } 139 140 static Minecraft func_74250_f(GuiConnecting par0GuiConnecting) 141 { 142 return par0GuiConnecting.mc; 143 } 144 145 static Minecraft func_74251_g(GuiConnecting par0GuiConnecting) 146 { 147 return par0GuiConnecting.mc; 148 } 149 150 public static void forceTermination(GuiConnecting gui) 151 { 152 gui.cancelled = true; 153 gui.clientHandler = null; 154 } 155 }