Refactor :api structure

Refactored API structure to following packages:

* `api` - contains essential API classes
* `lib` - contains ready-to-use snippets implemented on `api`
* `util` - contains utility classes
* `internal` - contains internal classes that are not supposed to be used by user
This commit is contained in:
2021-03-22 15:42:24 +01:00
parent b91c67100e
commit 94a9e316b6
163 changed files with 642 additions and 642 deletions

View File

@@ -0,0 +1,8 @@
package com.bartlomiejpluta.base.api.ai;
import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
@FunctionalInterface
public interface AI {
void nextActivity(ObjectLayer layer, float dt);
}

View File

@@ -0,0 +1,7 @@
package com.bartlomiejpluta.base.api.ai;
import com.bartlomiejpluta.base.api.entity.Entity;
public interface NPC extends Entity {
AI getStrategy();
}

View File

@@ -0,0 +1,27 @@
package com.bartlomiejpluta.base.api.animation;
import com.bartlomiejpluta.base.api.map.layer.base.Layer;
import com.bartlomiejpluta.base.api.move.Movable;
import com.bartlomiejpluta.base.internal.logic.Updatable;
import com.bartlomiejpluta.base.internal.object.Placeable;
import com.bartlomiejpluta.base.internal.render.Renderable;
import com.bartlomiejpluta.base.util.path.Path;
public interface Animation extends Placeable, Movable, Renderable, Updatable {
void setAnimationSpeed(float speed);
Integer getRepeat();
void setRepeat(Integer repeat);
void followPath(Path<Animation> path, Integer repeat, boolean finishOnEnd, boolean finishOnFail);
void onAdd(Layer layer);
void onFinish(Layer layer);
void finish();
boolean finished();
}

View File

@@ -1,13 +1,13 @@
package com.bartlomiejpluta.base.api.game.animation; package com.bartlomiejpluta.base.api.animation;
import com.bartlomiejpluta.base.api.game.camera.Camera; import com.bartlomiejpluta.base.api.camera.Camera;
import com.bartlomiejpluta.base.api.game.map.layer.base.Layer; import com.bartlomiejpluta.base.api.map.layer.base.Layer;
import com.bartlomiejpluta.base.api.game.move.Direction; import com.bartlomiejpluta.base.api.move.Direction;
import com.bartlomiejpluta.base.api.game.move.Movement; import com.bartlomiejpluta.base.api.move.Movement;
import com.bartlomiejpluta.base.api.game.screen.Screen; import com.bartlomiejpluta.base.api.screen.Screen;
import com.bartlomiejpluta.base.api.internal.object.Placeable; import com.bartlomiejpluta.base.internal.object.Placeable;
import com.bartlomiejpluta.base.api.internal.render.ShaderManager; import com.bartlomiejpluta.base.internal.render.ShaderManager;
import com.bartlomiejpluta.base.api.util.path.Path; import com.bartlomiejpluta.base.util.path.Path;
import org.joml.Matrix4fc; import org.joml.Matrix4fc;
import org.joml.Vector2fc; import org.joml.Vector2fc;
import org.joml.Vector2ic; import org.joml.Vector2ic;

View File

@@ -0,0 +1,12 @@
package com.bartlomiejpluta.base.api.camera;
import com.bartlomiejpluta.base.api.screen.Screen;
import com.bartlomiejpluta.base.internal.object.Placeable;
import com.bartlomiejpluta.base.internal.render.ShaderManager;
import org.joml.Matrix4fc;
public interface Camera extends Placeable {
Matrix4fc computeViewModelMatrix(Matrix4fc modelMatrix);
void render(Screen screen, ShaderManager shaderManager);
}

View File

@@ -0,0 +1,53 @@
package com.bartlomiejpluta.base.api.context;
import com.bartlomiejpluta.base.api.animation.Animation;
import com.bartlomiejpluta.base.api.camera.Camera;
import com.bartlomiejpluta.base.api.entity.Entity;
import com.bartlomiejpluta.base.api.gui.base.GUI;
import com.bartlomiejpluta.base.api.image.Image;
import com.bartlomiejpluta.base.api.input.Input;
import com.bartlomiejpluta.base.api.runner.GameRunner;
import com.bartlomiejpluta.base.api.screen.Screen;
import com.bartlomiejpluta.base.internal.gc.Disposable;
import com.bartlomiejpluta.base.internal.logic.Updatable;
import com.bartlomiejpluta.base.internal.render.Renderable;
public interface Context extends Updatable, Renderable, Disposable {
GameRunner getGameRunner();
Screen getScreen();
Camera getCamera();
Input getInput();
String getProjectName();
void openMap(String mapUid);
void closeMap();
Entity createEntity(String entitySetUid);
Animation createAnimation(String animationUid);
Image getImage(String imageUid);
GUI newGUI();
boolean isRunning();
void close();
boolean isPaused();
void pause();
void resume();
boolean togglePause();
void init(Screen screen, Input input, Camera camera);
void input(Input input);
}

View File

