Apply BASE engine improvements

This commit is contained in:
2022-08-22 11:52:52 +02:00
parent ccd3e44130
commit d51a425b28
10 changed files with 25 additions and 51 deletions

Binary file not shown.

View File

@@ -13,7 +13,6 @@ import com.bartlomiejpluta.base.lib.animation.*;
import com.bartlomiejpluta.base.util.random.DiceRoller;
import com.bartlomiejpluta.demo.runner.DemoRunner;
import com.bartlomiejpluta.base.generated.db.model.EnemyModel;
import com.bartlomiejpluta.demo.world.weapon.*;
import com.bartlomiejpluta.demo.event.EnemyDiedEvent;
import com.bartlomiejpluta.demo.ai.*;
@@ -21,7 +20,7 @@ import com.bartlomiejpluta.demo.ai.ArcherAI;
public class Enemy extends Character implements NPC {
private final EnemyModel template;
private final DB.model.EnemyModel template;
private AI ai = NoopAI.INSTANCE;
private final AnimationRunner dieAnimation;
@@ -34,7 +33,7 @@ public class Enemy extends Character implements NPC {
@Getter
private final String name;
public Enemy(@NonNull Context context, @NonNull EnemyModel template) {
public Enemy(@NonNull Context context, @NonNull DB.model.EnemyModel template) {
super(context, context.createEntity(template.getEntset()));
this.template = template;
name = template.getName();
@@ -48,11 +47,11 @@ public class Enemy extends Character implements NPC {
var rangedWeaponTemplate = template.getRangedWeapon();
if(meleeWeaponTemplate != null) {
this.meleeWeapon = new MeleeWeapon(context, runner.getMeleeWeaponDAO().find(meleeWeaponTemplate));
this.meleeWeapon = new MeleeWeapon(context, DB.dao.melee_weapon.find(meleeWeaponTemplate));
}
if(rangedWeaponTemplate != null) {
this.rangedWeapon = new RangedWeapon(context, runner.getRangedWeaponDAO().find(rangedWeaponTemplate));
this.rangedWeapon = new RangedWeapon(context, DB.dao.ranged_weapon.find(rangedWeaponTemplate));
}
this.dieAnimation = new SimpleAnimationRunner(template.getDieAnimation());

View File

@@ -7,19 +7,17 @@ import com.bartlomiejpluta.base.api.move.*;
import com.bartlomiejpluta.base.lib.entity.EntityDelegate;
import com.bartlomiejpluta.base.util.path.*;
import com.bartlomiejpluta.base.generated.db.model.MapObjectModel;
import com.bartlomiejpluta.demo.entity.Character;
public class MapObject extends EntityDelegate {
private final PathExecutor<MapObject> pathExecutor = new PathExecutor<>(this);
private final Context context;
private final MapObjectModel template;
private final DB.model.MapObjectModel template;
private final Short frame;
private final String interactSound;
private boolean interacting = false;
public MapObject(@NonNull Context context, @NonNull MapObjectModel template) {
public MapObject(@NonNull Context context, @NonNull DB.model.MapObjectModel template) {
super(context.createEntity(template.getEntset()));
this.context = context;
this.template = template;

View File

@@ -94,18 +94,18 @@ public abstract class BaseMapHandler implements MapHandler {
}
public Enemy enemy(@NonNull String id) {
return new Enemy(context, runner.getEnemyDAO().find(id));
return new Enemy(context, DB.dao.enemy.find(id));
}
public Enemy enemy(int x, int y, @NonNull String id) {
var enemy = new Enemy(context, runner.getEnemyDAO().find(id));
var enemy = new Enemy(context, DB.dao.enemy.find(id));
enemy.setCoordinates(x, y);
mainLayer.addEntity(enemy);
return enemy;
}
public MapObject object(int x, int y, @NonNull String id) {
var object = new MapObject(context, runner.getMapObjectDAO().find(id));
var object = new MapObject(context, DB.dao.map_object.find(id));
object.setCoordinates(x, y);
mainLayer.addEntity(object);
return object;

View File

@@ -32,11 +32,11 @@ public class MenuManager {
this.gui.setRoot(this.manager);
this.startMenu = (StartMenuWindow) gui.inflateWindow("ab9d40b4-eb28-45d7-bff2-9432a05eb41a");
this.startMenu = (StartMenuWindow) gui.inflateWindow(A.widgets.start_menu.uid);
this.startMenu.getNewGameBtn().setAction(runner::newGame);
this.startMenu.getExitBtn().setAction(runner::exit);
this.gameMenu = (GameMenuWindow) gui.inflateWindow("56ca6b39-f949-4212-9c23-312db25887e0");
this.gameMenu = (GameMenuWindow) gui.inflateWindow(A.widgets.game_menu.uid);
this.gameMenu.getResumeGameBtn().setAction(this::resumeGame);
this.gameMenu.getStartMenuBtn().setAction(runner::returnToStartMenu);
this.gameMenu.getExitBtn().setAction(runner::exit);

View File

@@ -13,14 +13,13 @@ import com.bartlomiejpluta.base.api.gui.GUI;
import com.bartlomiejpluta.base.util.profiler.FPSProfiler;
import com.bartlomiejpluta.base.generated.db.dao.*;
import com.bartlomiejpluta.demo.map.ForrestTempleHandler;
import com.bartlomiejpluta.demo.entity.Player;
import com.bartlomiejpluta.demo.menu.MenuManager;
import com.bartlomiejpluta.demo.world.weapon.*;
public class DemoRunner implements GameRunner {
private static final Logger log = LoggerFactory.getLogger(DemoRunner.class);
private Screen screen;
@@ -28,18 +27,6 @@ public class DemoRunner implements GameRunner {
private MenuManager menu;
private GUI hud;
@Getter
private MeleeWeaponDAO meleeWeaponDAO;
@Getter
private RangedWeaponDAO rangedWeaponDAO;
@Getter
private EnemyDAO enemyDAO;
@Getter
private MapObjectDAO mapObjectDAO;
@Getter
private Player player;
@@ -53,7 +40,6 @@ public class DemoRunner implements GameRunner {
configureScreen();
configureCamera();
initPlayer();
initDAOs();
initHUD();
initMenu();
@@ -72,13 +58,6 @@ public class DemoRunner implements GameRunner {
context.getCamera().setScale(2f);
}
private void initDAOs() {
meleeWeaponDAO = new MeleeWeaponDAO(context);
enemyDAO = new EnemyDAO(context);
rangedWeaponDAO = new RangedWeaponDAO(context);
mapObjectDAO = new MapObjectDAO(context);
}
private void initMenu() {
this.menu = new MenuManager(this, context);
}
@@ -86,29 +65,29 @@ public class DemoRunner implements GameRunner {
private void initHUD() {
hud = context.newGUI();
hud.hide();
var hudComponent = hud.inflateComponent("00bd0625-b3b8-4abf-97b7-91f42bce28ec");
var hudComponent = hud.inflateComponent(A.widgets.hud.uid);
hud.setRoot(hudComponent);
}
private void initPlayer() {
this.player = new Player(context, context.createEntity("815a5c5c-4979-42f5-a42a-ccbbff9a97e5"));
this.player = new Player(context, context.createEntity(A.entsets.luna.uid));
}
private void resetPlayer() {
this.player.changeEntitySet("815a5c5c-4979-42f5-a42a-ccbbff9a97e5");
this.player.changeEntitySet(A.entsets.luna.uid);
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 RangedWeapon(context, rangedWeaponDAO.find("wooden_bow")));
this.player.setWeapon(new RangedWeapon(context, DB.dao.ranged_weapon.find("wooden_bow")));
}
public void newGame() {
menu.closeAll();
menu.enableGameMenu();
resetPlayer();
context.openMap(ForrestTempleHandler.UID);
context.openMap(A.maps.forrest_temple.uid);
context.getMap().getObjectLayer(ForrestTempleHandler.MAIN_LAYER).addEntity(this.player);
context.resume();
hud.show();

View File

@@ -8,7 +8,6 @@ import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.lib.animation.*;
import com.bartlomiejpluta.base.util.random.DiceRoller;
import com.bartlomiejpluta.base.generated.db.model.MeleeWeaponModel;
import com.bartlomiejpluta.demo.entity.Character;
import com.bartlomiejpluta.demo.event.HitEvent;
@@ -26,7 +25,7 @@ public class MeleeWeapon implements Weapon {
@Getter
private int cooldown;
public MeleeWeapon(@NonNull Context context, @NonNull MeleeWeaponModel template) {
public MeleeWeapon(@NonNull Context context, @NonNull DB.model.MeleeWeaponModel template) {
this.context = context;
this.name = template.getName();
this.roller = DiceRoller.of(template.getDamage());

View File

@@ -10,7 +10,6 @@ import com.bartlomiejpluta.base.api.move.*;
import com.bartlomiejpluta.base.lib.animation.*;
import com.bartlomiejpluta.base.util.random.DiceRoller;
import com.bartlomiejpluta.base.generated.db.model.RangedWeaponModel;
import com.bartlomiejpluta.demo.entity.Character;
import com.bartlomiejpluta.demo.entity.NamedEntity;
@@ -34,7 +33,7 @@ public class RangedWeapon implements Weapon {
@Getter
private int cooldown;
public RangedWeapon(@NonNull Context context, @NonNull RangedWeaponModel template) {
public RangedWeapon(@NonNull Context context, @NonNull DB.model.RangedWeaponModel template) {
this.context = context;
this.name = template.getName();
this.dmgRoller = DiceRoller.of(template.getDamage());

View File

@@ -12,7 +12,7 @@
widthMode="SizeMode.ABSOLUTE">
<base:Label
font="&quot;2261c04f-b02e-4486-b388-8a0fa41622e9&quot;"
font="A.fonts.roboto_regular.uid"
widthMode="SizeMode.RELATIVE"
width="1f"
alignment="GUI.ALIGN_TOP | GUI.ALIGN_CENTER"
@@ -28,7 +28,7 @@
<demo:Button
ref="resume_game"
font="&quot;2261c04f-b02e-4486-b388-8a0fa41622e9&quot;"
font="A.fonts.roboto_regular.uid"
widthMode="SizeMode.RELATIVE"
width="1f"
red="1f"
@@ -38,7 +38,7 @@
<demo:Button
ref="start_menu"
font="&quot;2261c04f-b02e-4486-b388-8a0fa41622e9&quot;"
font="A.fonts.roboto_regular.uid"
widthMode="SizeMode.RELATIVE"
width="1f"
red="1f"
@@ -48,7 +48,7 @@
<demo:Button
ref="exit"
font="&quot;2261c04f-b02e-4486-b388-8a0fa41622e9&quot;"
font="A.fonts.roboto_regular.uid"
widthMode="SizeMode.RELATIVE"
width="1f"
red="1f"

View File

@@ -28,7 +28,7 @@
<demo:Button
ref="new_game"
font="&quot;2261c04f-b02e-4486-b388-8a0fa41622e9&quot;"
font="A.fonts.roboto_regular.uid"
widthMode="SizeMode.RELATIVE"
width="1f"
red="1f"
@@ -38,7 +38,7 @@
<demo:Button
ref="exit"
font="&quot;2261c04f-b02e-4486-b388-8a0fa41622e9&quot;"
font="A.fonts.roboto_regular.uid"
widthMode="SizeMode.RELATIVE"
width="1f"
red="1f"