package de.venjinx.jme3.tests;
import java.util.logging.Level;
import java.util.logging.Logger;
import com.jme3.app.ResetStatsState;
import com.jme3.app.SimpleApplication;
import com.jme3.app.state.AppState;
import com.jme3.app.state.AppStateManager;
import com.jme3.font.BitmapFont;
import com.jme3.system.AppSettings;
import de.venjinx.jme3.scenegraph.Scenegraph;
public abstract class AdvancedApplication extends SimpleApplication {
private Logger log = Logger.getLogger(AdvancedApplication.class.getName());
protected Scenegraph scenegraph = new Scenegraph();
public AdvancedApplication(AppState... initialStates) {
// Logger.getLogger("").setLevel(Level.OFF);
log.setLevel(Level.INFO);
stateManager = new AppStateManager(this);
stateManager.attach(new ResetStatsState());
settings = new AppSettings(false);
settings.setAlphaBits(0);
settings.setAudioRenderer("LWJGL");
settings.setBitsPerPixel(24);
settings.setDepthBits(24);
settings.setEmulateMouse(false); // use touch device
settings.setEmulateMouseFlipAxis(false, false);
settings.setFrameRate(-1);
settings.setFrequency(60);
settings.setFullscreen(false);
settings.setIcons(null);
settings.setRenderer("LWJGL-OpenGL-Any");
settings.setResolution(800, 600);
settings.setSamples(0);
settings.setSettingsDialogImage("/com/jme3/app/Monkey.png");
settings.setStencilBits(0);
settings.setStereo3D(false);
settings.setTitle("AdvancedApplication");
settings.setUseInput(true);
settings.setUseJoysticks(false); // use joystick
settings.setVSync(false);
showSettings = false;
setPauseOnLostFocus(false);
if (initialStates != null)
for (AppState a : initialStates)
if (a != null)
stateManager.attach(a);
rootNode = scenegraph.getRootNode();
}
/**
* Retrieves the scenegraph for of this application.
*
* @return the scenegraph that manages all scene nodes in this application
*/
public Scenegraph getScenegraph() {
return scenegraph;
}
public BitmapFont getGUIFont() {
return guiFont;
}
@Override
public void start() {
super.start();
log.info("----------------Application started----------------\n");
}
@Override
public void stop() {
super.stop();
System.out.println();
log.info("----------------Application stopped----------------\n");
}
/**
* Internal use only.
*/
@Override
public void requestClose(boolean esc) {
context.destroy(false);
System.out.println();
log.info("----------------Application closed----------------\n");
}
}