Files
base-demo/src/main/java/com/bartlomiejpluta/demo/runner/DemoRunner.java

110 lines
2.6 KiB
Java

package com.bartlomiejpluta.demo.runner;
import lombok.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.input.Input;
import com.bartlomiejpluta.base.api.screen.Screen;
import com.bartlomiejpluta.base.api.runner.GameRunner;
import com.bartlomiejpluta.demo.map.ForrestTempleHandler;
import com.bartlomiejpluta.demo.entity.Player;
import com.bartlomiejpluta.demo.menu.MenuManager;
import com.bartlomiejpluta.demo.database.dao.MeleeWeaponDAO;
import com.bartlomiejpluta.demo.world.weapon.MeleeWeapon;
public class DemoRunner implements GameRunner {
private static final Logger log = LoggerFactory.getLogger(DemoRunner.class);
private Screen screen;
private Context context;
private MenuManager menu;
@Getter
private MeleeWeaponDAO meleeWeaponDAO = new MeleeWeaponDAO();
@Getter
private Player player;
@Override
public void init(Context context) {
this.context = context;
this.screen = context.getScreen();
configureScreen();
configureCamera();
initDAOs();
initMenu();
initPlayer();
menu.showStartMenu();
screen.show();
}
private void configureScreen() {
var resolution = screen.getCurrentResolution();
screen.setSize(800, 600);
screen.setPosition((resolution.x() - 800)/2, (resolution.y() - 600)/2);
}
private void configureCamera() {
context.getCamera().setScale(2f);
}
private void initDAOs() {
meleeWeaponDAO.init(context);
}
private void initMenu() {
this.menu = new MenuManager(this, context);
}
private void initPlayer() {
this.player = new Player(context, context.createEntity("815a5c5c-4979-42f5-a42a-ccbbff9a97e5"));
}
private void resetPlayer() {
this.player.changeEntitySet("815a5c5c-4979-42f5-a42a-ccbbff9a97e5");
this.player.setScale(1.0f);
this.player.setSpeed(0.07f);
this.player.setAnimationSpeed(0.005f);
this.player.setBlocking(true);
this.player.setCoordinates(0, 11);
this.player.setWeapon(new MeleeWeapon(meleeWeaponDAO.get("wooden_sword")));
}
public void newGame() {
menu.closeAll();
menu.enableGameMenu();
resetPlayer();
context.openMap(ForrestTempleHandler.UID);
context.getMap().getObjectLayer(ForrestTempleHandler.MAIN_LAYER).addEntity(this.player);
context.resume();
}
public void returnToStartMenu() {
menu.closeAll();
context.pause();
context.closeMap();
menu.disableGameMenu();
menu.showStartMenu();
}
public void exit() {
context.close();
}
@Override
public void update(float dt) {
}
@Override
public void dispose() {
// Do something after game loop is end
}
}