Rogue: Savage Rats, a retro-themed dungeon crawler
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
rogue-savage-rats/src/mightypork/rogue/RogueApp.java

67 lines
1.5 KiB

package mightypork.rogue;
import mightypork.gamecore.backends.lwjgl.LwjglBackend;
import mightypork.gamecore.core.App;
import mightypork.gamecore.core.events.MainLoopRequest;
import mightypork.gamecore.core.plugins.screenshot.ScreenshotRequestListener;
import mightypork.gamecore.gui.events.ViewportChangeEvent;
import mightypork.gamecore.gui.events.ViewportChangeListener;
import mightypork.gamecore.resources.Res;
import mightypork.rogue.RogueStateManager.RogueState;
import mightypork.rogue.events.RogueStateRequest;
/**
* Main class
*
* @author Ondřej Hruška (MightyPork)
*/
public final class RogueApp extends App implements ViewportChangeListener, ScreenshotRequestListener {
public RogueApp()
{
super(new LwjglBackend());
}
@Override
public void onScreenshotRequest()
{
Res.sound("gui.shutter").play(0.8);
}
@Override
protected void postInit()
{
bus().send(new MainLoopRequest(new Runnable() {
@Override
public void run()
{
if (cfg().getValue("opt.show_story")) {
cfg().setValue("opt.show_story", false);
bus().send(new RogueStateRequest(RogueState.STORY, true));
} else {
bus().send(new RogueStateRequest(RogueState.MAIN_MENU, true));
}
}
}, false));
}
@Override
public void onViewportChanged(ViewportChangeEvent event)
{
// save viewport size to config file
final boolean fs = gfx().isFullscreen();
cfg().setValue("display.fullscreen", fs);
if (!fs) {
cfg().setValue("display.width", gfx().getWidth());
cfg().setValue("display.height", gfx().getHeight());
}
}
}