package pathgame; import me.hammerle.snuviengine.api.Game; import me.hammerle.snuviengine.api.Gamepad; import me.hammerle.snuviengine.api.Renderer; import me.hammerle.snuviengine.api.Stats; import pathgame.gameplay.Gamestate; import pathgame.gameplay.Gamestates; import pathgame.gameplay.Keys; import pathgame.gameplay.Level; import pathgame.gameplay.menu.Menu; import pathgame.rendering.LevelRenderer; import pathgame.rendering.MenuRenderer; public class PathGame implements Game { private final Gamestate gamestate = new Gamestate(); private final Level level = new Level(); private final LevelRenderer levelRenderer = new LevelRenderer(); private Menu menu; private MenuRenderer menuRenderer; private Keys keys; @Override public void onCompleteInitialization(Stats stats, me.hammerle.snuviengine.api.Keys keys, Gamepad gamepad) { this.keys = new Keys(keys); menu = new Menu(this.keys); menuRenderer = new MenuRenderer(this.keys); } @Override public void tick() { level.tick(gamestate, keys); levelRenderer.tick(level, gamestate, keys); menu.tick(gamestate, level, keys); if(keys.test.getTime() == 1) { //level.nextLevel(); level.getPlayer().win(level.getMap()); } } @Override public void renderTick(Renderer r, float lag) { if(gamestate.is(Gamestates.MENU)) { levelRenderer.renderTick(r, 0.0f, level, gamestate, keys); menuRenderer.renderTick(r, 0.0f, menu, keys); } else { levelRenderer.renderTick(r, lag, level, gamestate, keys); } } @Override public void onStop() { } @Override public boolean isRunning() { return gamestate.isRunning(); } }