@@ -1,11 +1,11 @@
package com.bartlomiejpluta.base.api.game.entity; package com.bartlomiejpluta.base.api.entity;
import com.bartlomiejpluta.base.api.game.map.layer.object.ObjectLayer; import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
import com.bartlomiejpluta.base.api.game.move.Direction; import com.bartlomiejpluta.base.api.move.Direction;
import com.bartlomiejpluta.base.api.game.move.Movable; import com.bartlomiejpluta.base.api.move.Movable;
import com.bartlomiejpluta.base.api.internal.logic.Updatable; import com.bartlomiejpluta.base.internal.logic.Updatable;
import com.bartlomiejpluta.base.api.internal.object.Placeable; import com.bartlomiejpluta.base.internal.object.Placeable;
import com.bartlomiejpluta.base.api.internal.render.Renderable; import com.bartlomiejpluta.base.internal.render.Renderable;
public interface Entity extends Placeable, Movable, Renderable, Updatable { public interface Entity extends Placeable, Movable, Renderable, Updatable {

View File

@@ -1,12 +1,12 @@
package com.bartlomiejpluta.base.api.game.entity; package com.bartlomiejpluta.base.api.entity;
import com.bartlomiejpluta.base.api.game.camera.Camera; import com.bartlomiejpluta.base.api.camera.Camera;
import com.bartlomiejpluta.base.api.game.map.layer.object.ObjectLayer; import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
import com.bartlomiejpluta.base.api.game.move.Direction; import com.bartlomiejpluta.base.api.move.Direction;
import com.bartlomiejpluta.base.api.game.move.Movement; import com.bartlomiejpluta.base.api.move.Movement;
import com.bartlomiejpluta.base.api.game.screen.Screen; import com.bartlomiejpluta.base.api.screen.Screen;
import com.bartlomiejpluta.base.api.internal.object.Placeable; import com.bartlomiejpluta.base.internal.object.Placeable;
import com.bartlomiejpluta.base.api.internal.render.ShaderManager; import com.bartlomiejpluta.base.internal.render.ShaderManager;
import org.joml.Matrix4fc; import org.joml.Matrix4fc;
import org.joml.Vector2fc; import org.joml.Vector2fc;
import org.joml.Vector2ic; import org.joml.Vector2ic;

View File

@@ -1,8 +0,0 @@
package com.bartlomiejpluta.base.api.game.ai;
import com.bartlomiejpluta.base.api.game.map.layer.object.ObjectLayer;
@FunctionalInterface
public interface AI {
void nextActivity(ObjectLayer layer, float dt);
}

View File

@@ -1,7 +0,0 @@
package com.bartlomiejpluta.base.api.game.ai;
import com.bartlomiejpluta.base.api.game.entity.Entity;
public interface NPC extends Entity {
AI getStrategy();
}

View File

@@ -1,27 +0,0 @@
package com.bartlomiejpluta.base.api.game.animation;
import com.bartlomiejpluta.base.api.game.map.layer.base.Layer;
import com.bartlomiejpluta.base.api.game.move.Movable;
import com.bartlomiejpluta.base.api.internal.logic.Updatable;
import com.bartlomiejpluta.base.api.internal.object.Placeable;
import com.bartlomiejpluta.base.api.internal.render.Renderable;
import com.bartlomiejpluta.base.api.util.path.Path;
public interface Animation extends Placeable, Movable, Renderable, Updatable {
void setAnimationSpeed(float speed);
Integer getRepeat();
void setRepeat(Integer repeat);
void followPath(Path<Animation> path, Integer repeat, boolean finishOnEnd, boolean finishOnFail);
void onAdd(Layer layer);
void onFinish(Layer layer);
void finish();
boolean finished();
}

View File

@@ -1,12 +0,0 @@
package com.bartlomiejpluta.base.api.game.camera;
import com.bartlomiejpluta.base.api.game.screen.Screen;
import com.bartlomiejpluta.base.api.internal.object.Placeable;
import com.bartlomiejpluta.base.api.internal.render.ShaderManager;
import org.joml.Matrix4fc;
public interface Camera extends Placeable {
Matrix4fc computeViewModelMatrix(Matrix4fc modelMatrix);
void render(Screen screen, ShaderManager shaderManager);
}

View File

@@ -1,53 +0,0 @@
package com.bartlomiejpluta.base.api.game.context;
import com.bartlomiejpluta.base.api.game.animation.Animation;
import com.bartlomiejpluta.base.api.game.camera.Camera;
import com.bartlomiejpluta.base.api.game.entity.Entity;
import com.bartlomiejpluta.base.api.game.gui.base.GUI;
import com.bartlomiejpluta.base.api.game.image.Image;
import com.bartlomiejpluta.base.api.game.input.Input;
import com.bartlomiejpluta.base.api.game.runner.GameRunner;
import com.bartlomiejpluta.base.api.game.screen.Screen;
import com.bartlomiejpluta.base.api.internal.gc.Disposable;
import com.bartlomiejpluta.base.api.internal.logic.Updatable;
import com.bartlomiejpluta.base.api.internal.render.Renderable;
public interface Context extends Updatable, Renderable, Disposable {
GameRunner getGameRunner();
Screen getScreen();
Camera getCamera();
Input getInput();
String getProjectName();
void openMap(String mapUid);
void closeMap();
Entity createEntity(String entitySetUid);
Animation createAnimation(String animationUid);
Image getImage(String imageUid);
GUI newGUI();
boolean isRunning();
void close();
boolean isPaused();
void pause();
void resume();
boolean togglePause();
void init(Screen screen, Input input, Camera camera);
void input(Input input);
}

View File

@@ -1,4 +0,0 @@
package com.bartlomiejpluta.base.api.game.gui.base;
public interface Paint {
}

View File

@@ -1,4 +0,0 @@
package com.bartlomiejpluta.base.api.game.gui.component;
public interface Container extends Component {
}

View File

@@ -1,18 +0,0 @@
package com.bartlomiejpluta.base.api.game.map.handler;
import com.bartlomiejpluta.base.api.game.context.Context;
import com.bartlomiejpluta.base.api.game.input.Input;
import com.bartlomiejpluta.base.api.game.map.model.GameMap;
import com.bartlomiejpluta.base.api.game.screen.Screen;
public interface MapHandler {
void onCreate(Context context, GameMap map);
void onOpen(Context context, GameMap map);
void input(Input input);
void update(Context context, GameMap map, float dt);
void postRender(Screen screen);
}

View File

@@ -1,12 +0,0 @@
package com.bartlomiejpluta.base.api.game.map.layer.base;
import com.bartlomiejpluta.base.api.game.animation.Animation;
import com.bartlomiejpluta.base.api.game.map.model.GameMap;
import com.bartlomiejpluta.base.api.internal.logic.Updatable;
import com.bartlomiejpluta.base.api.internal.render.Renderable;
public interface Layer extends Renderable, Updatable {
GameMap getMap();
void pushAnimation(Animation animation);
}

View File

@@ -1,6 +0,0 @@
package com.bartlomiejpluta.base.api.game.map.layer.object;
public enum PassageAbility {
BLOCK,
ALLOW
}

View File

@@ -1,9 +0,0 @@
package com.bartlomiejpluta.base.api.game.rule;
import com.bartlomiejpluta.base.api.game.entity.Entity;
public interface Rule {
boolean when(Entity entity);
void then(Entity entity);
}

View File

@@ -1,13 +0,0 @@
package com.bartlomiejpluta.base.api.game.runner;
import com.bartlomiejpluta.base.api.game.context.Context;
import com.bartlomiejpluta.base.api.game.input.Input;
import com.bartlomiejpluta.base.api.internal.gc.Disposable;
public interface GameRunner extends Disposable {
void init(Context context);
void input(Input input);
void update(float dt);
}

View File

@@ -1,6 +1,6 @@
package com.bartlomiejpluta.base.api.game.gui.base; package com.bartlomiejpluta.base.api.gui.base;
import com.bartlomiejpluta.base.api.game.input.KeyEvent; import com.bartlomiejpluta.base.api.input.KeyEvent;
public abstract class BaseWidget implements Widget { public abstract class BaseWidget implements Widget {
protected Widget parent; protected Widget parent;

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.game.gui.base; package com.bartlomiejpluta.base.api.gui.base;
public interface Color { public interface Color {
void setRGB(float red, float green, float blue); void setRGB(float red, float green, float blue);

View File

@@ -1,10 +1,10 @@
package com.bartlomiejpluta.base.api.game.gui.base; package com.bartlomiejpluta.base.api.gui.base;
import com.bartlomiejpluta.base.api.game.gui.component.Component; import com.bartlomiejpluta.base.api.gui.component.Component;
import com.bartlomiejpluta.base.api.game.gui.window.Window; import com.bartlomiejpluta.base.api.gui.window.Window;
import com.bartlomiejpluta.base.api.game.input.KeyEventHandler; import com.bartlomiejpluta.base.api.input.KeyEventHandler;
import com.bartlomiejpluta.base.api.internal.gc.Disposable; import com.bartlomiejpluta.base.internal.gc.Disposable;
import com.bartlomiejpluta.base.api.internal.render.Renderable; import com.bartlomiejpluta.base.internal.render.Renderable;
public interface GUI extends Renderable, Disposable, KeyEventHandler { public interface GUI extends Renderable, Disposable, KeyEventHandler {
int ALIGN_LEFT = 1 << 0; int ALIGN_LEFT = 1 << 0;

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.game.gui.base; package com.bartlomiejpluta.base.api.gui.base;
public interface Image { public interface Image {
int getWidth(); int getWidth();

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.game.gui.base; package com.bartlomiejpluta.base.api.gui.base;
public enum LineCap { public enum LineCap {
BUTT, BUTT,

View File

@@ -0,0 +1,4 @@
package com.bartlomiejpluta.base.api.gui.base;
public interface Paint {
}

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.game.gui.base; package com.bartlomiejpluta.base.api.gui.base;
public enum SizeMode { public enum SizeMode {
AUTO, AUTO,

View File

@@ -1,7 +1,7 @@
package com.bartlomiejpluta.base.api.game.gui.base; package com.bartlomiejpluta.base.api.gui.base;
import com.bartlomiejpluta.base.api.game.input.KeyEventHandler; import com.bartlomiejpluta.base.api.input.KeyEventHandler;
import com.bartlomiejpluta.base.api.game.screen.Screen; import com.bartlomiejpluta.base.api.screen.Screen;
public interface Widget extends KeyEventHandler { public interface Widget extends KeyEventHandler {
Widget getParent(); Widget getParent();

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.game.gui.base; package com.bartlomiejpluta.base.api.gui.base;
public enum WindingDirection { public enum WindingDirection {
CLOCKWISE, CLOCKWISE,

View File

@@ -1,9 +1,9 @@
package com.bartlomiejpluta.base.api.game.gui.component; package com.bartlomiejpluta.base.api.gui.component;
import com.bartlomiejpluta.base.api.game.context.Context; import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.game.gui.base.GUI; import com.bartlomiejpluta.base.api.gui.base.GUI;
import com.bartlomiejpluta.base.api.game.gui.base.SizeMode; import com.bartlomiejpluta.base.api.gui.base.SizeMode;
import com.bartlomiejpluta.base.api.game.screen.Screen; import com.bartlomiejpluta.base.api.screen.Screen;
public class AbsoluteLayout extends BaseContainer { public class AbsoluteLayout extends BaseContainer {

View File

@@ -1,8 +1,8 @@
package com.bartlomiejpluta.base.api.game.gui.component; package com.bartlomiejpluta.base.api.gui.component;
import com.bartlomiejpluta.base.api.game.context.Context; import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.game.gui.base.BaseWidget; import com.bartlomiejpluta.base.api.gui.base.BaseWidget;
import com.bartlomiejpluta.base.api.game.gui.base.GUI; import com.bartlomiejpluta.base.api.gui.base.GUI;
import static java.util.Collections.emptyList; import static java.util.Collections.emptyList;

View File

@@ -1,8 +1,8 @@
package com.bartlomiejpluta.base.api.game.gui.component; package com.bartlomiejpluta.base.api.gui.component;
import com.bartlomiejpluta.base.api.game.context.Context; import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.game.gui.base.GUI; import com.bartlomiejpluta.base.api.gui.base.GUI;
import com.bartlomiejpluta.base.api.game.input.KeyEvent; import com.bartlomiejpluta.base.api.input.KeyEvent;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;

View File

@@ -1,9 +1,9 @@
package com.bartlomiejpluta.base.api.game.gui.component; package com.bartlomiejpluta.base.api.gui.component;
import com.bartlomiejpluta.base.api.game.context.Context; import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.game.gui.base.GUI; import com.bartlomiejpluta.base.api.gui.base.GUI;
import com.bartlomiejpluta.base.api.game.gui.base.SizeMode; import com.bartlomiejpluta.base.api.gui.base.SizeMode;
import com.bartlomiejpluta.base.api.game.screen.Screen; import com.bartlomiejpluta.base.api.screen.Screen;
public class BorderLayout extends BaseContainer { public class BorderLayout extends BaseContainer {

View File

@@ -1,6 +1,6 @@
package com.bartlomiejpluta.base.api.game.gui.component; package com.bartlomiejpluta.base.api.gui.component;
import com.bartlomiejpluta.base.api.game.gui.base.Widget; import com.bartlomiejpluta.base.api.gui.base.Widget;
public interface Component extends Widget { public interface Component extends Widget {
Iterable<Component> getChildren(); Iterable<Component> getChildren();

View File

@@ -1,8 +1,8 @@
package com.bartlomiejpluta.base.api.game.gui.component; package com.bartlomiejpluta.base.api.gui.component;
import com.bartlomiejpluta.base.api.game.context.Context; import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.game.gui.base.GUI; import com.bartlomiejpluta.base.api.gui.base.GUI;
import com.bartlomiejpluta.base.api.game.screen.Screen; import com.bartlomiejpluta.base.api.screen.Screen;
import static java.util.Objects.requireNonNull; import static java.util.Objects.requireNonNull;

View File

@@ -0,0 +1,4 @@
package com.bartlomiejpluta.base.api.gui.component;
public interface Container extends Component {
}

View File

@@ -1,8 +1,8 @@
package com.bartlomiejpluta.base.api.game.gui.component; package com.bartlomiejpluta.base.api.gui.component;
import com.bartlomiejpluta.base.api.game.context.Context; import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.game.gui.base.GUI; import com.bartlomiejpluta.base.api.gui.base.GUI;
import com.bartlomiejpluta.base.api.game.screen.Screen; import com.bartlomiejpluta.base.api.screen.Screen;
public class HLayout extends BaseContainer { public class HLayout extends BaseContainer {
protected float offsetX = 0.0f; protected float offsetX = 0.0f;

View File

@@ -1,10 +1,10 @@
package com.bartlomiejpluta.base.api.game.gui.component; package com.bartlomiejpluta.base.api.gui.component;
import com.bartlomiejpluta.base.api.game.context.Context; import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.game.gui.base.GUI; import com.bartlomiejpluta.base.api.gui.base.GUI;
import com.bartlomiejpluta.base.api.game.input.Key; import com.bartlomiejpluta.base.api.input.Key;
import com.bartlomiejpluta.base.api.game.input.KeyAction; import com.bartlomiejpluta.base.api.input.KeyAction;
import com.bartlomiejpluta.base.api.game.input.KeyEvent; import com.bartlomiejpluta.base.api.input.KeyEvent;
import java.util.EnumSet; import java.util.EnumSet;

View File

@@ -1,14 +1,14 @@
package com.bartlomiejpluta.base.api.game.gui.component; package com.bartlomiejpluta.base.api.gui.component;
import com.bartlomiejpluta.base.api.game.context.Context; import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.game.gui.base.GUI; import com.bartlomiejpluta.base.api.gui.base.GUI;
import com.bartlomiejpluta.base.api.game.gui.base.SizeMode; import com.bartlomiejpluta.base.api.gui.base.SizeMode;
import com.bartlomiejpluta.base.api.game.input.Key; import com.bartlomiejpluta.base.api.input.Key;
import com.bartlomiejpluta.base.api.game.input.KeyAction; import com.bartlomiejpluta.base.api.input.KeyAction;
import com.bartlomiejpluta.base.api.game.input.KeyEvent; import com.bartlomiejpluta.base.api.input.KeyEvent;
import com.bartlomiejpluta.base.api.game.screen.Screen; import com.bartlomiejpluta.base.api.screen.Screen;
import static com.bartlomiejpluta.base.api.util.math.MathUtil.clamp; import static com.bartlomiejpluta.base.util.math.MathUtil.clamp;
import static java.lang.Math.*; import static java.lang.Math.*;
public class HScrollableLayout extends HLayout { public class HScrollableLayout extends HLayout {

View File

@@ -1,10 +1,10 @@
package com.bartlomiejpluta.base.api.game.gui.component; package com.bartlomiejpluta.base.api.gui.component;
import com.bartlomiejpluta.base.api.game.context.Context; import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.game.gui.base.GUI; import com.bartlomiejpluta.base.api.gui.base.GUI;
import com.bartlomiejpluta.base.api.game.gui.base.Image; import com.bartlomiejpluta.base.api.gui.base.Image;
import com.bartlomiejpluta.base.api.game.gui.base.Paint; import com.bartlomiejpluta.base.api.gui.base.Paint;
import com.bartlomiejpluta.base.api.game.screen.Screen; import com.bartlomiejpluta.base.api.screen.Screen;
public class ImageView extends BaseComponent { public class ImageView extends BaseComponent {
private final Paint paint; private final Paint paint;

View File

@@ -1,9 +1,9 @@
package com.bartlomiejpluta.base.api.game.gui.component; package com.bartlomiejpluta.base.api.gui.component;
import com.bartlomiejpluta.base.api.game.context.Context; import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.game.gui.base.Color; import com.bartlomiejpluta.base.api.gui.base.Color;
import com.bartlomiejpluta.base.api.game.gui.base.GUI; import com.bartlomiejpluta.base.api.gui.base.GUI;
import com.bartlomiejpluta.base.api.game.screen.Screen; import com.bartlomiejpluta.base.api.screen.Screen;
import static java.util.Objects.requireNonNull; import static java.util.Objects.requireNonNull;

View File

@@ -1,8 +1,8 @@
package com.bartlomiejpluta.base.api.game.gui.component; package com.bartlomiejpluta.base.api.gui.component;
import com.bartlomiejpluta.base.api.game.context.Context; import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.game.gui.base.GUI; import com.bartlomiejpluta.base.api.gui.base.GUI;
import com.bartlomiejpluta.base.api.game.screen.Screen; import com.bartlomiejpluta.base.api.screen.Screen;
public class VLayout extends BaseContainer { public class VLayout extends BaseContainer {
protected float offsetX = 0.0f; protected float offsetX = 0.0f;

View File

@@ -1,10 +1,10 @@
package com.bartlomiejpluta.base.api.game.gui.component; package com.bartlomiejpluta.base.api.gui.component;
import com.bartlomiejpluta.base.api.game.context.Context; import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.game.gui.base.GUI; import com.bartlomiejpluta.base.api.gui.base.GUI;
import com.bartlomiejpluta.base.api.game.input.Key; import com.bartlomiejpluta.base.api.input.Key;
import com.bartlomiejpluta.base.api.game.input.KeyAction; import com.bartlomiejpluta.base.api.input.KeyAction;
import com.bartlomiejpluta.base.api.game.input.KeyEvent; import com.bartlomiejpluta.base.api.input.KeyEvent;
import java.util.EnumSet; import java.util.EnumSet;

View File

@@ -1,14 +1,14 @@
package com.bartlomiejpluta.base.api.game.gui.component; package com.bartlomiejpluta.base.api.gui.component;
import com.bartlomiejpluta.base.api.game.context.Context; import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.game.gui.base.GUI; import com.bartlomiejpluta.base.api.gui.base.GUI;
import com.bartlomiejpluta.base.api.game.gui.base.SizeMode; import com.bartlomiejpluta.base.api.gui.base.SizeMode;
import com.bartlomiejpluta.base.api.game.input.Key; import com.bartlomiejpluta.base.api.input.Key;
import com.bartlomiejpluta.base.api.game.input.KeyAction; import com.bartlomiejpluta.base.api.input.KeyAction;
import com.bartlomiejpluta.base.api.game.input.KeyEvent; import com.bartlomiejpluta.base.api.input.KeyEvent;
import com.bartlomiejpluta.base.api.game.screen.Screen; import com.bartlomiejpluta.base.api.screen.Screen;
import static com.bartlomiejpluta.base.api.util.math.MathUtil.clamp; import static com.bartlomiejpluta.base.util.math.MathUtil.clamp;
import static java.lang.Math.*; import static java.lang.Math.*;
public class VScrollableLayout extends VLayout { public class VScrollableLayout extends VLayout {

View File

@@ -1,11 +1,11 @@
package com.bartlomiejpluta.base.api.game.gui.window; package com.bartlomiejpluta.base.api.gui.window;
import com.bartlomiejpluta.base.api.game.context.Context; import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.game.gui.base.BaseWidget; import com.bartlomiejpluta.base.api.gui.base.BaseWidget;
import com.bartlomiejpluta.base.api.game.gui.base.GUI; import com.bartlomiejpluta.base.api.gui.base.GUI;
import com.bartlomiejpluta.base.api.game.gui.component.Component; import com.bartlomiejpluta.base.api.gui.component.Component;
import com.bartlomiejpluta.base.api.game.input.KeyEvent; import com.bartlomiejpluta.base.api.input.KeyEvent;
import com.bartlomiejpluta.base.api.game.screen.Screen; import com.bartlomiejpluta.base.api.screen.Screen;
import static java.util.Objects.requireNonNull; import static java.util.Objects.requireNonNull;

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.game.gui.window; package com.bartlomiejpluta.base.api.gui.window;
public enum DisplayMode { public enum DisplayMode {
DISPLAY_STACK, DISPLAY_STACK,

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.game.gui.window; package com.bartlomiejpluta.base.api.gui.window;
public interface Inflatable { public interface Inflatable {
default void onInflate() { default void onInflate() {

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.game.gui.window; package com.bartlomiejpluta.base.api.gui.window;
import java.lang.annotation.ElementType; import java.lang.annotation.ElementType;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;

View File

@@ -1,7 +1,7 @@
package com.bartlomiejpluta.base.api.game.gui.window; package com.bartlomiejpluta.base.api.gui.window;
import com.bartlomiejpluta.base.api.game.gui.base.Widget; import com.bartlomiejpluta.base.api.gui.base.Widget;
import com.bartlomiejpluta.base.api.game.gui.component.Component; import com.bartlomiejpluta.base.api.gui.component.Component;
public interface Window extends Widget { public interface Window extends Widget {
void setContent(Component component); void setContent(Component component);

View File

@@ -1,10 +1,10 @@
package com.bartlomiejpluta.base.api.game.gui.window; package com.bartlomiejpluta.base.api.gui.window;
import com.bartlomiejpluta.base.api.game.gui.base.BaseWidget; import com.bartlomiejpluta.base.api.gui.base.BaseWidget;
import com.bartlomiejpluta.base.api.game.gui.base.GUI; import com.bartlomiejpluta.base.api.gui.base.GUI;
import com.bartlomiejpluta.base.api.game.gui.base.SizeMode; import com.bartlomiejpluta.base.api.gui.base.SizeMode;
import com.bartlomiejpluta.base.api.game.input.KeyEvent; import com.bartlomiejpluta.base.api.input.KeyEvent;
import com.bartlomiejpluta.base.api.game.screen.Screen; import com.bartlomiejpluta.base.api.screen.Screen;
import java.util.Deque; import java.util.Deque;
import java.util.LinkedList; import java.util.LinkedList;

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.game.gui.window; package com.bartlomiejpluta.base.api.gui.window;
public enum WindowPosition { public enum WindowPosition {
TOP, TOP,

View File

@@ -1,7 +1,7 @@
package com.bartlomiejpluta.base.api.game.image; package com.bartlomiejpluta.base.api.image;
import com.bartlomiejpluta.base.api.internal.object.Placeable; import com.bartlomiejpluta.base.internal.object.Placeable;
import com.bartlomiejpluta.base.api.internal.render.Renderable; import com.bartlomiejpluta.base.internal.render.Renderable;
public interface Image extends Placeable, Renderable { public interface Image extends Placeable, Renderable {
int getPrimaryWidth(); int getPrimaryWidth();

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.game.input; package com.bartlomiejpluta.base.api.input;
public interface Input { public interface Input {
boolean isKeyPressed(Key key); boolean isKeyPressed(Key key);

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.game.input; package com.bartlomiejpluta.base.api.input;
public interface InputEvent { public interface InputEvent {
boolean isConsumed(); boolean isConsumed();

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.game.input; package com.bartlomiejpluta.base.api.input;
public enum Key { public enum Key {
KEY_SPACE, KEY_SPACE,

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.game.input; package com.bartlomiejpluta.base.api.input;
public enum KeyAction { public enum KeyAction {
PRESS, PRESS,

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.game.input; package com.bartlomiejpluta.base.api.input;
public interface KeyEvent extends InputEvent { public interface KeyEvent extends InputEvent {
Key getKey(); Key getKey();

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.game.input; package com.bartlomiejpluta.base.api.input;
public interface KeyEventHandler { public interface KeyEventHandler {
void handleKeyEvent(KeyEvent event); void handleKeyEvent(KeyEvent event);

View File

@@ -1,8 +0,0 @@
package com.bartlomiejpluta.base.api.internal.render;
import com.bartlomiejpluta.base.api.game.camera.Camera;
import com.bartlomiejpluta.base.api.game.screen.Screen;
public interface Renderable {
void render(Screen screen, Camera camera, ShaderManager shaderManager);
}

View File

@@ -0,0 +1,18 @@
package com.bartlomiejpluta.base.api.map.handler;
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 interface MapHandler {
void onCreate(Context context, GameMap map);
void onOpen(Context context, GameMap map);
void input(Input input);
void update(Context context, GameMap map, float dt);
void postRender(Screen screen);
}

View File

@@ -0,0 +1,12 @@
package com.bartlomiejpluta.base.api.map.layer.base;
import com.bartlomiejpluta.base.api.animation.Animation;
import com.bartlomiejpluta.base.api.map.model.GameMap;
import com.bartlomiejpluta.base.internal.logic.Updatable;
import com.bartlomiejpluta.base.internal.render.Renderable;
public interface Layer extends Renderable, Updatable {
GameMap getMap();
void pushAnimation(Animation animation);
}

View File

@@ -1,8 +1,8 @@
package com.bartlomiejpluta.base.api.game.map.layer.color; package com.bartlomiejpluta.base.api.map.layer.color;
import com.bartlomiejpluta.base.api.game.map.layer.base.Layer; import com.bartlomiejpluta.base.api.map.layer.base.Layer;
import com.bartlomiejpluta.base.api.internal.object.Placeable; import com.bartlomiejpluta.base.internal.object.Placeable;
import com.bartlomiejpluta.base.api.internal.render.Renderable; import com.bartlomiejpluta.base.internal.render.Renderable;
public interface ColorLayer extends Placeable, Renderable, Layer { public interface ColorLayer extends Placeable, Renderable, Layer {
void setColor(float red, float green, float blue, float alpha); void setColor(float red, float green, float blue, float alpha);

View File

@@ -1,7 +1,7 @@
package com.bartlomiejpluta.base.api.game.map.layer.image; package com.bartlomiejpluta.base.api.map.layer.image;
import com.bartlomiejpluta.base.api.game.image.Image; import com.bartlomiejpluta.base.api.image.Image;
import com.bartlomiejpluta.base.api.game.map.layer.base.Layer; import com.bartlomiejpluta.base.api.map.layer.base.Layer;
public interface ImageLayer extends Layer { public interface ImageLayer extends Layer {
void setImage(Image image); void setImage(Image image);

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.game.map.layer.image; package com.bartlomiejpluta.base.api.map.layer.image;
public enum ImageLayerMode { public enum ImageLayerMode {
NORMAL, NORMAL,

View File

@@ -1,9 +1,9 @@
package com.bartlomiejpluta.base.api.game.map.layer.object; package com.bartlomiejpluta.base.api.map.layer.object;
import com.bartlomiejpluta.base.api.game.entity.Entity; import com.bartlomiejpluta.base.api.entity.Entity;
import com.bartlomiejpluta.base.api.game.map.layer.base.Layer; import com.bartlomiejpluta.base.api.map.layer.base.Layer;
import com.bartlomiejpluta.base.api.game.move.Movement; import com.bartlomiejpluta.base.api.move.Movement;
import com.bartlomiejpluta.base.api.game.rule.Rule; import com.bartlomiejpluta.base.api.rule.Rule;
import org.joml.Vector2ic; import org.joml.Vector2ic;
import java.util.List; import java.util.List;

View File

@@ -0,0 +1,6 @@
package com.bartlomiejpluta.base.api.map.layer.object;
public enum PassageAbility {
BLOCK,
ALLOW
}

View File

@@ -1,6 +1,6 @@
package com.bartlomiejpluta.base.api.game.map.layer.tile; package com.bartlomiejpluta.base.api.map.layer.tile;
import com.bartlomiejpluta.base.api.game.map.layer.base.Layer; import com.bartlomiejpluta.base.api.map.layer.base.Layer;
public interface TileLayer extends Layer { public interface TileLayer extends Layer {
void setTile(int row, int column, int tileId); void setTile(int row, int column, int tileId);

View File

@@ -1,9 +1,9 @@
package com.bartlomiejpluta.base.api.game.map.model; package com.bartlomiejpluta.base.api.map.model;
import com.bartlomiejpluta.base.api.game.map.layer.color.ColorLayer; import com.bartlomiejpluta.base.api.map.layer.color.ColorLayer;
import com.bartlomiejpluta.base.api.game.map.layer.image.ImageLayer; import com.bartlomiejpluta.base.api.map.layer.image.ImageLayer;
import com.bartlomiejpluta.base.api.game.map.layer.object.ObjectLayer; import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
import com.bartlomiejpluta.base.api.game.map.layer.tile.TileLayer; import com.bartlomiejpluta.base.api.map.layer.tile.TileLayer;
import org.joml.Vector2fc; import org.joml.Vector2fc;
public interface GameMap { public interface GameMap {

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.game.move; package com.bartlomiejpluta.base.api.move;
import org.joml.Vector2i; import org.joml.Vector2i;
import org.joml.Vector2ic; import org.joml.Vector2ic;

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.game.move; package com.bartlomiejpluta.base.api.move;
import org.joml.Vector2fc; import org.joml.Vector2fc;
import org.joml.Vector2ic; import org.joml.Vector2ic;

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.game.move; package com.bartlomiejpluta.base.api.move;
import org.joml.Vector2ic; import org.joml.Vector2ic;

View File

@@ -1,6 +1,6 @@
package com.bartlomiejpluta.base.api.game.rule; package com.bartlomiejpluta.base.api.rule;
import com.bartlomiejpluta.base.api.game.entity.Entity; import com.bartlomiejpluta.base.api.entity.Entity;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;

View File

@@ -0,0 +1,9 @@
package com.bartlomiejpluta.base.api.rule;
import com.bartlomiejpluta.base.api.entity.Entity;
public interface Rule {
boolean when(Entity entity);
void then(Entity entity);
}

View File

@@ -0,0 +1,13 @@
package com.bartlomiejpluta.base.api.runner;
import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.input.Input;
import com.bartlomiejpluta.base.internal.gc.Disposable;
public interface GameRunner extends Disposable {
void init(Context context);
void input(Input input);
void update(float dt);
}

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.game.screen; package com.bartlomiejpluta.base.api.screen;
import org.joml.Vector2fc; import org.joml.Vector2fc;

View File

@@ -1,9 +0,0 @@
package com.bartlomiejpluta.base.api.snippet.animation;
import com.bartlomiejpluta.base.api.game.context.Context;
import com.bartlomiejpluta.base.api.game.map.layer.base.Layer;
import org.joml.Vector2fc;
public interface AnimationRunner {
void run(Context context, Layer layer, Vector2fc origin);
}

View File

@@ -1,8 +0,0 @@
package com.bartlomiejpluta.base.api.util.path;
import com.bartlomiejpluta.base.api.game.map.layer.object.ObjectLayer;
import com.bartlomiejpluta.base.api.game.move.Movable;
public interface PathSegment<T extends Movable> {
PathProgress perform(T movable, ObjectLayer layer, float dt);
}

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.internal.gc; package com.bartlomiejpluta.base.internal.gc;
public interface Cleanable { public interface Cleanable {
void cleanUp(); void cleanUp();

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.internal.gc; package com.bartlomiejpluta.base.internal.gc;
public interface Disposable { public interface Disposable {
void dispose(); void dispose();

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.internal.logic; package com.bartlomiejpluta.base.internal.logic;
public interface Updatable { public interface Updatable {
void update(float dt); void update(float dt);

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.internal.object; package com.bartlomiejpluta.base.internal.object;
import org.joml.Matrix4fc; import org.joml.Matrix4fc;
import org.joml.Vector2fc; import org.joml.Vector2fc;

View File

@@ -0,0 +1,8 @@
package com.bartlomiejpluta.base.internal.render;
import com.bartlomiejpluta.base.api.camera.Camera;
import com.bartlomiejpluta.base.api.screen.Screen;
public interface Renderable {
void render(Screen screen, Camera camera, ShaderManager shaderManager);
}

View File

@@ -1,6 +1,6 @@
package com.bartlomiejpluta.base.api.internal.render; package com.bartlomiejpluta.base.internal.render;
import com.bartlomiejpluta.base.api.internal.gc.Cleanable; import com.bartlomiejpluta.base.internal.gc.Cleanable;
import org.joml.*; import org.joml.*;
public interface ShaderManager extends Cleanable { public interface ShaderManager extends Cleanable {

View File

@@ -1,6 +1,6 @@
package com.bartlomiejpluta.base.api.internal.render; package com.bartlomiejpluta.base.internal.render;
import com.bartlomiejpluta.base.api.internal.gc.Disposable; import com.bartlomiejpluta.base.internal.gc.Disposable;
import org.joml.*; import org.joml.*;
public interface ShaderProgram extends Disposable { public interface ShaderProgram extends Disposable {

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.internal.render; package com.bartlomiejpluta.base.internal.render;
public interface Uniform { public interface Uniform {
void createUniform(ShaderProgram shaderProgram, String uniformName); void createUniform(ShaderProgram shaderProgram, String uniformName);

View File

@@ -1,11 +1,11 @@
package com.bartlomiejpluta.base.api.snippet.ai; package com.bartlomiejpluta.base.lib.ai;
import com.bartlomiejpluta.base.api.game.ai.AI; import com.bartlomiejpluta.base.api.ai.AI;
import com.bartlomiejpluta.base.api.game.ai.NPC; import com.bartlomiejpluta.base.api.ai.NPC;
import com.bartlomiejpluta.base.api.game.entity.Entity; import com.bartlomiejpluta.base.api.entity.Entity;
import com.bartlomiejpluta.base.api.game.map.layer.object.ObjectLayer; import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
import com.bartlomiejpluta.base.api.game.move.Direction; import com.bartlomiejpluta.base.api.move.Direction;
import com.bartlomiejpluta.base.api.util.pathfinder.PathFinder; import com.bartlomiejpluta.base.util.pathfinder.PathFinder;
import org.joml.Vector2i; import org.joml.Vector2i;
public class FollowEntityAI implements AI { public class FollowEntityAI implements AI {

View File

@@ -1,11 +1,11 @@
package com.bartlomiejpluta.base.api.snippet.ai; package com.bartlomiejpluta.base.lib.ai;
import com.bartlomiejpluta.base.api.game.ai.AI; import com.bartlomiejpluta.base.api.ai.AI;
import com.bartlomiejpluta.base.api.game.ai.NPC; import com.bartlomiejpluta.base.api.ai.NPC;
import com.bartlomiejpluta.base.api.game.map.layer.object.ObjectLayer; import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
import com.bartlomiejpluta.base.api.game.move.Direction; import com.bartlomiejpluta.base.api.move.Direction;
import com.bartlomiejpluta.base.api.util.path.NPCPath; import com.bartlomiejpluta.base.util.path.NPCPath;
import com.bartlomiejpluta.base.api.util.path.PathExecutor; import com.bartlomiejpluta.base.util.path.PathExecutor;
public class FollowPathAI implements AI { public class FollowPathAI implements AI {
private final PathExecutor<NPC> executor; private final PathExecutor<NPC> executor;

View File

@@ -1,7 +1,7 @@
package com.bartlomiejpluta.base.api.snippet.ai; package com.bartlomiejpluta.base.lib.ai;
import com.bartlomiejpluta.base.api.game.ai.AI; import com.bartlomiejpluta.base.api.ai.AI;
import com.bartlomiejpluta.base.api.game.map.layer.object.ObjectLayer; import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
public class NoopAI implements AI { public class NoopAI implements AI {

View File

@@ -1,9 +1,9 @@
package com.bartlomiejpluta.base.api.snippet.ai; package com.bartlomiejpluta.base.lib.ai;
import com.bartlomiejpluta.base.api.game.ai.AI; import com.bartlomiejpluta.base.api.ai.AI;
import com.bartlomiejpluta.base.api.game.ai.NPC; import com.bartlomiejpluta.base.api.ai.NPC;
import com.bartlomiejpluta.base.api.game.map.layer.object.ObjectLayer; import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
import com.bartlomiejpluta.base.api.game.move.Direction; import com.bartlomiejpluta.base.api.move.Direction;
import java.util.Random; import java.util.Random;

View File

@@ -0,0 +1,9 @@
package com.bartlomiejpluta.base.lib.animation;
import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.map.layer.base.Layer;
import org.joml.Vector2fc;
public interface AnimationRunner {
void run(Context context, Layer layer, Vector2fc origin);
}

View File

@@ -1,10 +1,10 @@
package com.bartlomiejpluta.base.api.snippet.animation; package com.bartlomiejpluta.base.lib.animation;
import com.bartlomiejpluta.base.api.game.animation.Animation; import com.bartlomiejpluta.base.api.animation.Animation;
import com.bartlomiejpluta.base.api.game.animation.AnimationDelegate; import com.bartlomiejpluta.base.api.animation.AnimationDelegate;
import com.bartlomiejpluta.base.api.game.camera.Camera; import com.bartlomiejpluta.base.api.camera.Camera;
import com.bartlomiejpluta.base.api.game.screen.Screen; import com.bartlomiejpluta.base.api.screen.Screen;
import com.bartlomiejpluta.base.api.internal.render.ShaderManager; import com.bartlomiejpluta.base.internal.render.ShaderManager;
public class DelayedAnimation extends AnimationDelegate { public class DelayedAnimation extends AnimationDelegate {
private final int delay; private final int delay;

View File

@@ -1,7 +1,7 @@
package com.bartlomiejpluta.base.api.snippet.animation; package com.bartlomiejpluta.base.lib.animation;
import com.bartlomiejpluta.base.api.game.context.Context; import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.game.map.layer.base.Layer; import com.bartlomiejpluta.base.api.map.layer.base.Layer;
import org.apache.commons.math3.distribution.NormalDistribution; import org.apache.commons.math3.distribution.NormalDistribution;
import org.apache.commons.math3.distribution.RealDistribution; import org.apache.commons.math3.distribution.RealDistribution;
import org.apache.commons.math3.distribution.UniformRealDistribution; import org.apache.commons.math3.distribution.UniformRealDistribution;

View File

@@ -1,9 +1,9 @@
package com.bartlomiejpluta.base.api.snippet.animation; package com.bartlomiejpluta.base.lib.animation;
import com.bartlomiejpluta.base.api.game.animation.Animation; import com.bartlomiejpluta.base.api.animation.Animation;
import com.bartlomiejpluta.base.api.game.context.Context; import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.game.map.layer.base.Layer; import com.bartlomiejpluta.base.api.map.layer.base.Layer;
import com.bartlomiejpluta.base.api.util.path.Path; import com.bartlomiejpluta.base.util.path.Path;
import org.joml.Vector2fc; import org.joml.Vector2fc;
public class SimpleAnimationRunner implements AnimationRunner { public class SimpleAnimationRunner implements AnimationRunner {

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.util.math; package com.bartlomiejpluta.base.util.math;
import static java.lang.Math.max; import static java.lang.Math.max;
import static java.lang.Math.min; import static java.lang.Math.min;

View File

@@ -1,8 +1,8 @@
package com.bartlomiejpluta.base.api.util.path; package com.bartlomiejpluta.base.util.path;
import com.bartlomiejpluta.base.api.game.map.layer.object.ObjectLayer; import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
import com.bartlomiejpluta.base.api.game.move.Direction; import com.bartlomiejpluta.base.api.move.Direction;
import com.bartlomiejpluta.base.api.game.move.Movable; import com.bartlomiejpluta.base.api.move.Movable;
import java.util.Objects; import java.util.Objects;

View File

@@ -1,7 +1,7 @@
package com.bartlomiejpluta.base.api.util.path; package com.bartlomiejpluta.base.util.path;
import com.bartlomiejpluta.base.api.game.ai.NPC; import com.bartlomiejpluta.base.api.ai.NPC;
import com.bartlomiejpluta.base.api.game.move.Direction; import com.bartlomiejpluta.base.api.move.Direction;
public class NPCPath extends Path<NPC> { public class NPCPath extends Path<NPC> {

View File

@@ -1,7 +1,7 @@
package com.bartlomiejpluta.base.api.util.path; package com.bartlomiejpluta.base.util.path;
import com.bartlomiejpluta.base.api.game.move.Direction; import com.bartlomiejpluta.base.api.move.Direction;
import com.bartlomiejpluta.base.api.game.move.Movable; import com.bartlomiejpluta.base.api.move.Movable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View File

@@ -1,7 +1,7 @@
package com.bartlomiejpluta.base.api.util.path; package com.bartlomiejpluta.base.util.path;
import com.bartlomiejpluta.base.api.game.map.layer.object.ObjectLayer; import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
import com.bartlomiejpluta.base.api.game.move.Movable; import com.bartlomiejpluta.base.api.move.Movable;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.api.util.path; package com.bartlomiejpluta.base.util.path;
public enum PathProgress { public enum PathProgress {
ONGOING, ONGOING,

View File

@@ -0,0 +1,8 @@
package com.bartlomiejpluta.base.util.path;
import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
import com.bartlomiejpluta.base.api.move.Movable;
public interface PathSegment<T extends Movable> {
PathProgress perform(T movable, ObjectLayer layer, float dt);
}

Some files were not shown because too many files have changed in this diff Show More