Package org.spoutcraft.client.gui.error

Source Code of org.spoutcraft.client.gui.error.ReturnToServerList

/*
* This file is part of Spoutcraft.
*
* Copyright (c) 2011 SpoutcraftDev <http://spoutcraft.org/>
* Spoutcraft is licensed under the GNU Lesser General Public License.
*
* Spoutcraft is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Spoutcraft is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
package org.spoutcraft.client.gui.error;

import org.lwjgl.opengl.GL11;
import org.newdawn.slick.opengl.Texture;

import net.minecraft.src.Minecraft;
import net.minecraft.src.GuiConnecting;
import net.minecraft.src.GuiScreen;

import org.spoutcraft.api.Spoutcraft;
import org.spoutcraft.api.gui.Button;
import org.spoutcraft.api.gui.Color;
import org.spoutcraft.api.gui.GenericButton;
import org.spoutcraft.api.gui.GenericLabel;
import org.spoutcraft.api.gui.GenericScrollArea;
import org.spoutcraft.api.gui.GenericTexture;
import org.spoutcraft.api.gui.RenderPriority;
import org.spoutcraft.api.gui.WidgetAnchor;
import org.spoutcraft.client.SpoutClient;
import org.spoutcraft.client.gui.MCRenderDelegate;
import org.spoutcraft.client.io.CustomTextureManager;
import org.spoutcraft.client.io.FileUtil;

public class GuiConnectionLost extends GuiScreen {
  public static String lastServerIp;
  public static int lastServerPort;

  private String message;

  public GuiConnectionLost() {
    message = "The connection to the server has been lost!";
  }

  public GuiConnectionLost(String message) {
    this.message = message;
  }

  @Override
  public void initGui() {
    GenericScrollArea screen = new GenericScrollArea();
    screen.setHeight(height - 16 - 24).setWidth(width).setY(16 + 24).setX(0);
    getScreen().attachWidget("Spoutcraft", screen);

    GenericLabel label = new GenericLabel("Connection Lost!");
    int size = Spoutcraft.getMinecraftFont().getTextWidth(label.getText());
    label.setX((int) (width / 2 - size / 2)).setY(16);
    label.setFixed(true).setPriority(RenderPriority.Lowest);
    getScreen().attachWidget("Spoutcraft", label);

    int top = 5;
    Color grey = new Color(0.80F, 0.80F, 0.80F, 0.65F);

    label = new GenericLabel(message);
    size = Spoutcraft.getMinecraftFont().getTextWidth(label.getText());
    label.setX((int) (width / 2 - size / 2)).setY(top);
    label.setTextColor(grey);
    screen.attachWidget("Spoutcraft", label);

    LocalTexture texture = new LocalTexture();
    texture.setUrl(FileUtil.getAssetsDir().getPath()+"/misc/disconnected.png").setX((int) (width / 2 - 64)).setY(top);
    texture.setHeight(128).setWidth(128);
    screen.attachWidget("Spoutcraft", texture);

    top += 116;

    Button button;
    button = new ReconnectButton().setText("Attempt to Reconnect");
    button.setHeight(20).setWidth(200);
    button.setX((int) (width / 2 - button.getWidth() / 2));
    button.setY(top);
    button.setAlign(WidgetAnchor.TOP_CENTER);
    screen.attachWidget("Spoutcraft", button);
    top += 26;

    button = new ReturnToServerList().setText("Return to " + SpoutClient.getInstance().getServerManager().getJoinedFromName());
    button.setHeight(20).setWidth(200);
    button.setX((int) (width / 2 - button.getWidth() / 2));
    button.setY(top);
    button.setAlign(WidgetAnchor.TOP_CENTER);
    screen.attachWidget("Spoutcraft", button);
    top += 26;

    button = new ReturnToMainMenu().setText("Return to Main Menu");
    button.setHeight(20).setWidth(200);
    button.setX((int) (width / 2 - button.getWidth() / 2));
    button.setY(top);
    button.setAlign(WidgetAnchor.TOP_CENTER);
    screen.attachWidget("Spoutcraft", button);
    top += 26;
  }

  @Override
  public void drawScreen(int var1, int var2, float var3) {
    drawDefaultBackground();
  }
}

class ReconnectButton extends GenericButton {
  public void onButtonClick() {
    Minecraft.getMinecraft().displayGuiScreen(new GuiConnecting(Minecraft.getMinecraft(), GuiConnectionLost.lastServerIp, GuiConnectionLost.lastServerPort));
  }
}

class ReturnToMainMenu extends GenericButton {
  public void onButtonClick() {
    Minecraft.getMinecraft().displayGuiScreen(new org.spoutcraft.client.gui.mainmenu.MainMenu());
  }
}

class ReturnToServerList extends GenericButton {
  public void onButtonClick() {
    Minecraft.theMinecraft.displayGuiScreen(SpoutClient.getInstance().getServerManager().getJoinedFrom());
  }
}

class LocalTexture extends GenericTexture {
  public void render() {
    Texture texture = CustomTextureManager.getTextureFromPath(getUrl());
    if (texture != null) {
      GL11.glTranslatef((float) getScreenX(), (float) getScreenY(), 0); // Moves texture into place
      ((MCRenderDelegate)Spoutcraft.getRenderDelegate()).drawTexture(texture, (int)getWidth(), (int)getHeight(), isDrawingAlphaChannel());
    }
  }
}
TOP

Related Classes of org.spoutcraft.client.gui.error.ReturnToServerList

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.