evil-inside/src/ei/engine/state/GameState.java

87 lines
1.5 KiB
Java
Raw Normal View History

2007-03-07 21:42:12 +00:00
package ei.engine.state;
import ei.engine.LWJGLGameWindow;
import ei.engine.input.InputHandler;
import ei.engine.renderer.Camera;
2007-04-12 13:07:35 +00:00
import ei.engine.util.MultiPrintStream;
public abstract class GameState {
2007-03-07 21:42:12 +00:00
private String name;
private InputHandler input;
2007-03-07 21:42:12 +00:00
private boolean enabled = false;
private boolean init;
private Camera cam;
2007-03-07 21:42:12 +00:00
public GameState(String name){
this.name = name;
input = new InputHandler();
init = false;
cam = new Camera();
}
/**
* Returns the input handler of this state
*
* @return The input handler
*/
public InputHandler getInput(){
return input;
}
2007-03-07 21:42:12 +00:00
/**
* set if this State is enabled
* @param b
*/
public void setEnabled(boolean b){
enabled = b;
if(enabled){
if(!init){
init();
init = true;
}
if(LWJGLGameWindow.getCamera() != cam){
LWJGLGameWindow.setCamera(cam);
}
}
2007-04-12 13:07:35 +00:00
MultiPrintStream.out.println("Enabling("+b+") State: "+getName());
2007-03-07 21:42:12 +00:00
}
/**
* @return the status of the GameState
*/
public boolean isEnabled(){
return enabled;
}
/**
* @return the name of the GameState
*/
public String getName(){
return name;
}
/**
* Updates the State
*
*/
public void stateUpdate(){
input.update();
update();
}
/**
* Renders the state
*
*/
public void stateRender(){
render();
input.render();
}
public abstract void init();
public abstract void update();
2007-03-07 21:42:12 +00:00
public abstract void render();
2007-03-07 21:42:12 +00:00
}