Perform general code cleaning & refactoring

This commit is contained in:
2022-08-25 12:27:24 +02:00
parent 4f7c6c6dc3
commit 8946297bd9
28 changed files with 1056 additions and 1091 deletions

View File

@@ -1,13 +1,11 @@
package com.bartlomiejpluta.demo.ai;
import lombok.*;
import com.bartlomiejpluta.base.api.ai.AI;
import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
import com.bartlomiejpluta.base.api.ai.*;
import com.bartlomiejpluta.base.api.move.Direction;
import com.bartlomiejpluta.base.lib.ai.*;
import com.bartlomiejpluta.demo.entity.Enemy;
import com.bartlomiejpluta.base.lib.ai.RandomMovementAI;
import com.bartlomiejpluta.base.lib.ai.RunawayAI;
import com.bartlomiejpluta.demo.entity.Creature;
import com.bartlomiejpluta.demo.entity.Enemy;
public class AnimalAI implements AI {
private final Enemy animal;

View File

@@ -1,23 +1,12 @@
package com.bartlomiejpluta.demo.ai;
import com.bartlomiejpluta.base.api.ai.AI;
import com.bartlomiejpluta.base.api.ai.NPC;
import com.bartlomiejpluta.base.api.entity.Entity;
import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
import com.bartlomiejpluta.base.api.move.MoveEvent;
import com.bartlomiejpluta.base.lib.ai.KeepStraightDistanceAI;
import com.bartlomiejpluta.base.lib.ai.RandomMovementAI;
import com.bartlomiejpluta.base.util.path.MovementPath;
import com.bartlomiejpluta.base.util.path.PathExecutor;
import com.bartlomiejpluta.base.util.pathfinder.AstarPathFinder;
import com.bartlomiejpluta.base.util.pathfinder.PathFinder;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import org.joml.Vector2i;
import org.joml.Vector2ic;
import com.bartlomiejpluta.demo.entity.Enemy;
import com.bartlomiejpluta.demo.entity.Creature;
import com.bartlomiejpluta.demo.entity.Enemy;
public class ArcherAI extends KeepStraightDistanceAI<Enemy, Creature> {
private static final int ASTAR_MAX_NODES = 100;

View File

@@ -1,13 +1,12 @@
package com.bartlomiejpluta.demo.ai;
import com.bartlomiejpluta.base.api.ai.AI;
import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
import com.bartlomiejpluta.base.util.pathfinder.*;
import com.bartlomiejpluta.base.api.ai.*;
import com.bartlomiejpluta.base.lib.ai.*;
import com.bartlomiejpluta.demo.entity.Enemy;
import com.bartlomiejpluta.base.lib.ai.FollowObjectAI;
import com.bartlomiejpluta.base.lib.ai.RandomMovementAI;
import com.bartlomiejpluta.base.util.pathfinder.AstarPathFinder;
import com.bartlomiejpluta.demo.entity.Creature;
import com.bartlomiejpluta.demo.entity.Enemy;
public class SimpleEnemyAI extends FollowObjectAI<Enemy, Creature> {
private static final int ASTAR_MAX_NODES = 100;

View File

@@ -1,12 +1,10 @@
package com.bartlomiejpluta.demo.ai;
import lombok.*;
import com.bartlomiejpluta.base.api.ai.AI;
import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
import com.bartlomiejpluta.base.api.ai.*;
import com.bartlomiejpluta.base.lib.ai.*;
import com.bartlomiejpluta.demo.entity.Enemy;
import com.bartlomiejpluta.demo.entity.Creature;
import com.bartlomiejpluta.demo.entity.Enemy;
import lombok.AllArgsConstructor;
@AllArgsConstructor
public class SimpleSniperAI implements AI {

View File

@@ -1,14 +1,13 @@
package com.bartlomiejpluta.demo.ai;
import lombok.*;
import com.bartlomiejpluta.base.api.ai.AI;
import com.bartlomiejpluta.base.api.move.MoveEvent;
import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
import com.bartlomiejpluta.base.lib.ai.*;
import com.bartlomiejpluta.base.api.move.MoveEvent;
import com.bartlomiejpluta.base.lib.ai.RunawayAI;
import com.bartlomiejpluta.demo.entity.Creature;
import com.bartlomiejpluta.demo.entity.Enemy;
import com.bartlomiejpluta.demo.world.weapon.*;
import com.bartlomiejpluta.demo.world.weapon.MeleeWeapon;
import lombok.NonNull;
public class WeaponBasedAI implements AI {
private static final int RANGE = 10;

View File

@@ -1,15 +1,12 @@
package com.bartlomiejpluta.demo.entity;
import lombok.*;
import org.slf4j.*;
import org.joml.Vector2i;
import com.bartlomiejpluta.base.api.context.*;
import com.bartlomiejpluta.base.api.character.Character;
import com.bartlomiejpluta.base.api.entity.Entity;
import com.bartlomiejpluta.base.lib.animation.AnimationRunner;
import com.bartlomiejpluta.demo.world.weapon.Weapon;
import lombok.Getter;
import lombok.NonNull;
import lombok.Setter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public abstract class Creature extends NamedCharacter {
private static final Logger log = LoggerFactory.getLogger(Creature.class);

View File

@@ -1,39 +1,32 @@
package com.bartlomiejpluta.demo.entity;
import lombok.*;
import com.bartlomiejpluta.base.api.context.*;
import com.bartlomiejpluta.base.api.entity.Entity;
import com.bartlomiejpluta.base.api.character.Character;
import com.bartlomiejpluta.base.api.ai.AI;
import com.bartlomiejpluta.base.api.ai.NPC;
import com.bartlomiejpluta.base.api.move.*;
import com.bartlomiejpluta.base.lib.ai.*;
import com.bartlomiejpluta.base.lib.animation.*;
import com.bartlomiejpluta.base.api.context.ContextHolder;
import com.bartlomiejpluta.base.api.move.MoveEvent;
import com.bartlomiejpluta.base.lib.ai.NoopAI;
import com.bartlomiejpluta.base.lib.animation.AnimationRunner;
import com.bartlomiejpluta.base.lib.animation.SimpleAnimationRunner;
import com.bartlomiejpluta.base.util.random.DiceRoller;
import com.bartlomiejpluta.base.util.path.*;
import com.bartlomiejpluta.demo.runner.DemoRunner;
import com.bartlomiejpluta.demo.world.weapon.*;
import com.bartlomiejpluta.demo.event.EnemyDiedEvent;
import com.bartlomiejpluta.demo.ai.*;
import com.bartlomiejpluta.demo.ai.ArcherAI;
import com.bartlomiejpluta.demo.event.EnemyDiedEvent;
import com.bartlomiejpluta.demo.runner.DemoRunner;
import com.bartlomiejpluta.demo.world.weapon.MeleeWeapon;
import com.bartlomiejpluta.demo.world.weapon.RangedWeapon;
import lombok.Getter;
import lombok.NonNull;
public class Enemy extends Creature implements NPC {
private final DB.model.EnemyModel template;
private AI ai = NoopAI.INSTANCE;
private final AnimationRunner dieAnimation;
@Getter
private MeleeWeapon meleeWeapon;
@Getter
private RangedWeapon rangedWeapon;
@Getter
private final String name;
private AI ai = NoopAI.INSTANCE;
@Getter
private MeleeWeapon meleeWeapon;
@Getter
private RangedWeapon rangedWeapon;
public Enemy(@NonNull String id) {
this(DB.dao.enemy.find(id));

View File

@@ -1,10 +1,11 @@
package com.bartlomiejpluta.demo.entity;
import lombok.*;
import com.bartlomiejpluta.base.api.entity.Entity;
import com.bartlomiejpluta.base.api.context.*;
import com.bartlomiejpluta.base.api.move.*;
import com.bartlomiejpluta.base.util.path.*;
import com.bartlomiejpluta.base.api.context.ContextHolder;
import com.bartlomiejpluta.base.api.move.Direction;
import com.bartlomiejpluta.base.util.path.CharacterPath;
import com.bartlomiejpluta.base.util.path.PathExecutor;
import lombok.Getter;
import lombok.NonNull;
public class MapObject extends NamedCharacter {
private final PathExecutor<MapObject> pathExecutor = new PathExecutor<>(this);

View File

@@ -1,10 +1,9 @@
package com.bartlomiejpluta.demo.entity;
import com.bartlomiejpluta.base.api.context.*;
import com.bartlomiejpluta.base.api.entity.Entity;
import com.bartlomiejpluta.base.lib.character.CharacterDelegate;
import com.bartlomiejpluta.base.api.character.Character;
import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.context.ContextHolder;
import com.bartlomiejpluta.base.lib.character.CharacterDelegate;
import com.bartlomiejpluta.demo.runner.DemoRunner;
public abstract class NamedCharacter extends CharacterDelegate {

View File

@@ -1,10 +1,8 @@
package com.bartlomiejpluta.demo.entity;
import lombok.*;
import org.joml.Vector2i;
import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.entity.Entity;
import com.bartlomiejpluta.base.api.character.Character;
import lombok.NonNull;
import org.joml.Vector2i;
public class Player extends Creature {

View File

@@ -1,10 +1,10 @@
package com.bartlomiejpluta.demo.event;
import lombok.*;
import com.bartlomiejpluta.base.api.event.*;
import com.bartlomiejpluta.base.lib.event.*;
import com.bartlomiejpluta.base.api.event.EventType;
import com.bartlomiejpluta.base.lib.event.BaseEvent;
import com.bartlomiejpluta.demo.entity.Enemy;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@Getter
@RequiredArgsConstructor

View File

@@ -1,10 +1,10 @@
package com.bartlomiejpluta.demo.event;
import lombok.*;
import com.bartlomiejpluta.base.api.event.*;
import com.bartlomiejpluta.base.lib.event.*;
import com.bartlomiejpluta.base.api.event.EventType;
import com.bartlomiejpluta.base.lib.event.BaseEvent;
import com.bartlomiejpluta.demo.entity.Creature;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@Getter
@RequiredArgsConstructor

View File

@@ -1,22 +1,20 @@
package com.bartlomiejpluta.demo.gui;
import lombok.*;
import com.bartlomiejpluta.base.api.gui.*;
import com.bartlomiejpluta.base.lib.gui.*;
import com.bartlomiejpluta.base.api.screen.*;
import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.input.*;
import com.bartlomiejpluta.base.api.gui.Color;
import com.bartlomiejpluta.base.api.gui.GUI;
import com.bartlomiejpluta.base.api.screen.Screen;
import com.bartlomiejpluta.base.lib.gui.BaseComponent;
import lombok.Setter;
public class Bar extends BaseComponent {
private final Color stroke;
private final Color fill;
@Setter
private float value = 1.0f;
private float actualValue = 1.0f;
private float speed = 0.05f;
private final Color stroke;
private final Color fill;
private final float speed = 0.05f;
public Bar(Context context, GUI gui) {
super(context, gui);

View File

@@ -1,14 +1,17 @@
package com.bartlomiejpluta.demo.gui;
import lombok.*;
import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.gui.Color;
import com.bartlomiejpluta.base.api.gui.GUI;
import com.bartlomiejpluta.base.api.input.Key;
import com.bartlomiejpluta.base.api.input.KeyAction;
import com.bartlomiejpluta.base.api.input.KeyEvent;
import com.bartlomiejpluta.base.api.screen.Screen;
import com.bartlomiejpluta.base.api.input.*;
import com.bartlomiejpluta.base.api.gui.*;
import com.bartlomiejpluta.base.lib.gui.*;
import com.bartlomiejpluta.base.lib.gui.Label;
import lombok.Setter;
public class Button extends Label {
private Color color;
private final Color color;
@Setter
private Runnable action;

View File

@@ -1,14 +1,16 @@
package com.bartlomiejpluta.demo.gui;
import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.gui.Color;
import com.bartlomiejpluta.base.api.gui.GUI;
import com.bartlomiejpluta.base.api.gui.Paint;
import com.bartlomiejpluta.base.api.screen.Screen;
import com.bartlomiejpluta.base.api.gui.*;
import com.bartlomiejpluta.base.lib.gui.*;
import com.bartlomiejpluta.base.lib.gui.BaseWindow;
public abstract class DecoratedWindow extends BaseWindow {
private Paint paint;
private Color inner;
private Color outer;
private final Paint paint;
private final Color inner;
private final Color outer;
public DecoratedWindow(Context context, GUI gui) {
super(context, gui);

View File

@@ -1,9 +1,7 @@
package com.bartlomiejpluta.demo.gui;
import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.screen.Screen;
import com.bartlomiejpluta.base.api.gui.*;
import com.bartlomiejpluta.base.lib.gui.*;
import com.bartlomiejpluta.base.api.gui.GUI;
public class EquipmentWindow extends DecoratedWindow {

View File

@@ -1,10 +1,10 @@
package com.bartlomiejpluta.demo.gui;
import lombok.*;
import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.screen.Screen;
import com.bartlomiejpluta.base.api.gui.*;
import com.bartlomiejpluta.base.lib.gui.*;
import com.bartlomiejpluta.base.api.gui.GUI;
import com.bartlomiejpluta.base.api.gui.Inflatable;
import com.bartlomiejpluta.base.api.gui.Ref;
import lombok.Getter;
public class GameMenuWindow extends DecoratedWindow implements Inflatable {

View File

@@ -1,10 +1,12 @@
package com.bartlomiejpluta.demo.gui;
import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.gui.*;
import com.bartlomiejpluta.base.api.input.*;
import com.bartlomiejpluta.base.api.screen.*;
import com.bartlomiejpluta.base.lib.gui.*;
import com.bartlomiejpluta.base.api.gui.GUI;
import com.bartlomiejpluta.base.api.gui.Ref;
import com.bartlomiejpluta.base.api.screen.Screen;
import com.bartlomiejpluta.base.lib.gui.BorderLayout;
import com.bartlomiejpluta.base.lib.gui.IconView;
import com.bartlomiejpluta.base.lib.gui.Label;
import com.bartlomiejpluta.demo.entity.Player;
import com.bartlomiejpluta.demo.event.EnemyDiedEvent;
import com.bartlomiejpluta.demo.event.HitEvent;
@@ -23,7 +25,7 @@ public class HUD extends BorderLayout {
private final DemoRunner runner;
private final Player player;
private final Runtime runtime;
private LimitedQueue<String> logger = new LimitedQueue<>(MAX_LOG_SIZE);
private final LimitedQueue<String> logger = new LimitedQueue<>(MAX_LOG_SIZE);
private float logVisibilityDuration = 0f;

View File

@@ -1,10 +1,10 @@
package com.bartlomiejpluta.demo.gui;
import lombok.*;
import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.screen.Screen;
import com.bartlomiejpluta.base.api.gui.*;
import com.bartlomiejpluta.base.lib.gui.*;
import com.bartlomiejpluta.base.api.gui.GUI;
import com.bartlomiejpluta.base.api.gui.Inflatable;
import com.bartlomiejpluta.base.api.gui.Ref;
import lombok.Getter;
public class StartMenuWindow extends DecoratedWindow implements Inflatable {

View File

@@ -1,29 +1,25 @@
package com.bartlomiejpluta.demo.map;
import lombok.*;
import com.bartlomiejpluta.base.api.map.handler.MapHandler;
import com.bartlomiejpluta.base.api.map.model.GameMap;
import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
import com.bartlomiejpluta.base.api.camera.Camera;
import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.icon.Icon;
import com.bartlomiejpluta.base.api.input.Input;
import com.bartlomiejpluta.base.api.input.Key;
import com.bartlomiejpluta.base.api.map.handler.MapHandler;
import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
import com.bartlomiejpluta.base.api.map.model.GameMap;
import com.bartlomiejpluta.base.api.move.Direction;
import com.bartlomiejpluta.base.api.screen.Screen;
import com.bartlomiejpluta.base.api.camera.Camera;
import com.bartlomiejpluta.base.api.input.*;
import com.bartlomiejpluta.base.api.icon.Icon;
import com.bartlomiejpluta.base.lib.camera.*;
import com.bartlomiejpluta.base.util.world.*;
import com.bartlomiejpluta.base.lib.camera.CameraController;
import com.bartlomiejpluta.base.lib.camera.FollowingCameraController;
import com.bartlomiejpluta.base.util.world.CharacterSpawner;
import com.bartlomiejpluta.base.util.world.Warp;
import com.bartlomiejpluta.demo.entity.Enemy;
import com.bartlomiejpluta.demo.entity.MapObject;
import com.bartlomiejpluta.demo.entity.Player;
import com.bartlomiejpluta.demo.event.EnemyDiedEvent;
import com.bartlomiejpluta.demo.runner.DemoRunner;
import com.bartlomiejpluta.demo.entity.*;
import com.bartlomiejpluta.demo.event.*;
import com.bartlomiejpluta.demo.util.*;
import java.util.*;
import java.util.function.*;
import lombok.NonNull;
public abstract class BaseMapHandler implements MapHandler {
protected Screen screen;

View File

@@ -1,11 +1,5 @@
package com.bartlomiejpluta.demo.map;
import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.input.Input;
import com.bartlomiejpluta.base.api.map.model.GameMap;
import com.bartlomiejpluta.base.api.map.handler.MapHandler;
import com.bartlomiejpluta.base.api.screen.Screen;
public class ForrestHandler extends BaseMapHandler {
}

View File

@@ -1,9 +1,7 @@
package com.bartlomiejpluta.demo.map;
import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.input.Input;
import com.bartlomiejpluta.base.api.map.model.GameMap;
import com.bartlomiejpluta.base.api.screen.Screen;
public class ForrestTempleHandler extends BaseMapHandler {
public static final String UID = "f845355e-b9ad-4884-a217-dd3a4c18a3fa";

View File

@@ -1,17 +1,20 @@
package com.bartlomiejpluta.demo.menu;
import lombok.*;
import java.util.function.*;
import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.screen.Screen;
import com.bartlomiejpluta.base.api.input.*;
import com.bartlomiejpluta.base.api.gui.*;
import com.bartlomiejpluta.base.lib.gui.*;
import com.bartlomiejpluta.base.api.gui.DisplayMode;
import com.bartlomiejpluta.base.api.gui.GUI;
import com.bartlomiejpluta.base.api.gui.UpdateMode;
import com.bartlomiejpluta.base.api.gui.WindowManager;
import com.bartlomiejpluta.base.api.input.Key;
import com.bartlomiejpluta.base.api.input.KeyAction;
import com.bartlomiejpluta.base.api.input.KeyEvent;
import com.bartlomiejpluta.demo.gui.EquipmentWindow;
import com.bartlomiejpluta.demo.gui.GameMenuWindow;
import com.bartlomiejpluta.demo.gui.StartMenuWindow;
import com.bartlomiejpluta.demo.runner.DemoRunner;
import com.bartlomiejpluta.demo.gui.*;
import lombok.NonNull;
import java.util.function.Consumer;
public class MenuManager {
private final DemoRunner runner;

View File

@@ -8,23 +8,21 @@ import com.bartlomiejpluta.base.util.profiler.FPSProfiler;
import com.bartlomiejpluta.demo.entity.Player;
import com.bartlomiejpluta.demo.menu.MenuManager;
import com.bartlomiejpluta.demo.world.weapon.RangedWeapon;
import lombok.*;
import lombok.Getter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class DemoRunner implements GameRunner {
private static final Logger log = LoggerFactory.getLogger(DemoRunner.class);
private final FPSProfiler fpsProfiler = FPSProfiler.create(20);
private Screen screen;
private Context context;
private MenuManager menu;
private GUI hud;
@Getter
private Player player;
private final FPSProfiler fpsProfiler = FPSProfiler.create(20);
@Override
public void init(Context context) {
this.context = context;

View File

@@ -1,6 +1,7 @@
package com.bartlomiejpluta.demo.util;
import lombok.*;
import lombok.AllArgsConstructor;
import java.util.LinkedList;
@AllArgsConstructor

View File

@@ -1,12 +1,15 @@
package com.bartlomiejpluta.demo.world.weapon;
import com.bartlomiejpluta.base.api.context.*;
import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.context.ContextHolder;
import com.bartlomiejpluta.base.api.icon.Icon;
import com.bartlomiejpluta.base.lib.animation.*;
import com.bartlomiejpluta.base.lib.animation.AnimationRunner;
import com.bartlomiejpluta.base.lib.animation.RandomAnimationsRunner;
import com.bartlomiejpluta.base.util.random.DiceRoller;
import com.bartlomiejpluta.demo.entity.Creature;
import com.bartlomiejpluta.demo.event.HitEvent;
import lombok.*;
import lombok.Getter;
import lombok.NonNull;
import org.joml.Vector2i;
import java.util.Random;
@@ -17,15 +20,12 @@ public class MeleeWeapon implements Weapon {
private final DiceRoller roller;
private final AnimationRunner animation;
private final String sound;
@Getter
private String name;
@Getter
private final Icon icon;
@Getter
private int cooldown;
private final String name;
@Getter
private final int cooldown;
public MeleeWeapon(@NonNull String id) {
this(DB.dao.melee_weapon.find(id));

View File

@@ -1,15 +1,19 @@
package com.bartlomiejpluta.demo.world.weapon;
import com.bartlomiejpluta.base.api.animation.Animation;
import com.bartlomiejpluta.base.api.context.*;
import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.context.ContextHolder;
import com.bartlomiejpluta.base.api.entity.Entity;
import com.bartlomiejpluta.base.api.icon.Icon;
import com.bartlomiejpluta.base.api.move.*;
import com.bartlomiejpluta.base.lib.animation.*;
import com.bartlomiejpluta.base.api.move.Movable;
import com.bartlomiejpluta.base.lib.animation.AnimationRunner;
import com.bartlomiejpluta.base.lib.animation.BulletAnimationRunner;
import com.bartlomiejpluta.base.lib.animation.SimpleAnimationRunner;
import com.bartlomiejpluta.base.util.random.DiceRoller;
import com.bartlomiejpluta.demo.entity.Creature;
import com.bartlomiejpluta.demo.event.HitEvent;
import lombok.*;
import lombok.Getter;
import lombok.NonNull;
import java.util.Random;
@@ -24,15 +28,12 @@ public class RangedWeapon implements Weapon {
private final String punchSound;
private final AnimationRunner missAnimation;
private final String missSound;
@Getter
private String name;
@Getter
private final Icon icon;
@Getter
private int cooldown;
private final String name;
@Getter
private final int cooldown;
public RangedWeapon(@NonNull String id) {
this(DB.dao.ranged_weapon.find(id));