Package com.drakulo.games.ais

Source Code of com.drakulo.games.ais.AloneInSpace

package com.drakulo.games.ais;

import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Properties;

import org.newdawn.slick.AppGameContainer;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.SlickException;

import com.drakulo.games.ais.core.GameData;
import com.drakulo.games.ais.core.Settings;
import com.drakulo.games.ais.core.io.BuildingIO;
import com.drakulo.games.ais.ui.I18n;
import com.drakulo.games.ais.ui.state.MainMenuState;
import com.drakulo.games.ais.ui.state.SectorState;
import com.drakulo.games.ais.ui.state.PlanetState;
import com.drakulo.games.ais.ui.state.ResearchState;
import com.drakulo.games.ais.ui.twlbridge.TWLStateBasedGame;

/**
* <h1>The Game</h1>
* <p>
* Initialize the game's states and start the rendering
* </p>
*
* @author Drakulo
*
*/
public class AloneInSpace extends TWLStateBasedGame {
  private static String version;
  private static String releaseType;
  static {

    Properties props = new Properties();
    InputStream inputStream = AloneInSpace.class.getClassLoader()
        .getResourceAsStream("version.properties");

    if (inputStream == null) {
      System.out.println("Version file not found!");
    }

    try {
      props.load(inputStream);
      version = props.getProperty("version");
      releaseType = props.getProperty("releaseType");
    } catch (IOException e1) {
      e1.printStackTrace();
    }
  }

  // public static final int PLAY_STATE = 0;
  public static final int SECTOR_STATE = 0;
  public static final int RESEARCH_STATE = 1;
  public static final int MAIN_MENU_STATE = 2;
  public static final int PLANET_STATE = 3;

  public static boolean showConsole = false;

  public static void main(String[] args) throws Exception {
    if(args != null && args.length >0){
      Settings.IS_DEBUG = true;
    }
    if(Settings.IS_DEBUG){
      System.out.println("== Debug mode enabled ==");
    }
   
    AppGameContainer app = new AppGameContainer(new AloneInSpace());
    app.setDisplayMode(Settings.WIDTH, Settings.HEIGHT, false);
    app.setFullscreen(Settings.FULL_SCREEN);
    app.setShowFPS(false);
    app.setMinimumLogicUpdateInterval(16);
    app.setTargetFrameRate(60);
    app.start();
  }

  public AloneInSpace() throws Exception {
    super("Alone in Space" + " - v" + version + "-" + releaseType);
    // I18n init
    I18n.initialize();

    GameData.initialize();
   
    // Loading building configs
    // TODO Handle file corruption
    BuildingIO.loadBuildingsData();
  }

  @Override
  public void initStatesList(GameContainer arg0) throws SlickException {
    this.addState(new MainMenuState(MAIN_MENU_STATE));
    this.addState(new SectorState(SECTOR_STATE));
    this.addState(new ResearchState(RESEARCH_STATE));
    this.addState(new PlanetState(PLANET_STATE));
   
    this.enterState(MAIN_MENU_STATE);
  }

  @Override
  protected URL getThemeURL() {
    System.out.println("Getting theme file");
    return AloneInSpace.class
        .getResource("/com/drakulo/games/ais/ui/config/theme.xml");
  }

}
TOP

Related Classes of com.drakulo.games.ais.AloneInSpace

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.