package net.minecraft.client.multiplayer;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.util.StringTranslate;
@SideOnly(Side.CLIENT)
public class GuiConnecting extends GuiScreen
{
/** A reference to the NetClientHandler. */
private NetClientHandler clientHandler;
/** True if the connection attempt has been cancelled. */
private boolean cancelled = false;
private final GuiScreen field_98098_c;
public GuiConnecting(GuiScreen par1GuiScreen, Minecraft par2Minecraft, ServerData par3ServerData)
{
this.mc = par2Minecraft;
this.field_98098_c = par1GuiScreen;
ServerAddress serveraddress = ServerAddress.func_78860_a(par3ServerData.serverIP);
par2Minecraft.loadWorld((WorldClient)null);
par2Minecraft.setServerData(par3ServerData);
this.spawnNewServerThread(serveraddress.getIP(), serveraddress.getPort());
}
public GuiConnecting(GuiScreen par1GuiScreen, Minecraft par2Minecraft, String par3Str, int par4)
{
this.mc = par2Minecraft;
this.field_98098_c = par1GuiScreen;
par2Minecraft.loadWorld((WorldClient)null);
this.spawnNewServerThread(par3Str, par4);
}
private void spawnNewServerThread(String par1Str, int par2)
{
this.mc.getLogAgent().logInfo("Connecting to " + par1Str + ", " + par2);
(new ThreadConnectToServer(this, par1Str, par2)).start();
}
/**
* Called from the main game loop to update the screen.
*/
public void updateScreen()
{
if (this.clientHandler != null)
{
this.clientHandler.processReadPackets();
}
}
/**
* Fired when a key is typed. This is the equivalent of KeyListener.keyTyped(KeyEvent e).
*/
protected void keyTyped(char par1, int par2) {}
/**
* Adds the buttons (and other controls) to the screen in question.
*/
public void initGui()
{
StringTranslate stringtranslate = StringTranslate.getInstance();
this.buttonList.clear();
this.buttonList.add(new GuiButton(0, this.width / 2 - 100, this.height / 4 + 120 + 12, stringtranslate.translateKey("gui.cancel")));
}
/**
* Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e).
*/
protected void actionPerformed(GuiButton par1GuiButton)
{
if (par1GuiButton.id == 0)
{
this.cancelled = true;
if (this.clientHandler != null)
{
this.clientHandler.disconnect();
}
this.mc.displayGuiScreen(this.field_98098_c);
}
}
/**
* Draws the screen and all the components in it.
*/
public void drawScreen(int par1, int par2, float par3)
{
this.drawDefaultBackground();
StringTranslate stringtranslate = StringTranslate.getInstance();
if (this.clientHandler == null)
{
this.drawCenteredString(this.fontRenderer, stringtranslate.translateKey("connect.connecting"), this.width / 2, this.height / 2 - 50, 16777215);
this.drawCenteredString(this.fontRenderer, "", this.width / 2, this.height / 2 - 10, 16777215);
}
else
{
this.drawCenteredString(this.fontRenderer, stringtranslate.translateKey("connect.authorizing"), this.width / 2, this.height / 2 - 50, 16777215);
this.drawCenteredString(this.fontRenderer, this.clientHandler.field_72560_a, this.width / 2, this.height / 2 - 10, 16777215);
}
super.drawScreen(par1, par2, par3);
}
/**
* Sets the NetClientHandler.
*/
static NetClientHandler setNetClientHandler(GuiConnecting par0GuiConnecting, NetClientHandler par1NetClientHandler)
{
return par0GuiConnecting.clientHandler = par1NetClientHandler;
}
static Minecraft func_74256_a(GuiConnecting par0GuiConnecting)
{
return par0GuiConnecting.mc;
}
static boolean isCancelled(GuiConnecting par0GuiConnecting)
{
return par0GuiConnecting.cancelled;
}
static Minecraft func_74254_c(GuiConnecting par0GuiConnecting)
{
return par0GuiConnecting.mc;
}
/**
* Gets the NetClientHandler.
*/
static NetClientHandler getNetClientHandler(GuiConnecting par0GuiConnecting)
{
return par0GuiConnecting.clientHandler;
}
static GuiScreen func_98097_e(GuiConnecting par0GuiConnecting)
{
return par0GuiConnecting.field_98098_c;
}
static Minecraft func_74250_f(GuiConnecting par0GuiConnecting)
{
return par0GuiConnecting.mc;
}
static Minecraft func_74251_g(GuiConnecting par0GuiConnecting)
{
return par0GuiConnecting.mc;
}
static Minecraft func_98096_h(GuiConnecting par0GuiConnecting)
{
return par0GuiConnecting.mc;
}
public static void forceTermination(GuiConnecting gui)
{
gui.cancelled = true;
gui.clientHandler = null;
}
}