package slimpleslickgame;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JOptionPane;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.Input;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.UnicodeFont;
import org.newdawn.slick.font.effects.ColorEffect;
import org.newdawn.slick.state.BasicGameState;
import org.newdawn.slick.state.StateBasedGame;
import org.newdawn.slick.state.transition.FadeInTransition;
import org.newdawn.slick.state.transition.FadeOutTransition;
import server.Server;
import client.Client;
import client.InitThread;
public class MainMenu extends BasicGameState {
public static final int ID = 1;
private StateBasedGame game;
private UnicodeFont ufont;
@SuppressWarnings("unchecked")
@Override
public void init(GameContainer container, StateBasedGame game) throws SlickException {
this.game = game;
Font font = new Font(Font.MONOSPACED, Font.PLAIN, 60);
ufont = new UnicodeFont(font);
ufont.addAsciiGlyphs();
ufont.addGlyphs(32, 127);
ufont.getEffects().add(new ColorEffect(Color.WHITE));
ufont.loadGlyphs();
}
@Override
public void render(GameContainer container, StateBasedGame game, Graphics g) throws SlickException {
g.setFont(ufont);
g.drawString("1. NEW GAME", Client.WIDTH/2 - ufont.getWidth("1. NEW GAME")/2, 200);
g.drawString("2. JOIN GAME", Client.WIDTH/2 - ufont.getWidth("2. JOIN GAME")/2, 500);
}
@Override
public void update(GameContainer container, StateBasedGame game, int delta) throws SlickException {
String ip = "127.0.0.1";
boolean inp = false;
Input input = container.getInput();
if(input.isKeyDown(Input.KEY_1)){
(new Server()).start();
inp = true;
} else if(input.isKeyDown(Input.KEY_2)){
ip = JOptionPane.showInputDialog("Connect to server using ip.");
inp = true;
}
if(inp){
this.game.enterState(Game.ID, new FadeOutTransition(org.newdawn.slick.Color.black), new FadeInTransition(org.newdawn.slick.Color.black));
new InitThread(ip, (Game) game.getState(Game.ID)).start();
}
}
@Override
public int getID() {
return ID;
}
}