From 84789ccf47b1fbaebf79b6be6cdacf5fbd37d4d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Hru=C5=A1ka?= Date: Mon, 28 Jul 2014 01:41:46 +0200 Subject: [PATCH] Fixed what could be fixed easily --- .classpath | 2 ++ src/mightypork/rogue/Launcher.java | 3 +- src/mightypork/rogue/RogueApp.java | 3 +- src/mightypork/rogue/RogueStateManager.java | 18 +++++----- src/mightypork/rogue/screens/FpsOverlay.java | 5 ++- .../rogue/screens/LoadingOverlay.java | 3 +- src/mightypork/rogue/screens/RogueScreen.java | 7 ++-- .../rogue/screens/game/IngameNav.java | 12 +++---- .../rogue/screens/game/LayerAskSave.java | 16 +++++---- .../rogue/screens/game/LayerDeath.java | 11 +++--- .../rogue/screens/game/LayerGameUi.java | 2 +- .../rogue/screens/game/LayerInv.java | 18 +++++----- .../rogue/screens/game/LayerWin.java | 9 ++--- .../rogue/screens/game/ScreenGame.java | 36 ++++++++++--------- .../rogue/screens/menu/ScreenMainMenu.java | 23 ++++++------ .../select_world/ScreenSelectWorld.java | 17 +++++---- .../rogue/screens/select_world/WorldSlot.java | 12 +++---- .../rogue/screens/story/ScreenStory.java | 10 +++--- src/mightypork/rogue/world/World.java | 22 +----------- src/mightypork/rogue/world/WorldProvider.java | 12 +++---- .../world/entity/impl/EntityBossRat.java | 3 +- .../rogue/world/entity/impl/EntityPlayer.java | 5 +-- src/mightypork/rogue/world/gui/Minimap.java | 2 ++ .../world/gui/interaction/MIPKeyboard.java | 2 ++ .../rogue/world/gui/interaction/MIPMouse.java | 9 ++--- src/mightypork/rogue/world/level/Level.java | 9 +---- src/mightypork/rogue/world/tile/Tile.java | 9 +---- .../world/tile/impl/TileBaseEntrance.java | 3 +- .../rogue/world/tile/impl/TileBaseExit.java | 3 +- 29 files changed, 135 insertions(+), 151 deletions(-) diff --git a/.classpath b/.classpath index 81dc7c7..ae42176 100644 --- a/.classpath +++ b/.classpath @@ -3,5 +3,7 @@ + + diff --git a/src/mightypork/rogue/Launcher.java b/src/mightypork/rogue/Launcher.java index 96d2e36..9655bd5 100644 --- a/src/mightypork/rogue/Launcher.java +++ b/src/mightypork/rogue/Launcher.java @@ -5,6 +5,7 @@ import java.io.File; import java.util.logging.Level; import junk.BaseApp; +import mightypork.gamecore.core.App; import mightypork.utils.files.OsUtils; @@ -77,7 +78,7 @@ public class Launcher { System.exit(1); } - final BaseApp app = new RogueApp(); + final App app = new RogueApp(); app.getInitOptions().setWorkdir(workdir); app.getInitOptions().setSigleInstance(true); diff --git a/src/mightypork/rogue/RogueApp.java b/src/mightypork/rogue/RogueApp.java index aeacf45..89766a2 100644 --- a/src/mightypork/rogue/RogueApp.java +++ b/src/mightypork/rogue/RogueApp.java @@ -5,6 +5,7 @@ import junk.AppInitOptions; import junk.BaseApp; import mightypork.gamecore.backends.lwjgl.LwjglBackend; import mightypork.gamecore.backends.lwjgl.LwjglInputModule; +import mightypork.gamecore.core.App; import mightypork.gamecore.core.config.Config; import mightypork.gamecore.core.events.MainLoopRequest; import mightypork.gamecore.core.events.ShutdownEvent; @@ -37,7 +38,7 @@ import mightypork.utils.logging.Log; * * @author Ondřej Hruška (MightyPork) */ -public final class RogueApp extends BaseApp implements ViewportChangeListener, ScreenshotRequestListener { +public final class RogueApp extends App implements ViewportChangeListener { public RogueApp() { super(new LwjglBackend()); diff --git a/src/mightypork/rogue/RogueStateManager.java b/src/mightypork/rogue/RogueStateManager.java index c151b66..586fef0 100644 --- a/src/mightypork/rogue/RogueStateManager.java +++ b/src/mightypork/rogue/RogueStateManager.java @@ -1,15 +1,13 @@ package mightypork.rogue; +import mightypork.gamecore.core.App; import mightypork.gamecore.gui.screens.impl.CrossfadeRequest; +import mightypork.utils.eventbus.clients.BusNode; import mightypork.utils.logging.Log; -public class RogueStateManager extends AppModule { - - public RogueStateManager(AppAccess app) { - super(app); - } +public class RogueStateManager extends BusNode { public static enum RogueState { @@ -21,23 +19,23 @@ public class RogueStateManager extends AppModule { { switch (state) { case MAIN_MENU: - getEventBus().send(new CrossfadeRequest("main_menu", fromDark)); + App.bus().send(new CrossfadeRequest("main_menu", fromDark)); break; case SELECT_WORLD: - getEventBus().send(new CrossfadeRequest("select_world", fromDark)); + App.bus().send(new CrossfadeRequest("select_world", fromDark)); break; case PLAY_WORLD: - getEventBus().send(new CrossfadeRequest("game", fromDark)); + App.bus().send(new CrossfadeRequest("game", fromDark)); break; case STORY: - getEventBus().send(new CrossfadeRequest("story", fromDark)); + App.bus().send(new CrossfadeRequest("story", fromDark)); break; case EXIT: - getEventBus().send(new CrossfadeRequest(null)); + App.bus().send(new CrossfadeRequest(null)); break; default: diff --git a/src/mightypork/rogue/screens/FpsOverlay.java b/src/mightypork/rogue/screens/FpsOverlay.java index 63eebc2..c7182ae 100644 --- a/src/mightypork/rogue/screens/FpsOverlay.java +++ b/src/mightypork/rogue/screens/FpsOverlay.java @@ -27,13 +27,12 @@ public class FpsOverlay extends Overlay { TextPainter tp; - public FpsOverlay(AppAccess screen) { - super(screen); + public FpsOverlay() { /* * Toggle key: F3 */ - bindKey(Config.getKeyStroke("global.fps_meter"), Trigger.RISING, new Action() { + bindKey(App.cfg().getKeyStroke("global.fps_meter"), Trigger.RISING, new Action() { @Override public void execute() diff --git a/src/mightypork/rogue/screens/LoadingOverlay.java b/src/mightypork/rogue/screens/LoadingOverlay.java index 0d2df5d..68326de 100644 --- a/src/mightypork/rogue/screens/LoadingOverlay.java +++ b/src/mightypork/rogue/screens/LoadingOverlay.java @@ -63,8 +63,7 @@ public class LoadingOverlay extends Overlay { }; - public LoadingOverlay(AppAccess app) { - super(app); + public LoadingOverlay() { final QuadPainter qp = new QuadPainter(PAL16.SEABLUE); qp.setRect(root); diff --git a/src/mightypork/rogue/screens/RogueScreen.java b/src/mightypork/rogue/screens/RogueScreen.java index 715b705..7053d89 100644 --- a/src/mightypork/rogue/screens/RogueScreen.java +++ b/src/mightypork/rogue/screens/RogueScreen.java @@ -1,6 +1,7 @@ package mightypork.rogue.screens; +import mightypork.gamecore.core.App; import mightypork.gamecore.core.events.ShutdownEvent; import mightypork.gamecore.core.events.ShutdownListener; import mightypork.gamecore.gui.screens.LayeredScreen; @@ -11,16 +12,12 @@ import mightypork.utils.annotations.Stub; public class RogueScreen extends LayeredScreen implements ShutdownListener { - public RogueScreen(AppAccess app) { - super(app); - } - @Override @Stub public void onShutdown(ShutdownEvent event) { - getEventBus().send(new RogueStateRequest(RogueState.EXIT)); + App.bus().send(new RogueStateRequest(RogueState.EXIT)); event.consume(); } } diff --git a/src/mightypork/rogue/screens/game/IngameNav.java b/src/mightypork/rogue/screens/game/IngameNav.java index 020860b..95a3e76 100644 --- a/src/mightypork/rogue/screens/game/IngameNav.java +++ b/src/mightypork/rogue/screens/game/IngameNav.java @@ -20,17 +20,17 @@ public class IngameNav extends LayoutComponent { private final TxQuad bg; - public IngameNav(AppAccess app) { - this(app, null); + public IngameNav() { + this(null); } - public IngameNav(AppAccess app, RectBound context) { - super(app, context); + public IngameNav(RectBound context) { + super(context); final Rect shr = this.shrink(height().perc(5)); - leftFlow = new FlowColumnLayout(app, context, shr.height(), AlignX.LEFT); - rightFlow = new FlowColumnLayout(app, context, shr.height(), AlignX.RIGHT); + leftFlow = new FlowColumnLayout(context, shr.height(), AlignX.LEFT); + rightFlow = new FlowColumnLayout(context, shr.height(), AlignX.RIGHT); leftFlow.setRect(shr); rightFlow.setRect(shr); diff --git a/src/mightypork/rogue/screens/game/LayerAskSave.java b/src/mightypork/rogue/screens/game/LayerAskSave.java index 8181762..d6198bf 100644 --- a/src/mightypork/rogue/screens/game/LayerAskSave.java +++ b/src/mightypork/rogue/screens/game/LayerAskSave.java @@ -3,6 +3,7 @@ package mightypork.rogue.screens.game; import java.io.IOException; +import mightypork.gamecore.core.App; import mightypork.gamecore.core.config.Config; import mightypork.gamecore.graphics.fonts.IFont; import mightypork.gamecore.gui.Action; @@ -44,7 +45,8 @@ public class LayerAskSave extends FadingLayer { } - public LayerAskSave(final ScreenGame screen) { + public LayerAskSave(final ScreenGame screen) + { super(screen); this.gscreen = screen; @@ -121,13 +123,15 @@ public class LayerAskSave extends FadingLayer { btn2.setAction(discard); btn3.setAction(cancel); - bindKey(Config.getKeyStroke("general.close"), Trigger.RISING, cancel); - bindKey(Config.getKeyStroke("general.cancel"), Trigger.RISING, cancel); + Config cfg = App.cfg(); + + bindKey(cfg.getKeyStroke("general.close"), Trigger.RISING, cancel); + bindKey(cfg.getKeyStroke("general.cancel"), Trigger.RISING, cancel); - bindKey(Config.getKeyStroke("general.yes"), Trigger.RISING, save); - bindKey(Config.getKeyStroke("general.confirm"), Trigger.RISING, save); + bindKey(cfg.getKeyStroke("general.yes"), Trigger.RISING, save); + bindKey(cfg.getKeyStroke("general.confirm"), Trigger.RISING, save); - bindKey(Config.getKeyStroke("general.no"), Trigger.RISING, discard); + bindKey(cfg.getKeyStroke("general.no"), Trigger.RISING, discard); } diff --git a/src/mightypork/rogue/screens/game/LayerDeath.java b/src/mightypork/rogue/screens/game/LayerDeath.java index 792d6ca..db9a1f8 100644 --- a/src/mightypork/rogue/screens/game/LayerDeath.java +++ b/src/mightypork/rogue/screens/game/LayerDeath.java @@ -3,6 +3,7 @@ package mightypork.rogue.screens.game; import java.io.IOException; +import mightypork.gamecore.core.App; import mightypork.gamecore.core.config.Config; import mightypork.gamecore.graphics.fonts.IFont; import mightypork.gamecore.gui.Action; @@ -82,16 +83,18 @@ public class LayerDeath extends FadingLayer { @Override protected void execute() { - getEventBus().send(new RogueStateRequest(RogueState.MAIN_MENU)); + App.bus().send(new RogueStateRequest(RogueState.MAIN_MENU)); } }; btn1.setAction(load); btn2.setAction(quit); - bindKey(Config.getKeyStroke("game.load"), Trigger.RISING, load); - bindKey(Config.getKeyStroke("general.confirm"), Trigger.RISING, load); - bindKey(Config.getKeyStroke("general.close"), Trigger.RISING, quit); + Config cfg = App.cfg(); + + bindKey(cfg.getKeyStroke("game.load"), Trigger.RISING, load); + bindKey(cfg.getKeyStroke("general.confirm"), Trigger.RISING, load); + bindKey(cfg.getKeyStroke("general.close"), Trigger.RISING, quit); } diff --git a/src/mightypork/rogue/screens/game/LayerGameUi.java b/src/mightypork/rogue/screens/game/LayerGameUi.java index 55b7e7a..6f6dbaa 100644 --- a/src/mightypork/rogue/screens/game/LayerGameUi.java +++ b/src/mightypork/rogue/screens/game/LayerGameUi.java @@ -111,7 +111,7 @@ public class LayerGameUi extends ScreenLayer { private void buildNav() { - final IngameNav nav = new IngameNav(this); + final IngameNav nav = new IngameNav(); nav.setRect(root.bottomEdge().growUp(root.height().perc(12))); root.add(nav); diff --git a/src/mightypork/rogue/screens/game/LayerInv.java b/src/mightypork/rogue/screens/game/LayerInv.java index db9d852..d26d4bf 100644 --- a/src/mightypork/rogue/screens/game/LayerInv.java +++ b/src/mightypork/rogue/screens/game/LayerInv.java @@ -1,6 +1,7 @@ package mightypork.rogue.screens.game; +import mightypork.gamecore.core.App; import mightypork.gamecore.core.config.Config; import mightypork.gamecore.gui.components.layout.ConstraintLayout; import mightypork.gamecore.gui.components.layout.FlowColumnLayout; @@ -29,9 +30,9 @@ public class LayerInv extends FadingLayer { private static final int SLOT_COUNT = 8; private static final int SLOT_ROW = 4; - private final KeyStroke keyUse = Config.getKeyStroke("game.inv.use"); - private final KeyStroke keyDrop = Config.getKeyStroke("game.inv.drop"); - private final KeyStroke keyClose = Config.getKeyStroke("general.close"); + private final KeyStroke keyUse = App.cfg().getKeyStroke("game.inv.use"); + private final KeyStroke keyDrop = App.cfg().getKeyStroke("game.inv.drop"); + private final KeyStroke keyClose = App.cfg().getKeyStroke("general.close"); private final StringProvider contextStrProv = new StringProvider() { @@ -116,7 +117,7 @@ public class LayerInv extends FadingLayer { int pos = 0; - final GridLayout gl = new GridLayout(root, fg, 10, 1); + final GridLayout gl = new GridLayout(fg, 10, 1); root.add(gl); final TextPainter txp = new TextPainter(Res.getFont("thick"), AlignX.CENTER, RGB.YELLOW, "Inventory"); @@ -232,8 +233,9 @@ public class LayerInv extends FadingLayer { private void setupGridWalkKeys() { + Config cfg = App.cfg(); - bindKey(Config.getKeyStroke("game.inv.move.left"), Trigger.RISING, new Runnable() { + bindKey(cfg.getKeyStroke("game.inv.move.left"), Trigger.RISING, new Runnable() { @Override public void run() @@ -250,7 +252,7 @@ public class LayerInv extends FadingLayer { } }); - bindKey(Config.getKeyStroke("game.inv.move.right"), Trigger.RISING, new Runnable() { + bindKey(cfg.getKeyStroke("game.inv.move.right"), Trigger.RISING, new Runnable() { @Override public void run() @@ -267,7 +269,7 @@ public class LayerInv extends FadingLayer { } }); - bindKey(Config.getKeyStroke("game.inv.move.up"), Trigger.RISING, new Runnable() { + bindKey(cfg.getKeyStroke("game.inv.move.up"), Trigger.RISING, new Runnable() { @Override public void run() @@ -284,7 +286,7 @@ public class LayerInv extends FadingLayer { } }); - bindKey(Config.getKeyStroke("game.inv.move.down"), Trigger.RISING, new Runnable() { + bindKey(cfg.getKeyStroke("game.inv.move.down"), Trigger.RISING, new Runnable() { @Override public void run() diff --git a/src/mightypork/rogue/screens/game/LayerWin.java b/src/mightypork/rogue/screens/game/LayerWin.java index d5145fd..99784fd 100644 --- a/src/mightypork/rogue/screens/game/LayerWin.java +++ b/src/mightypork/rogue/screens/game/LayerWin.java @@ -3,6 +3,7 @@ package mightypork.rogue.screens.game; import java.io.File; +import mightypork.gamecore.core.App; import mightypork.gamecore.core.config.Config; import mightypork.gamecore.graphics.fonts.IFont; import mightypork.gamecore.gui.Action; @@ -63,14 +64,14 @@ public class LayerWin extends FadingLayer { final File f = WorldProvider.get().getWorld().getSaveFile(); f.delete(); - getEventBus().send(new RogueStateRequest(RogueState.MAIN_MENU)); + App.bus().send(new RogueStateRequest(RogueState.MAIN_MENU)); } }; btn1.setAction(quit); - bindKey(Config.getKeyStroke("general.confirm"), Trigger.RISING, quit); - bindKey(Config.getKeyStroke("general.close"), Trigger.RISING, quit); + bindKey(App.cfg().getKeyStroke("general.confirm"), Trigger.RISING, quit); + bindKey(App.cfg().getKeyStroke("general.close"), Trigger.RISING, quit); } @@ -84,7 +85,7 @@ public class LayerWin extends FadingLayer { @Override protected void onShowFinished() { - getSoundSystem().fadeOutAllLoops(); + App.audio().fadeOutAllLoops(); Res.getSoundEffect("game.win").play(1); } diff --git a/src/mightypork/rogue/screens/game/ScreenGame.java b/src/mightypork/rogue/screens/game/ScreenGame.java index 9fb0565..34c9df9 100644 --- a/src/mightypork/rogue/screens/game/ScreenGame.java +++ b/src/mightypork/rogue/screens/game/ScreenGame.java @@ -3,6 +3,7 @@ package mightypork.rogue.screens.game; import java.io.File; +import mightypork.gamecore.core.App; import mightypork.gamecore.core.config.Config; import mightypork.gamecore.core.events.ShutdownEvent; import mightypork.gamecore.gui.Action; @@ -84,7 +85,7 @@ public class ScreenGame extends RogueScreen implements PlayerDeathHandler, GameW @Override public void execute() { - getEventBus().send(new WorldPauseRequest(PauseAction.TOGGLE)); + App.bus().send(new WorldPauseRequest(PauseAction.TOGGLE)); } }; @@ -176,7 +177,7 @@ public class ScreenGame extends RogueScreen implements PlayerDeathHandler, GameW final boolean gameOver = WorldProvider.get().getWorld().isGameOver(); if (nstate != GScrState.WORLD && state == GScrState.WORLD) { // leaving world. - getEventBus().send(new WorldPauseRequest(PauseAction.PAUSE)); + App.bus().send(new WorldPauseRequest(PauseAction.PAUSE)); worldActions.setEnabled(false); // disable world actions } @@ -189,7 +190,7 @@ public class ScreenGame extends RogueScreen implements PlayerDeathHandler, GameW Runnable task; switch (nstate) { case WORLD: - getEventBus().send(new WorldPauseRequest(PauseAction.RESUME)); + App.bus().send(new WorldPauseRequest(PauseAction.RESUME)); worldActions.setEnabled(true); break; @@ -214,7 +215,7 @@ public class ScreenGame extends RogueScreen implements PlayerDeathHandler, GameW @Override public void run() { - getEventBus().send(new RogueStateRequest(goal)); + App.bus().send(new RogueStateRequest(goal)); } }; @@ -236,8 +237,7 @@ public class ScreenGame extends RogueScreen implements PlayerDeathHandler, GameW } - public ScreenGame(AppAccess app) { - super(app); + public ScreenGame() { addLayer(invLayer = new LayerInv(this)); addLayer(deathLayer = new LayerDeath(this)); @@ -246,17 +246,19 @@ public class ScreenGame extends RogueScreen implements PlayerDeathHandler, GameW addLayer(worldLayer = new LayerMapView(this)); addLayer(askSaveLayer = new LayerAskSave(this)); - bindKey(Config.getKeyStroke("game.pause"), Trigger.RISING, actionTogglePause); + Config cfg = App.cfg(); - bindKey(Config.getKeyStroke("game.inventory"), Trigger.RISING, actionToggleInv); - bindKey(Config.getKeyStroke("game.drop"), Trigger.RISING, actionDropLastPickedItem); - bindKey(Config.getKeyStroke("game.eat"), Trigger.RISING, actionEat); - bindKey(Config.getKeyStroke("game.minimap"), Trigger.RISING, actionToggleMinimap); - bindKey(Config.getKeyStroke("game.zoom"), Trigger.RISING, actionToggleZoom); + bindKey(cfg.getKeyStroke("game.pause"), Trigger.RISING, actionTogglePause); - bindKey(Config.getKeyStroke("game.load"), Trigger.RISING, actionLoad); - bindKey(Config.getKeyStroke("game.save"), Trigger.RISING, actionSave); - bindKey(Config.getKeyStroke("game.quit"), Trigger.RISING, actionMenu); + bindKey(cfg.getKeyStroke("game.inventory"), Trigger.RISING, actionToggleInv); + bindKey(cfg.getKeyStroke("game.drop"), Trigger.RISING, actionDropLastPickedItem); + bindKey(cfg.getKeyStroke("game.eat"), Trigger.RISING, actionEat); + bindKey(cfg.getKeyStroke("game.minimap"), Trigger.RISING, actionToggleMinimap); + bindKey(cfg.getKeyStroke("game.zoom"), Trigger.RISING, actionToggleZoom); + + bindKey(cfg.getKeyStroke("game.load"), Trigger.RISING, actionLoad); + bindKey(cfg.getKeyStroke("game.save"), Trigger.RISING, actionSave); + bindKey(cfg.getKeyStroke("game.quit"), Trigger.RISING, actionMenu); // bindKey(new KeyStroke(Keys.W), Edge.RISING, new Runnable() { // @@ -284,7 +286,7 @@ public class ScreenGame extends RogueScreen implements PlayerDeathHandler, GameW worldActions.setEnabled(true); // CHEAT - X-ray - bindKey(Config.getKeyStroke("game.cheat.xray"), Trigger.RISING, new Runnable() { + bindKey(cfg.getKeyStroke("game.cheat.xray"), Trigger.RISING, new Runnable() { @Override public void run() @@ -304,7 +306,7 @@ public class ScreenGame extends RogueScreen implements PlayerDeathHandler, GameW setState(GScrState.WORLD); hideAllPopups(); - getSoundSystem().fadeOutAllLoops(); + App.audio().fadeOutAllLoops(); Res.getSoundLoop("music.dungeon").fadeIn(); } diff --git a/src/mightypork/rogue/screens/menu/ScreenMainMenu.java b/src/mightypork/rogue/screens/menu/ScreenMainMenu.java index 30f7b4f..ad5cb4a 100644 --- a/src/mightypork/rogue/screens/menu/ScreenMainMenu.java +++ b/src/mightypork/rogue/screens/menu/ScreenMainMenu.java @@ -1,6 +1,7 @@ package mightypork.rogue.screens.menu; +import mightypork.gamecore.core.App; import mightypork.gamecore.core.config.Config; import mightypork.gamecore.core.events.ShutdownEvent; import mightypork.gamecore.graphics.fonts.IFont; @@ -38,7 +39,8 @@ public class ScreenMainMenu extends RogueScreen { */ class MenuLayer extends ScreenLayer { - public MenuLayer(Screen screen) { + public MenuLayer(Screen screen) + { super(screen); init(); @@ -53,7 +55,7 @@ public class ScreenMainMenu extends RogueScreen { bg.setRect(root); root.add(bg); - final RowLayout rows = new RowLayout(root, menuBox, 13); + final RowLayout rows = new RowLayout(menuBox, 13); rows.enableCaching(true); root.add(rows); @@ -73,7 +75,7 @@ public class ScreenMainMenu extends RogueScreen { @Override protected void execute() { - getEventBus().send(new RogueStateRequest(RogueState.SELECT_WORLD)); + App.bus().send(new RogueStateRequest(RogueState.SELECT_WORLD)); } }); rows.add(btn, 2); @@ -85,7 +87,7 @@ public class ScreenMainMenu extends RogueScreen { @Override protected void execute() { - getEventBus().send(new RogueStateRequest(RogueState.STORY)); + App.bus().send(new RogueStateRequest(RogueState.STORY)); } }); rows.add(btn, 2); @@ -98,17 +100,17 @@ public class ScreenMainMenu extends RogueScreen { @Override protected void execute() { - getEventBus().send(new ShutdownEvent()); + App.shutdown(); } }); rows.add(btn, 2); - bindKey(Config.getKeyStroke("general.close"), Trigger.RISING, new Runnable() { + bindKey(App.cfg().getKeyStroke("general.close"), Trigger.RISING, new Runnable() { @Override public void run() { - getEventBus().send(new ShutdownEvent()); + App.shutdown(); } }); } @@ -123,9 +125,8 @@ public class ScreenMainMenu extends RogueScreen { } - public ScreenMainMenu(AppAccess app) { - super(app); - + public ScreenMainMenu() + { addLayer(new MenuLayer(this)); } @@ -135,7 +136,7 @@ public class ScreenMainMenu extends RogueScreen { { super.onScreenEnter(); - getSoundSystem().fadeOutAllLoops(); + App.audio().fadeOutAllLoops(); Res.getSoundLoop("music.menu").fadeIn(); } } diff --git a/src/mightypork/rogue/screens/select_world/ScreenSelectWorld.java b/src/mightypork/rogue/screens/select_world/ScreenSelectWorld.java index 649fe93..fc8f10d 100644 --- a/src/mightypork/rogue/screens/select_world/ScreenSelectWorld.java +++ b/src/mightypork/rogue/screens/select_world/ScreenSelectWorld.java @@ -1,6 +1,7 @@ package mightypork.rogue.screens.select_world; +import mightypork.gamecore.core.App; import mightypork.gamecore.core.WorkDir; import mightypork.gamecore.core.config.Config; import mightypork.gamecore.gui.components.layout.RowLayout; @@ -28,9 +29,7 @@ import mightypork.utils.math.constraints.rect.Rect; */ public class ScreenSelectWorld extends RogueScreen { - public ScreenSelectWorld(AppAccess app) { - super(app); - + public ScreenSelectWorld() { addLayer(new WorldsLayer(this)); } @@ -56,7 +55,7 @@ public class ScreenSelectWorld extends RogueScreen { bg.setRect(root); root.add(bg); - final RowLayout rows = new RowLayout(root, menuBox, 4); + final RowLayout rows = new RowLayout(menuBox, 4); rows.enableCaching(true); root.add(rows); @@ -66,22 +65,22 @@ public class ScreenSelectWorld extends RogueScreen { tp.setVPaddingPercent(20); tp.setShadow(RGB.BLACK_50, tp.height().mul(0.6 / 8D).toVectXY()); - slot1 = new WorldSlot(root, WorkDir.getFile("slot1")); + slot1 = new WorldSlot(WorkDir.getFile("slot1")); rows.add(slot1); - slot2 = new WorldSlot(root, WorkDir.getFile("slot2")); + slot2 = new WorldSlot(WorkDir.getFile("slot2")); rows.add(slot2); - slot3 = new WorldSlot(root, WorkDir.getFile("slot3")); + slot3 = new WorldSlot(WorkDir.getFile("slot3")); rows.add(slot3); // escape to quitn from here - bindKey(Config.getKeyStroke("general.close"), Trigger.RISING, new Runnable() { + bindKey(App.cfg().getKeyStroke("general.close"), Trigger.RISING, new Runnable() { @Override public void run() { - getEventBus().send(new RogueStateRequest(RogueState.MAIN_MENU)); + App.bus().send(new RogueStateRequest(RogueState.MAIN_MENU)); } }); } diff --git a/src/mightypork/rogue/screens/select_world/WorldSlot.java b/src/mightypork/rogue/screens/select_world/WorldSlot.java index 6393611..f4abbd5 100644 --- a/src/mightypork/rogue/screens/select_world/WorldSlot.java +++ b/src/mightypork/rogue/screens/select_world/WorldSlot.java @@ -3,6 +3,7 @@ package mightypork.rogue.screens.select_world; import java.io.File; +import mightypork.gamecore.core.App; import mightypork.gamecore.graphics.fonts.IFont; import mightypork.gamecore.gui.Action; import mightypork.gamecore.gui.components.input.TextButton; @@ -45,8 +46,7 @@ public class WorldSlot extends ConstraintLayout { private TextButton delBtn; - public WorldSlot(AppAccess app, File worldFile) { - super(app); + public WorldSlot(File worldFile) { this.file = worldFile; @@ -64,7 +64,7 @@ public class WorldSlot extends ConstraintLayout { qp.setRect(innerRect); add(qp); - final GridLayout gridl = new GridLayout(app, 1, 8); + final GridLayout gridl = new GridLayout(1, 8); final Num shrinkH = width().perc(8); final Num shrinkV = height().perc(10); gridl.setRect(innerRect.shrink(shrinkH, shrinkH, shrinkV, shrinkV.half())); @@ -91,7 +91,7 @@ public class WorldSlot extends ConstraintLayout { msg = "Creating world..."; } - getEventBus().send(new LoadingOverlayRequest(msg, new Runnable() { + App.bus().send(new LoadingOverlayRequest(msg, new Runnable() { @Override public void run() @@ -106,7 +106,7 @@ public class WorldSlot extends ConstraintLayout { WorldProvider.get().saveWorld(); - getEventBus().send(new ScreenRequest("game")); + App.bus().send(new ScreenRequest("game")); } catch (final Exception t) { Log.e("Could not create & save the world.", t); @@ -120,7 +120,7 @@ public class WorldSlot extends ConstraintLayout { w.load((IonDataBundle) worldBundle.get("world")); WorldProvider.get().setWorld(w); - getEventBus().send(new ScreenRequest("game")); + App.bus().send(new ScreenRequest("game")); } catch (final Exception e) { Log.e("Could not load the world.", e); diff --git a/src/mightypork/rogue/screens/story/ScreenStory.java b/src/mightypork/rogue/screens/story/ScreenStory.java index ecf997e..3be1b42 100644 --- a/src/mightypork/rogue/screens/story/ScreenStory.java +++ b/src/mightypork/rogue/screens/story/ScreenStory.java @@ -1,6 +1,7 @@ package mightypork.rogue.screens.story; +import mightypork.gamecore.core.App; import mightypork.gamecore.core.config.Config; import mightypork.gamecore.gui.Action; import mightypork.gamecore.gui.components.layout.RowLayout; @@ -202,13 +203,12 @@ public class ScreenStory extends RogueScreen implements MouseButtonHandler { @Override protected void execute() { - getEventBus().send(new RogueStateRequest(RogueState.MAIN_MENU)); + App.bus().send(new RogueStateRequest(RogueState.MAIN_MENU)); } }; - public ScreenStory(AppAccess app) { - super(app); + public ScreenStory() { addLayer(new LayerColor(this, Color.fromHex(0x040c1e), 0)); addLayer(slideLayer = new LayerSlide(this)); @@ -217,7 +217,7 @@ public class ScreenStory extends RogueScreen implements MouseButtonHandler { bindKey(new KeyStroke(Keys.RIGHT), Trigger.RISING, next); bindKey(new KeyStroke(Keys.BACKSPACE), Trigger.RISING, prev); bindKey(new KeyStroke(Keys.LEFT), Trigger.RISING, prev); - bindKey(Config.getKeyStroke("general.close"), Trigger.RISING, close); + bindKey(App.cfg().getKeyStroke("general.close"), Trigger.RISING, close); } private int slide = 0; @@ -248,7 +248,7 @@ public class ScreenStory extends RogueScreen implements MouseButtonHandler { break; case 3: - getEventBus().send(new RogueStateRequest(RogueState.MAIN_MENU)); + App.bus().send(new RogueStateRequest(RogueState.MAIN_MENU)); } } diff --git a/src/mightypork/rogue/world/World.java b/src/mightypork/rogue/world/World.java index e62476f..d5363d7 100644 --- a/src/mightypork/rogue/world/World.java +++ b/src/mightypork/rogue/world/World.java @@ -26,14 +26,13 @@ import mightypork.utils.math.algo.Coord; * * @author Ondřej Hruška (MightyPork) */ -public class World implements DelegatingClient, BusAccess, IonBundled, Pauseable, Updateable, PlayerDeathHandler, GameWinHandler { +public class World implements DelegatingClient, IonBundled, Pauseable, Updateable, PlayerDeathHandler, GameWinHandler { // not saved stuffs private final PlayerFacade playerFacade = new PlayerFacade(this); final WorldConsole console = new WorldConsole(); Entity playerEntity; - private BusAccess bus; private int pauseDepth = 0; private boolean gameOver = false; @@ -175,25 +174,6 @@ public class World implements DelegatingClient, BusAccess, IonBundled, Pauseable } - /** - * Attach to an event bus - * - * @param bus event bus - */ - public void assignBus(BusAccess bus) - { - this.bus = bus; - } - - - @Override - public EventBus getEventBus() - { - if (bus == null) throw new NullPointerException("World doesn't have a bus assigned."); - return bus.getEventBus(); - } - - @Override public void pause() { diff --git a/src/mightypork/rogue/world/WorldProvider.java b/src/mightypork/rogue/world/WorldProvider.java index e59cb06..24d5c95 100644 --- a/src/mightypork/rogue/world/WorldProvider.java +++ b/src/mightypork/rogue/world/WorldProvider.java @@ -6,6 +6,7 @@ import java.io.IOException; import mightypork.rogue.world.gen.WorldCreator; import mightypork.rogue.world.level.Level; +import mightypork.utils.eventbus.clients.BusNode; import mightypork.utils.ion.Ion; import mightypork.utils.ion.IonDataBundle; import mightypork.utils.logging.Log; @@ -16,18 +17,18 @@ import mightypork.utils.logging.Log; * * @author Ondřej Hruška (MightyPork) */ -public class WorldProvider extends RootBusNode { +public class WorldProvider extends BusNode { - public static synchronized void init(BusAccess busAccess) + public static synchronized void init() { if (inst == null) { - inst = new WorldProvider(busAccess); + inst = new WorldProvider(); } } - public WorldProvider(BusAccess busAccess) { - super(busAccess); + public WorldProvider() + { setListening(false); } @@ -82,7 +83,6 @@ public class WorldProvider extends RootBusNode { if (newWorld == null) return; - world.assignBus(this); // connect to bus (for event dispatching) addChildClient(world); } diff --git a/src/mightypork/rogue/world/entity/impl/EntityBossRat.java b/src/mightypork/rogue/world/entity/impl/EntityBossRat.java index 4782b77..f39317a 100644 --- a/src/mightypork/rogue/world/entity/impl/EntityBossRat.java +++ b/src/mightypork/rogue/world/entity/impl/EntityBossRat.java @@ -1,6 +1,7 @@ package mightypork.rogue.world.entity.impl; +import mightypork.gamecore.core.App; import mightypork.rogue.world.entity.Entity; import mightypork.rogue.world.entity.EntityModel; import mightypork.rogue.world.entity.EntityPathFinder; @@ -64,7 +65,7 @@ public class EntityBossRat extends Entity { public void onKilled() { // send kill event to listeners, after the entity has despawned (disappeared) - getWorld().getEventBus().sendDelayed(new GameWinEvent(), getDespawnDelay() * 1.5); // dramatic pause + App.bus().sendDelayed(new GameWinEvent(), getDespawnDelay() * 1.5); // dramatic pause } diff --git a/src/mightypork/rogue/world/entity/impl/EntityPlayer.java b/src/mightypork/rogue/world/entity/impl/EntityPlayer.java index 159dcbc..1ef14c6 100644 --- a/src/mightypork/rogue/world/entity/impl/EntityPlayer.java +++ b/src/mightypork/rogue/world/entity/impl/EntityPlayer.java @@ -1,6 +1,7 @@ package mightypork.rogue.world.entity.impl; +import mightypork.gamecore.core.App; import mightypork.rogue.world.entity.*; import mightypork.rogue.world.entity.modules.EntityMoveListener; import mightypork.rogue.world.entity.render.EntityRendererMobLR; @@ -62,7 +63,7 @@ public class EntityPlayer extends Entity { private void fireEvt() { - getWorld().getEventBus().send(new PlayerStepEndEvent(EntityPlayer.this)); + App.bus().send(new PlayerStepEndEvent(EntityPlayer.this)); } @@ -134,7 +135,7 @@ public class EntityPlayer extends Entity { public void onKilled() { // send kill event to listeners, after the entity has despawned (disappeared) - getWorld().getEventBus().sendDelayed(new PlayerKilledEvent(), getDespawnDelay()); + App.bus().sendDelayed(new PlayerKilledEvent(), getDespawnDelay()); getWorld().getConsole().msgDie(lastAttacker); } diff --git a/src/mightypork/rogue/world/gui/Minimap.java b/src/mightypork/rogue/world/gui/Minimap.java index 352d341..8ee884c 100644 --- a/src/mightypork/rogue/world/gui/Minimap.java +++ b/src/mightypork/rogue/world/gui/Minimap.java @@ -48,6 +48,8 @@ public class Minimap extends InputComponent implements MouseButtonHandler { final Coord point = new Coord(tl.xi(), tl.yi()); + // FIXME do not use LWJGL directly + GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glBegin(GL11.GL_QUADS); diff --git a/src/mightypork/rogue/world/gui/interaction/MIPKeyboard.java b/src/mightypork/rogue/world/gui/interaction/MIPKeyboard.java index 1e89e2f..6af4aa7 100644 --- a/src/mightypork/rogue/world/gui/interaction/MIPKeyboard.java +++ b/src/mightypork/rogue/world/gui/interaction/MIPKeyboard.java @@ -23,6 +23,8 @@ import mightypork.utils.math.constraints.vect.Vect; public class MIPKeyboard extends MapInteractionPlugin implements DelegatingClient, PlayerStepEndListener, Updateable { + // FIXME cannot be static. + //@formatter:off private static final KeyStroke[] keys = { Config.getKeyStroke("game.walk.left"), diff --git a/src/mightypork/rogue/world/gui/interaction/MIPMouse.java b/src/mightypork/rogue/world/gui/interaction/MIPMouse.java index 56b202d..b48fb3c 100644 --- a/src/mightypork/rogue/world/gui/interaction/MIPMouse.java +++ b/src/mightypork/rogue/world/gui/interaction/MIPMouse.java @@ -2,6 +2,7 @@ package mightypork.rogue.world.gui.interaction; import mightypork.gamecore.backends.lwjgl.LwjglInputModule; +import mightypork.gamecore.core.App; import mightypork.rogue.world.entity.impl.EntityPlayer; import mightypork.rogue.world.events.PlayerStepEndListener; import mightypork.rogue.world.gui.MapView; @@ -30,10 +31,10 @@ public class MIPMouse extends MapInteractionPlugin implements PlayerStepEndListe { if (isImmobile()) return; - final Vect pos = LwjglInputModule.getMousePos(); + final Vect pos = App.input().getMousePos(); if (!pos.isInside(mapView)) return; - if (LwjglInputModule.isMouseButtonDown(LEFT)) { + if (App.input().isMouseButtonDown(LEFT)) { if (mouseWalk(pos)) return; if (mapView.plc.getPlayer().isMoving() && troToNav(pos)) return; } @@ -117,10 +118,10 @@ public class MIPMouse extends MapInteractionPlugin implements PlayerStepEndListe { if (isImmobile()) return; - final Vect pos = LwjglInputModule.getMousePos(); + final Vect pos = App.input().getMousePos(); if (!pos.isInside(mapView)) return; - if (LwjglInputModule.isMouseButtonDown(LEFT)) { + if (App.input().isMouseButtonDown(LEFT)) { if (mouseWalk(pos)) return; if (mapView.plc.getPlayer().isMoving() && troToNav(pos)) return; } diff --git a/src/mightypork/rogue/world/level/Level.java b/src/mightypork/rogue/world/level/Level.java index c4685f5..0e052a3 100644 --- a/src/mightypork/rogue/world/level/Level.java +++ b/src/mightypork/rogue/world/level/Level.java @@ -36,7 +36,7 @@ import mightypork.utils.math.noise.NoiseGen; * * @author Ondřej Hruška (MightyPork) */ -public class Level implements BusAccess, Updateable, DelegatingClient, ToggleableClient, IonBinary { +public class Level implements Updateable, DelegatingClient, ToggleableClient, IonBinary { private final FloodFill exploreFiller = new FloodFill() { @@ -636,13 +636,6 @@ public class Level implements BusAccess, Updateable, DelegatingClient, Toggleabl } - @Override - public EventBus getEventBus() - { - return world.getEventBus(); - } - - @Override public boolean isListening() { diff --git a/src/mightypork/rogue/world/tile/Tile.java b/src/mightypork/rogue/world/tile/Tile.java index ffc8d09..f671a5a 100644 --- a/src/mightypork/rogue/world/tile/Tile.java +++ b/src/mightypork/rogue/world/tile/Tile.java @@ -23,7 +23,7 @@ import mightypork.utils.math.color.Color; * * @author Ondřej Hruška (MightyPork) */ -public abstract class Tile implements BusAccess, IonBinary { +public abstract class Tile implements IonBinary { // tmp extras public final TileGenData genData = new TileGenData(); @@ -274,11 +274,4 @@ public abstract class Tile implements BusAccess, IonBinary { return level.getWorld(); } - - @Override - public EventBus getEventBus() - { - return level.getEventBus(); - } - } diff --git a/src/mightypork/rogue/world/tile/impl/TileBaseEntrance.java b/src/mightypork/rogue/world/tile/impl/TileBaseEntrance.java index 69fc01c..27fc311 100644 --- a/src/mightypork/rogue/world/tile/impl/TileBaseEntrance.java +++ b/src/mightypork/rogue/world/tile/impl/TileBaseEntrance.java @@ -1,6 +1,7 @@ package mightypork.rogue.world.tile.impl; +import mightypork.gamecore.core.App; import mightypork.rogue.world.events.WorldAscendRequest; import mightypork.rogue.world.tile.TileColors; import mightypork.rogue.world.tile.TileModel; @@ -21,7 +22,7 @@ public abstract class TileBaseEntrance extends TileBaseStairs { final Coord plpos = getWorld().getPlayer().getCoord(); if (!plpos.equals(getLevel().getEnterPoint())) return false; - getEventBus().send(new WorldAscendRequest()); + App.bus().send(new WorldAscendRequest()); return true; } diff --git a/src/mightypork/rogue/world/tile/impl/TileBaseExit.java b/src/mightypork/rogue/world/tile/impl/TileBaseExit.java index f9264e6..71705e9 100644 --- a/src/mightypork/rogue/world/tile/impl/TileBaseExit.java +++ b/src/mightypork/rogue/world/tile/impl/TileBaseExit.java @@ -1,6 +1,7 @@ package mightypork.rogue.world.tile.impl; +import mightypork.gamecore.core.App; import mightypork.rogue.world.events.WorldDescendRequest; import mightypork.rogue.world.tile.TileColors; import mightypork.rogue.world.tile.TileModel; @@ -21,7 +22,7 @@ public abstract class TileBaseExit extends TileBaseStairs { final Coord plpos = getWorld().getPlayer().getCoord(); if (!plpos.equals(getLevel().getExitPoint())) return false; - getEventBus().send(new WorldDescendRequest()); + App.bus().send(new WorldDescendRequest()); return true; }