summaryrefslogtreecommitdiff
path: root/core/src/org
diff options
context:
space:
mode:
authorDmitrii Morozov <snoopdesigns@gmail.com>2025-01-04 12:41:47 +0100
committerDmitrii Morozov <snoopdesigns@gmail.com>2025-01-04 12:41:47 +0100
commitaf88f7f96b64acd013c964383028311d6d310d5e (patch)
tree4a92f7cd4637c32ff4e3673798a2ea13e0f17467 /core/src/org
parent1e17c39d9a9fda793abb03fee9db2c7ad8f595fa (diff)
Start from scratch
Diffstat (limited to 'core/src/org')
-rw-r--r--core/src/org/snoopdesigns/endless/EndlessGame.java66
-rw-r--r--core/src/org/snoopdesigns/endless/config/Config.java17
-rw-r--r--core/src/org/snoopdesigns/endless/context/Context.java37
-rw-r--r--core/src/org/snoopdesigns/endless/context/OnInit.java5
-rw-r--r--core/src/org/snoopdesigns/endless/input/DefaultInputProcessor.java51
-rw-r--r--core/src/org/snoopdesigns/endless/physics/Box2DDebugRenderer.java65
-rw-r--r--core/src/org/snoopdesigns/endless/physics/Box2DLocation.java46
-rw-r--r--core/src/org/snoopdesigns/endless/physics/Box2DRenderer.java22
-rw-r--r--core/src/org/snoopdesigns/endless/physics/PhysicalBody.java47
-rw-r--r--core/src/org/snoopdesigns/endless/physics/SteerablePhysicalBody.java115
-rw-r--r--core/src/org/snoopdesigns/endless/physics/WorldContext.java17
-rw-r--r--core/src/org/snoopdesigns/endless/physics/camera/CameraContext.java48
-rw-r--r--core/src/org/snoopdesigns/endless/physics/camera/CameraRenderer.java55
-rw-r--r--core/src/org/snoopdesigns/endless/renderer/CursorRenderer.java29
-rw-r--r--core/src/org/snoopdesigns/endless/renderer/DebugRenderer.java54
-rw-r--r--core/src/org/snoopdesigns/endless/renderer/Renderer.java11
-rw-r--r--core/src/org/snoopdesigns/endless/utils/ExitControllable.java17
-rw-r--r--core/src/org/snoopdesigns/endless/world/Controllable.java7
-rw-r--r--core/src/org/snoopdesigns/endless/world/ObjectsRenderer.java42
-rw-r--r--core/src/org/snoopdesigns/endless/world/Renderable.java9
-rw-r--r--core/src/org/snoopdesigns/endless/world/bg/BackgroundRenderer.java35
-rw-r--r--core/src/org/snoopdesigns/endless/world/effects/EngineEffect.java64
-rw-r--r--core/src/org/snoopdesigns/endless/world/player/PlayerShip.java145
-rw-r--r--core/src/org/snoopdesigns/endless/world/ship/SteerableEnemyShip.java141
-rw-r--r--core/src/org/snoopdesigns/endless/world/steering/ChaseSteering.java108
-rw-r--r--core/src/org/snoopdesigns/endless/world/steering/Steering.java5
-rw-r--r--core/src/org/snoopdesigns/endless/world/steering/SteeringApplicator.java9
27 files changed, 0 insertions, 1267 deletions
diff --git a/core/src/org/snoopdesigns/endless/EndlessGame.java b/core/src/org/snoopdesigns/endless/EndlessGame.java
deleted file mode 100644
index fc72c66..0000000
--- a/core/src/org/snoopdesigns/endless/EndlessGame.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package org.snoopdesigns.endless;
-
-import java.util.List;
-
-import com.badlogic.gdx.ApplicationAdapter;
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.InputMultiplexer;
-import com.badlogic.gdx.utils.ScreenUtils;
-import org.snoopdesigns.endless.context.Context;
-import org.snoopdesigns.endless.context.OnInit;
-import org.snoopdesigns.endless.physics.Box2DDebugRenderer;
-import org.snoopdesigns.endless.physics.Box2DRenderer;
-import org.snoopdesigns.endless.physics.camera.CameraRenderer;
-import org.snoopdesigns.endless.renderer.CursorRenderer;
-import org.snoopdesigns.endless.renderer.DebugRenderer;
-import org.snoopdesigns.endless.renderer.Renderer;
-import org.snoopdesigns.endless.utils.ExitControllable;
-import org.snoopdesigns.endless.world.ObjectsRenderer;
-import org.snoopdesigns.endless.world.bg.BackgroundRenderer;
-
-public class EndlessGame extends ApplicationAdapter {
-
- private final List<Renderer> renderers = List.of(
- new BackgroundRenderer(),
- new Box2DRenderer(),
- new CameraRenderer(),
- new Box2DDebugRenderer(),
- new ObjectsRenderer(),
- new CursorRenderer(),
- new DebugRenderer()
- );
-
- private final List<OnInit> intializers = List.of(
- new Context()
- );
-
- @Override
- public void create () {
- intializers.forEach(OnInit::create);
-
- final InputMultiplexer inputMultiplexer = new InputMultiplexer();
- renderers.forEach(inputMultiplexer::addProcessor);
- inputMultiplexer.addProcessor(Context.getInstance().getPlayerShip());
- inputMultiplexer.addProcessor(new ExitControllable());
- Gdx.input.setInputProcessor(inputMultiplexer);
-
- renderers.forEach(Renderer::create);
- }
-
- @Override
- public void render () {
- ScreenUtils.clear(0, 0, 0, 1);
- renderers.forEach(Renderer::render);
- }
-
- @Override
- public void resize(int width, int height) {
- renderers.forEach(renderer ->
- renderer.resize(width, height));
- }
-
- @Override
- public void dispose() {
- renderers.forEach(Renderer::dispose);
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/config/Config.java b/core/src/org/snoopdesigns/endless/config/Config.java
deleted file mode 100644
index 31b9d0e..0000000
--- a/core/src/org/snoopdesigns/endless/config/Config.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.snoopdesigns.endless.config;
-
-public final class Config {
- private static int screenWidth = 1900;
- private static int screenHeight = 1200;
-
- private Config() {
- }
-
- public static int getScreenWidth() {
- return screenWidth;
- }
-
- public static int getScreenHeight() {
- return screenHeight;
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/context/Context.java b/core/src/org/snoopdesigns/endless/context/Context.java
deleted file mode 100644
index 4081c87..0000000
--- a/core/src/org/snoopdesigns/endless/context/Context.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.snoopdesigns.endless.context;
-
-import org.snoopdesigns.endless.physics.WorldContext;
-import org.snoopdesigns.endless.physics.camera.CameraContext;
-import org.snoopdesigns.endless.world.player.PlayerShip;
-
-public final class Context implements OnInit {
- private static Context INSTANCE;
-
- private CameraContext cameraContext;
- private WorldContext worldContext;
- private PlayerShip playerShip;
-
- @Override
- public void create() {
- INSTANCE = new Context();
- INSTANCE.cameraContext = new CameraContext();
- INSTANCE.worldContext = new WorldContext();
- INSTANCE.playerShip = new PlayerShip();
- }
-
- public static Context getInstance() {
- return INSTANCE;
- }
-
- public CameraContext getCameraContext() {
- return cameraContext;
- }
-
- public WorldContext getWorldContext() {
- return worldContext;
- }
-
- public PlayerShip getPlayerShip() {
- return playerShip;
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/context/OnInit.java b/core/src/org/snoopdesigns/endless/context/OnInit.java
deleted file mode 100644
index 7b5678a..0000000
--- a/core/src/org/snoopdesigns/endless/context/OnInit.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package org.snoopdesigns.endless.context;
-
-public interface OnInit {
- void create();
-}
diff --git a/core/src/org/snoopdesigns/endless/input/DefaultInputProcessor.java b/core/src/org/snoopdesigns/endless/input/DefaultInputProcessor.java
deleted file mode 100644
index ca3f301..0000000
--- a/core/src/org/snoopdesigns/endless/input/DefaultInputProcessor.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package org.snoopdesigns.endless.input;
-
-import com.badlogic.gdx.InputProcessor;
-
-public interface DefaultInputProcessor extends InputProcessor {
-
- @Override
- default boolean keyDown(int keycode) {
- return false;
- }
-
- @Override
- default boolean keyUp(int keycode) {
- return false;
- }
-
- @Override
- default boolean keyTyped(char character) {
- return false;
- }
-
- @Override
- default boolean touchDown(int screenX, int screenY, int pointer, int button) {
- return false;
- }
-
- @Override
- default boolean touchUp(int screenX, int screenY, int pointer, int button) {
- return false;
- }
-
- @Override
- default boolean touchCancelled(int screenX, int screenY, int pointer, int button) {
- return false;
- }
-
- @Override
- default boolean touchDragged(int screenX, int screenY, int pointer) {
- return false;
- }
-
- @Override
- default boolean mouseMoved(int screenX, int screenY) {
- return false;
- }
-
- @Override
- default boolean scrolled(float amountX, float amountY) {
- return false;
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/physics/Box2DDebugRenderer.java b/core/src/org/snoopdesigns/endless/physics/Box2DDebugRenderer.java
deleted file mode 100644
index 9d7d4dd..0000000
--- a/core/src/org/snoopdesigns/endless/physics/Box2DDebugRenderer.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.snoopdesigns.endless.physics;
-
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.graphics.Color;
-import com.badlogic.gdx.graphics.g2d.BitmapFont;
-import com.badlogic.gdx.graphics.g2d.SpriteBatch;
-import com.badlogic.gdx.physics.box2d.Body;
-import com.badlogic.gdx.utils.Array;
-import org.snoopdesigns.endless.context.Context;
-import org.snoopdesigns.endless.renderer.Renderer;
-
-public class Box2DDebugRenderer implements Renderer {
-
- private com.badlogic.gdx.physics.box2d.Box2DDebugRenderer debugRenderer;
- private BitmapFont font;
- private SpriteBatch batch;
-
- @Override
- public void create() {
- debugRenderer = new com.badlogic.gdx.physics.box2d.Box2DDebugRenderer();
- debugRenderer.setDrawBodies(true);
- debugRenderer.setDrawVelocities(true);
- debugRenderer.setDrawAABBs(true);
-
- font = new BitmapFont(Gdx.files.internal("calibri.fnt"), false);
- font.setColor(Color.CYAN);
- font.getData().setScale(0.15f);
-
- batch = new SpriteBatch();
- }
-
- @Override
- public void render() {
- debugRenderer.render(
- Context.getInstance().getWorldContext().getWorld(),
- Context.getInstance().getCameraContext().getCameraProjection());
-
- final Array<Body> bodies = new Array<>();
- Context.getInstance().getWorldContext().getWorld().getBodies(bodies);
-
- batch.setProjectionMatrix(Context.getInstance().getCameraContext().getCameraProjection());
- batch.begin();
- bodies.forEach(body -> {
- final String debugText = String.format("""
- p %.1f %.1f
- a %.1f
- s %.1f m/s
- v %.1f %.1f
- """,
- body.getPosition().x,
- body.getPosition().y,
- body.getAngle(),
- body.getLinearVelocity().len(),
- body.getLinearVelocity().x,
- body.getLinearVelocity().y);
- font.draw(batch, debugText, body.getPosition().x + 5f, body.getPosition().y - 5f);
- });
- batch.end();
- }
-
- @Override
- public void dispose() {
- batch.dispose();
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/physics/Box2DLocation.java b/core/src/org/snoopdesigns/endless/physics/Box2DLocation.java
deleted file mode 100644
index 338b595..0000000
--- a/core/src/org/snoopdesigns/endless/physics/Box2DLocation.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package org.snoopdesigns.endless.physics;
-
-import com.badlogic.gdx.ai.utils.Location;
-import com.badlogic.gdx.math.Vector2;
-
-public class Box2DLocation implements Location<Vector2> {
- Vector2 position;
- float orientation;
-
- public Box2DLocation () {
- this.position = new Vector2();
- this.orientation = 0;
- }
-
- @Override
- public Vector2 getPosition () {
- return position;
- }
-
- @Override
- public float getOrientation () {
- return orientation;
- }
-
- @Override
- public void setOrientation (float orientation) {
- this.orientation = orientation;
- }
-
- @Override
- public Location<Vector2> newLocation () {
- return new Box2DLocation();
- }
-
- @Override
- public float vectorToAngle (Vector2 vector) {
- return (float)Math.atan2(-vector.x, vector.y);
- }
-
- @Override
- public Vector2 angleToVector (Vector2 outVector, float angle) {
- outVector.x = -(float)Math.sin(angle);
- outVector.y = (float)Math.cos(angle);
- return outVector;
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/physics/Box2DRenderer.java b/core/src/org/snoopdesigns/endless/physics/Box2DRenderer.java
deleted file mode 100644
index 641e397..0000000
--- a/core/src/org/snoopdesigns/endless/physics/Box2DRenderer.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.snoopdesigns.endless.physics;
-
-import com.badlogic.gdx.physics.box2d.Box2D;
-import org.snoopdesigns.endless.context.Context;
-import org.snoopdesigns.endless.renderer.Renderer;
-
-public class Box2DRenderer implements Renderer {
-
- @Override
- public void create() {
- Box2D.init();
- }
-
- @Override
- public void render() {
- Context.getInstance().getWorldContext().getWorld().step(1/60f, 6, 2);
- }
-
- @Override
- public void dispose() {
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/physics/PhysicalBody.java b/core/src/org/snoopdesigns/endless/physics/PhysicalBody.java
deleted file mode 100644
index 31204a9..0000000
--- a/core/src/org/snoopdesigns/endless/physics/PhysicalBody.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package org.snoopdesigns.endless.physics;
-
-import com.badlogic.gdx.math.Vector2;
-import com.badlogic.gdx.physics.box2d.Body;
-import com.badlogic.gdx.physics.box2d.BodyDef;
-import com.badlogic.gdx.physics.box2d.BodyDef.BodyType;
-import com.badlogic.gdx.physics.box2d.FixtureDef;
-import com.badlogic.gdx.physics.box2d.MassData;
-import org.snoopdesigns.endless.context.Context;
-
-public abstract class PhysicalBody {
-
- Body body;
-
- public abstract BodyType getBodyType();
- public abstract FixtureDef getFixture();
- public abstract float getMass();
- public abstract float getLinearDamping();
- public abstract float getMaxVelocity();
- public Vector2 getInitialPosition() {
- return new Vector2(0, 0);
- }
-
- public void initBody() {
- final BodyDef bodyDef = new BodyDef();
- bodyDef.type = getBodyType();
- bodyDef.position.set(getInitialPosition());
- body = Context.getInstance().getWorldContext().getWorld().createBody(bodyDef);
- body.createFixture(getFixture());
-
- final MassData massData = new MassData();
- massData.mass = getMass();
- getBody().setMassData(massData);
-
- getBody().setLinearDamping(getLinearDamping());
- }
-
- public void limitVelocity() {
- if (getBody().getLinearVelocity().len() > getMaxVelocity()) {
- getBody().setLinearVelocity(getBody().getLinearVelocity().limit(getMaxVelocity()));
- }
- }
-
- public Body getBody() {
- return body;
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/physics/SteerablePhysicalBody.java b/core/src/org/snoopdesigns/endless/physics/SteerablePhysicalBody.java
deleted file mode 100644
index 9e9a85c..0000000
--- a/core/src/org/snoopdesigns/endless/physics/SteerablePhysicalBody.java
+++ /dev/null
@@ -1,115 +0,0 @@
-package org.snoopdesigns.endless.physics;
-
-import com.badlogic.gdx.ai.steer.Steerable;
-import com.badlogic.gdx.ai.utils.Location;
-import com.badlogic.gdx.math.Vector2;
-
-public abstract class SteerablePhysicalBody extends PhysicalBody implements Steerable<Vector2> {
-
- public abstract float getMaxSpeed();
- public abstract float getMaxAcceleration();
- public abstract float getMaxRotationSpeed();
- public abstract float getMaxRotationAcceleration();
-
- @Override
- public Vector2 getLinearVelocity() {
- return getBody().getLinearVelocity();
- }
-
- @Override
- public float getAngularVelocity() {
- return getBody().getAngularVelocity();
- }
-
- @Override
- public float getBoundingRadius() {
- return 0.001f;
- }
-
- @Override
- public boolean isTagged() {
- return false;
- }
-
- @Override
- public void setTagged(boolean tagged) {
- }
-
- @Override
- public float getZeroLinearSpeedThreshold() {
- return 0.1f;
- }
-
- @Override
- public void setZeroLinearSpeedThreshold(float value) {
- }
-
- @Override
- public float getMaxLinearSpeed() {
- return getMaxSpeed();
- }
-
- @Override
- public void setMaxLinearSpeed(float maxLinearSpeed) {
- }
-
- @Override
- public float getMaxLinearAcceleration() {
- return getMaxAcceleration();
- }
-
- @Override
- public void setMaxLinearAcceleration(float maxLinearAcceleration) {
- }
-
- @Override
- public float getMaxAngularSpeed() {
- return getMaxRotationSpeed();
- }
-
- @Override
- public void setMaxAngularSpeed(float maxAngularSpeed) {
- }
-
- @Override
- public float getMaxAngularAcceleration() {
- return getMaxRotationAcceleration();
- }
-
- @Override
- public void setMaxAngularAcceleration(float maxAngularAcceleration) {
- }
-
- @Override
- public Vector2 getPosition() {
- return getBody().getPosition();
- }
-
- @Override
- public float getOrientation() {
- return getBody().getAngle();
- }
-
- @Override
- public void setOrientation(float orientation) {
- getBody().setTransform(getPosition(), orientation);
- }
-
- @Override
- public float vectorToAngle(Vector2 vector) {
- return vector.angleRad();
- }
-
- @Override
- public Vector2 angleToVector(Vector2 outVector, float angle) {
- final var tmpVector = new Vector2(1, 0).rotateRad(angle);
- outVector.x = tmpVector.x;
- outVector.y = tmpVector.y;
- return outVector;
- }
-
- @Override
- public Location<Vector2> newLocation() {
- return new Box2DLocation();
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/physics/WorldContext.java b/core/src/org/snoopdesigns/endless/physics/WorldContext.java
deleted file mode 100644
index 5f10ba8..0000000
--- a/core/src/org/snoopdesigns/endless/physics/WorldContext.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.snoopdesigns.endless.physics;
-
-import com.badlogic.gdx.math.Vector2;
-import com.badlogic.gdx.physics.box2d.World;
-
-public class WorldContext {
-
- private final World world;
-
- public WorldContext() {
- this.world = new World(new Vector2(0, 0), true);
- }
-
- public World getWorld() {
- return world;
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/physics/camera/CameraContext.java b/core/src/org/snoopdesigns/endless/physics/camera/CameraContext.java
deleted file mode 100644
index 635813c..0000000
--- a/core/src/org/snoopdesigns/endless/physics/camera/CameraContext.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package org.snoopdesigns.endless.physics.camera;
-
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.math.Matrix4;
-import com.badlogic.gdx.math.Vector2;
-
-public final class CameraContext {
-
- private static final float DEFAULT_WORLD_WIDTH = 300.0f;
-
- private final Vector2 position;
- private final Vector2 viewport;
- private float zoom;
- private Matrix4 cameraProjection;
-
- public CameraContext() {
- final float w = Gdx.graphics.getWidth();
- final float h = Gdx.graphics.getHeight();
-
- this.position = new Vector2(0, 0);
- this.zoom = 1.0f;
- this.viewport = new Vector2(DEFAULT_WORLD_WIDTH, DEFAULT_WORLD_WIDTH * (h / w));
- }
-
- public Matrix4 getCameraProjection() {
- return cameraProjection;
- }
-
- public void setCameraProjection(Matrix4 cameraProjection) {
- this.cameraProjection = cameraProjection;
- }
-
- public Vector2 getPosition() {
- return position;
- }
-
- public float getZoom() {
- return zoom;
- }
-
- public void setZoom(float zoom) {
- this.zoom = zoom;
- }
-
- public Vector2 getViewport() {
- return viewport;
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/physics/camera/CameraRenderer.java b/core/src/org/snoopdesigns/endless/physics/camera/CameraRenderer.java
deleted file mode 100644
index 165240a..0000000
--- a/core/src/org/snoopdesigns/endless/physics/camera/CameraRenderer.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.snoopdesigns.endless.physics.camera;
-
-import com.badlogic.gdx.graphics.OrthographicCamera;
-import com.badlogic.gdx.math.Vector2;
-import com.badlogic.gdx.utils.viewport.ExtendViewport;
-import com.badlogic.gdx.utils.viewport.Viewport;
-import org.snoopdesigns.endless.context.Context;
-import org.snoopdesigns.endless.renderer.Renderer;
-
-public class CameraRenderer implements Renderer {
-
- private static final float DEFAULT_WORLD_WIDTH = 300.0f;
- private static final float DEFAULT_WORLD_HEIGHT = 300.0f;
-
- private OrthographicCamera camera;
- private Viewport viewport;
-
- @Override
- public void create() {
- camera = new OrthographicCamera();
- camera.zoom = Context.getInstance().getCameraContext().getZoom();
- viewport = new ExtendViewport(
- Context.getInstance().getCameraContext().getViewport().x,
- Context.getInstance().getCameraContext().getViewport().y,
- camera);
- camera.update();
- Context.getInstance().getCameraContext().setCameraProjection(camera.combined);
- }
-
- @Override
- public void render() {
- final Vector2 cameraPosition = Context.getInstance().getCameraContext().getPosition();
- camera.position.set(cameraPosition.x, cameraPosition.y, 0);
- camera.update();
- }
-
- @Override
- public void dispose() {
- }
-
- @Override
- public void resize(int width, int height) {
- viewport.update(width, height);
- Context.getInstance().getCameraContext().getViewport().set(
- camera.viewportWidth,
- camera.viewportHeight);
- }
-
- @Override
- public boolean scrolled(float amountX, float amountY) {
- camera.zoom += amountY / 10f;
- Context.getInstance().getCameraContext().setZoom(camera.zoom);
- return true;
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/renderer/CursorRenderer.java b/core/src/org/snoopdesigns/endless/renderer/CursorRenderer.java
deleted file mode 100644
index 05b12f9..0000000
--- a/core/src/org/snoopdesigns/endless/renderer/CursorRenderer.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.snoopdesigns.endless.renderer;
-
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.graphics.Cursor;
-import com.badlogic.gdx.graphics.Pixmap;
-
-public class CursorRenderer implements Renderer {
-
- private Pixmap crosshair;
-
- @Override
- public void create() {
- crosshair = new Pixmap(Gdx.files.internal("crosshair.png"));
- final Cursor cursor = Gdx.graphics.newCursor(crosshair,
- crosshair.getWidth() / 2,
- crosshair.getHeight() / 2);
- Gdx.graphics.setCursor(cursor);
- }
-
- @Override
- public void render() {
-
- }
-
- @Override
- public void dispose() {
- crosshair.dispose();
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/renderer/DebugRenderer.java b/core/src/org/snoopdesigns/endless/renderer/DebugRenderer.java
deleted file mode 100644
index cbf8a07..0000000
--- a/core/src/org/snoopdesigns/endless/renderer/DebugRenderer.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.snoopdesigns.endless.renderer;
-
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.graphics.Color;
-import com.badlogic.gdx.graphics.g2d.BitmapFont;
-import com.badlogic.gdx.graphics.g2d.SpriteBatch;
-import org.snoopdesigns.endless.context.Context;
-
-public class DebugRenderer implements Renderer {
-
- private BitmapFont font;
- private SpriteBatch batch;
-
- @Override
- public void create() {
- font = new BitmapFont(Gdx.files.internal("calibri.fnt"), false);
- font.setColor(Color.GREEN);
- font.getData().setScale(0.7f);
- batch = new SpriteBatch();
- }
-
- @Override
- public void render() {
- batch.begin();
- final String debugText = String.format("""
- window size %d x %d
- viewport %.1f %.1f
- zoom %.1f
- position %.1f %.1f
- angle %.1f
- speed %.1f m/s
- velocity %.1f %.1f
- """,
- Gdx.graphics.getWidth(),
- Gdx.graphics.getHeight(),
- Context.getInstance().getCameraContext().getViewport().x,
- Context.getInstance().getCameraContext().getViewport().y,
- Context.getInstance().getCameraContext().getZoom(),
- Context.getInstance().getCameraContext().getPosition().x,
- Context.getInstance().getCameraContext().getPosition().y,
- Context.getInstance().getPlayerShip().getBody().getAngle(),
- Context.getInstance().getPlayerShip().getBody().getLinearVelocity().len(),
- Context.getInstance().getPlayerShip().getBody().getLinearVelocity().x,
- Context.getInstance().getPlayerShip().getBody().getLinearVelocity().y);
- font.draw(batch, debugText, 10f, 190f);
- batch.end();
- }
-
- @Override
- public void dispose() {
- font.dispose();
- batch.dispose();
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/renderer/Renderer.java b/core/src/org/snoopdesigns/endless/renderer/Renderer.java
deleted file mode 100644
index a98e36a..0000000
--- a/core/src/org/snoopdesigns/endless/renderer/Renderer.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.snoopdesigns.endless.renderer;
-
-import org.snoopdesigns.endless.input.DefaultInputProcessor;
-
-public interface Renderer extends DefaultInputProcessor {
- void create();
- void render();
- void dispose();
- default void resize(int width, int height) {
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/utils/ExitControllable.java b/core/src/org/snoopdesigns/endless/utils/ExitControllable.java
deleted file mode 100644
index 12469a6..0000000
--- a/core/src/org/snoopdesigns/endless/utils/ExitControllable.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.snoopdesigns.endless.utils;
-
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.Input.Keys;
-import org.snoopdesigns.endless.world.Controllable;
-
-public class ExitControllable implements Controllable {
-
- @Override
- public boolean keyDown(int keycode) {
- if (keycode == Keys.ESCAPE) {
- Gdx.app.exit();
- System.exit(1);
- }
- return true;
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/world/Controllable.java b/core/src/org/snoopdesigns/endless/world/Controllable.java
deleted file mode 100644
index 77f1181..0000000
--- a/core/src/org/snoopdesigns/endless/world/Controllable.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.snoopdesigns.endless.world;
-
-import org.snoopdesigns.endless.input.DefaultInputProcessor;
-
-public interface Controllable extends DefaultInputProcessor {
-
-}
diff --git a/core/src/org/snoopdesigns/endless/world/ObjectsRenderer.java b/core/src/org/snoopdesigns/endless/world/ObjectsRenderer.java
deleted file mode 100644
index 3055532..0000000
--- a/core/src/org/snoopdesigns/endless/world/ObjectsRenderer.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.snoopdesigns.endless.world;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.stream.IntStream;
-
-import com.badlogic.gdx.graphics.g2d.SpriteBatch;
-import org.snoopdesigns.endless.context.Context;
-import org.snoopdesigns.endless.renderer.Renderer;
-import org.snoopdesigns.endless.world.ship.SteerableEnemyShip;
-
-public class ObjectsRenderer implements Renderer {
-
- private final List<Renderable> renderables = new ArrayList<>();
-
- private SpriteBatch batch;
-
- @Override
- public void create() {
- batch = new SpriteBatch();
- renderables.add(Context.getInstance().getPlayerShip());
-
- IntStream.range(0, 3).forEach(i ->
- renderables.add(new SteerableEnemyShip()));
-
- renderables.forEach(Renderable::create);
- }
-
- @Override
- public void render() {
- batch.setProjectionMatrix(Context.getInstance().getCameraContext().getCameraProjection());
- batch.begin();
- renderables.forEach(renderable -> renderable.render(batch));
- batch.end();
- }
-
- @Override
- public void dispose() {
- batch.dispose();
- renderables.forEach(Renderable::dispose);
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/world/Renderable.java b/core/src/org/snoopdesigns/endless/world/Renderable.java
deleted file mode 100644
index e5ba159..0000000
--- a/core/src/org/snoopdesigns/endless/world/Renderable.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package org.snoopdesigns.endless.world;
-
-import com.badlogic.gdx.graphics.g2d.SpriteBatch;
-
-public interface Renderable {
- void create();
- void render(final SpriteBatch batch);
- void dispose();
-}
diff --git a/core/src/org/snoopdesigns/endless/world/bg/BackgroundRenderer.java b/core/src/org/snoopdesigns/endless/world/bg/BackgroundRenderer.java
deleted file mode 100644
index 094a827..0000000
--- a/core/src/org/snoopdesigns/endless/world/bg/BackgroundRenderer.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.snoopdesigns.endless.world.bg;
-
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.graphics.Texture;
-import com.badlogic.gdx.graphics.g2d.Sprite;
-import com.badlogic.gdx.graphics.g2d.SpriteBatch;
-import org.snoopdesigns.endless.context.Context;
-import org.snoopdesigns.endless.renderer.Renderer;
-
-public class BackgroundRenderer implements Renderer {
-
- private SpriteBatch batch;
- private Sprite bgSprite;
-
- @Override
- public void create() {
- batch = new SpriteBatch();
- bgSprite = new Sprite(new Texture(Gdx.files.internal("bg.png")));
- bgSprite.setCenter(0, 0);
- bgSprite.setSize(1000, 1000);
- }
-
- @Override
- public void render() {
- batch.setProjectionMatrix(Context.getInstance().getCameraContext().getCameraProjection());
- batch.begin();
- bgSprite.draw(batch);
- batch.end();
- }
-
- @Override
- public void dispose() {
- batch.dispose();
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/world/effects/EngineEffect.java b/core/src/org/snoopdesigns/endless/world/effects/EngineEffect.java
deleted file mode 100644
index d6301db..0000000
--- a/core/src/org/snoopdesigns/endless/world/effects/EngineEffect.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package org.snoopdesigns.endless.world.effects;
-
-import java.util.LinkedList;
-import java.util.Queue;
-
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.graphics.g2d.ParticleEffect;
-import com.badlogic.gdx.graphics.g2d.SpriteBatch;
-import com.badlogic.gdx.math.MathUtils;
-import com.badlogic.gdx.math.Vector2;
-import org.snoopdesigns.endless.physics.PhysicalBody;
-import org.snoopdesigns.endless.world.Renderable;
-
-public class EngineEffect implements Renderable {
- private final Queue<ParticleEffect> effects = new LinkedList<>();
- private final PhysicalBody body;
-
- public EngineEffect(PhysicalBody body) {
- this.body = body;
- }
-
- public void start() {
- final ParticleEffect effect = new ParticleEffect();
- effect.load(Gdx.files.internal("particles.p"), Gdx.files.internal(""));
- effect.setPosition(
- body.getBody().getPosition().x,
- body.getBody().getPosition().y);
- effect.start();
- effects.add(effect);
- }
-
- public void stop() {
- effects.forEach(ParticleEffect::allowCompletion);
- }
-
- @Override
- public void create() {
- }
-
- @Override
- public void render(SpriteBatch batch) {
- final float x = body.getBody().getPosition().x;
- final float y = body.getBody().getPosition().y;
-
- effects.removeIf(ParticleEffect::isComplete);
- effects.forEach(effect -> {
- final Vector2 effectOffset = new Vector2(-5f, 0f).rotateRad(body.getBody().getAngle());
- effect.setPosition(x + effectOffset.x, y + effectOffset.y);
- effect.getEmitters().forEach(emitter -> {
- final float effectRotation = MathUtils.radDeg * body.getBody().getAngle();
- emitter.getAngle().setLow(effectRotation);
- emitter.getAngle().setHigh(effectRotation);
- });
- });
-
- effects.forEach(effect ->
- effect.draw(batch, Gdx.graphics.getDeltaTime()));
- }
-
- @Override
- public void dispose() {
-
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/world/player/PlayerShip.java b/core/src/org/snoopdesigns/endless/world/player/PlayerShip.java
deleted file mode 100644
index c844c24..0000000
--- a/core/src/org/snoopdesigns/endless/world/player/PlayerShip.java
+++ /dev/null
@@ -1,145 +0,0 @@
-package org.snoopdesigns.endless.world.player;
-
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.Input.Keys;
-import com.badlogic.gdx.graphics.Texture;
-import com.badlogic.gdx.graphics.g2d.Sprite;
-import com.badlogic.gdx.graphics.g2d.SpriteBatch;
-import com.badlogic.gdx.math.MathUtils;
-import com.badlogic.gdx.math.Vector2;
-import com.badlogic.gdx.physics.box2d.BodyDef.BodyType;
-import com.badlogic.gdx.physics.box2d.CircleShape;
-import com.badlogic.gdx.physics.box2d.FixtureDef;
-import org.snoopdesigns.endless.context.Context;
-import org.snoopdesigns.endless.physics.PhysicalBody;
-import org.snoopdesigns.endless.world.Controllable;
-import org.snoopdesigns.endless.world.Renderable;
-import org.snoopdesigns.endless.world.effects.EngineEffect;
-
-public final class PlayerShip extends PhysicalBody implements Controllable, Renderable {
- private Sprite sprite;
- private EngineEffect effect;
-
- @Override
- public BodyType getBodyType() {
- return BodyType.DynamicBody;
- }
-
- @Override
- public FixtureDef getFixture() {
- final CircleShape circle = new CircleShape();
- circle.setRadius(5f);
- final FixtureDef fixtureDef = new FixtureDef();
- fixtureDef.shape = circle;
- return fixtureDef;
- }
-
- @Override
- public float getMass() {
- return 10000; // 10 tons
- }
-
- @Override
- public float getLinearDamping() {
- return 1.5f;
- }
-
- @Override
- public float getMaxVelocity() {
- return 100f; // meters per second
- }
-
- @Override
- public void create() {
- initBody();
-
- final Texture texture = new Texture(Gdx.files.internal("ship.png"));
- sprite = new Sprite(texture);
-
- final float expectedSizeInMeters = 15f;
- final Vector2 scale = new Vector2(
- expectedSizeInMeters / sprite.getHeight(),
- expectedSizeInMeters / sprite.getWidth());
-
- sprite.setScale(scale.x, scale.y);
-
- effect = new EngineEffect(this);
- }
-
- @Override
- public void render(SpriteBatch batch) {
- handleInput();
- handleMousePosition();
-
- final float x = getBody().getPosition().x;
- final float y = getBody().getPosition().y;
- Context.getInstance().getCameraContext().getPosition().set(x, y);
-
- sprite.setCenter(x, y);
- sprite.setRotation(MathUtils.radDeg * getBody().getAngle());
-
- sprite.draw(batch);
- effect.render(batch);
-
- limitVelocity();
- }
-
- @Override
- public void dispose() {
- }
-
- @Override
- public boolean keyDown(int keycode) {
- if (keycode == Keys.SPACE) {
- effect.start();
- return true;
- }
- return false;
- }
-
- @Override
- public boolean keyUp(int keycode) {
- if (keycode == Keys.SPACE) {
- effect.stop();
- return true;
- }
- return false;
- }
-
- private void speedUp() {
- final float force = getBody().getMass() * 200; // force 200x times more than self mass
- final Vector2 impulse = new Vector2(force, 0).rotateRad(getBody().getAngle());
- getBody().applyForceToCenter(impulse, true);
- }
-
- private void handleInput() {
- if (Gdx.input.isKeyPressed(Keys.SPACE)) {
- speedUp();
- }
- }
-
- private void handleMousePosition() {
- final float screenX = Gdx.input.getX();
- final float screenY = Gdx.input.getY();
- final float screenCenterX = (float) Gdx.graphics.getWidth() / 2;
- final float screenCenterY = (float) Gdx.graphics.getHeight() / 2;
- final float effectiveViewportWidth = Context.getInstance().getCameraContext().getViewport().x *
- Context.getInstance().getCameraContext().getZoom();
- final float effectiveViewportHeight = Context.getInstance().getCameraContext().getViewport().y *
- Context.getInstance().getCameraContext().getZoom();
-
- final float directionX = (screenX - screenCenterX) * (effectiveViewportWidth / Gdx.graphics.getWidth());
- final float directionY = ((Gdx.graphics.getHeight() - screenY) - screenCenterY) * (effectiveViewportHeight / Gdx.graphics.getHeight());
-
- final Vector2 direction = new Vector2(directionX, directionY);
- float rotationRad = direction.angleRad();
-
- float c = 10; //speed of rotation
- getBody().setAngularVelocity(c * (angleDifference(rotationRad, getBody().getAngle())));
- }
-
- public static float angleDifference(float angle1, float angle2) {
- float diff = (angle1 - angle2) % (MathUtils.PI * 2);
- return diff < -1 * MathUtils.PI ? diff + 2 * MathUtils.PI : diff;
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/world/ship/SteerableEnemyShip.java b/core/src/org/snoopdesigns/endless/world/ship/SteerableEnemyShip.java
deleted file mode 100644
index e8d429c..0000000
--- a/core/src/org/snoopdesigns/endless/world/ship/SteerableEnemyShip.java
+++ /dev/null
@@ -1,141 +0,0 @@
-package org.snoopdesigns.endless.world.ship;
-
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.graphics.Texture;
-import com.badlogic.gdx.graphics.g2d.Sprite;
-import com.badlogic.gdx.graphics.g2d.SpriteBatch;
-import com.badlogic.gdx.math.MathUtils;
-import com.badlogic.gdx.math.Vector2;
-import com.badlogic.gdx.physics.box2d.BodyDef.BodyType;
-import com.badlogic.gdx.physics.box2d.CircleShape;
-import com.badlogic.gdx.physics.box2d.FixtureDef;
-import org.snoopdesigns.endless.physics.SteerablePhysicalBody;
-import org.snoopdesigns.endless.world.Renderable;
-import org.snoopdesigns.endless.world.effects.EngineEffect;
-import org.snoopdesigns.endless.world.steering.ChaseSteering;
-import org.snoopdesigns.endless.world.steering.Steering;
-import org.snoopdesigns.endless.world.steering.SteeringApplicator;
-
-public class SteerableEnemyShip extends SteerablePhysicalBody implements Renderable {
-
- private Sprite sprite;
- private EngineEffect engineEffect;
- private Steering steering;
-
- @Override
- public BodyType getBodyType() {
- return BodyType.DynamicBody;
- }
-
- @Override
- public FixtureDef getFixture() {
- final CircleShape circle = new CircleShape();
- circle.setRadius(7f);
- final FixtureDef fixtureDef = new FixtureDef();
- fixtureDef.shape = circle;
- return fixtureDef;
- }
-
- @Override
- public Vector2 getInitialPosition() {
- return new Vector2(MathUtils.random(150), MathUtils.random(150));
- }
-
- @Override
- public void create() {
- initBody();
-
- final Texture texture = new Texture(Gdx.files.internal("ship.png"));
- sprite = new Sprite(texture);
- final float expectedSizeInMeters = 15f;
- final Vector2 scale = new Vector2(
- expectedSizeInMeters / sprite.getHeight(),
- expectedSizeInMeters / sprite.getWidth());
- sprite.setScale(scale.x, scale.y);
- sprite.setRotation(MathUtils.radDeg * getBody().getAngle());
-
- engineEffect = new EngineEffect(this);
- steering = new ChaseSteering(this, 120f, 90f, new SteeringApplicator() {
-
- private boolean speedUp = false;
-
- @Override
- public void applyAngularVelocity(float angular) {
- getBody().setAngularVelocity(angular);
- }
-
- @Override
- public void applyLinearVelocity(Vector2 linear) {
- speedUp(linear);
- if (!speedUp) {
- engineEffect.start();
- }
- speedUp = true;
- }
-
- @Override
- public void stopLinearVelocity() {
- engineEffect.stop();
- speedUp = false;
- }
- });
- }
- @Override
- public void render(SpriteBatch batch) {
- steering.calculate();
-
- sprite.setCenter(getBody().getPosition().x, getBody().getPosition().y);
- sprite.setRotation(MathUtils.radDeg * getBody().getAngle());
- sprite.draw(batch);
-
- engineEffect.render(batch);
-
- // TODO
- limitVelocity();
- }
-
- @Override
- public void dispose() {
- }
-
- private void speedUp(final Vector2 force) {
- final float forceToApply = getBody().getMass() * 200; // force 200x times more than self mass
- final Vector2 impulse = new Vector2(forceToApply, 0).rotateRad(getBody().getAngle());
- getBody().applyForceToCenter(impulse, true);
- }
-
- @Override
- public float getMass() {
- return 10000;
- }
-
- @Override
- public float getLinearDamping() {
- return 1.5f;
- }
-
- @Override
- public float getMaxVelocity() {
- return getMaxSpeed();
- }
-
- @Override
- public float getMaxSpeed() {
- return 90f;
- }
-
- @Override
- public float getMaxAcceleration() {
- return 50000f;
- }
-
- @Override
- public float getMaxRotationSpeed() {
- return 5f;
- }
-
- @Override
- public float getMaxRotationAcceleration() {
- return 5f;
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/world/steering/ChaseSteering.java b/core/src/org/snoopdesigns/endless/world/steering/ChaseSteering.java
deleted file mode 100644
index 3ac3ac7..0000000
--- a/core/src/org/snoopdesigns/endless/world/steering/ChaseSteering.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package org.snoopdesigns.endless.world.steering;
-
-import java.util.List;
-
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.ai.steer.SteeringAcceleration;
-import com.badlogic.gdx.ai.steer.SteeringBehavior;
-import com.badlogic.gdx.ai.steer.behaviors.Arrive;
-import com.badlogic.gdx.ai.steer.behaviors.BlendedSteering;
-import com.badlogic.gdx.ai.steer.behaviors.Face;
-import com.badlogic.gdx.ai.utils.Location;
-import com.badlogic.gdx.math.MathUtils;
-import com.badlogic.gdx.math.Vector2;
-import org.snoopdesigns.endless.context.Context;
-import org.snoopdesigns.endless.physics.Box2DLocation;
-import org.snoopdesigns.endless.physics.SteerablePhysicalBody;
-
-public class ChaseSteering implements Steering {
-
- private final SteeringAcceleration<Vector2> steeringOutput = new SteeringAcceleration<>(new Vector2());
- private final BlendedSteering<Vector2> steeringCombination;
- private final Location<Vector2> positionTarget;
- private final Location<Vector2> faceTarget;
- private final SteeringApplicator steeringApplicator;
- private final SteerablePhysicalBody steerablePhysicalBody;
- private final Vector2 lastVelocity = new Vector2(0f, 0f);
- private final float maxDistance;
- private final float minDistance;
- private float targetDirection;
-
- public ChaseSteering(final SteerablePhysicalBody steerablePhysicalBody,
- final float maxDistance,
- final float minDistance,
- final SteeringApplicator steeringApplicator) {
- this.steerablePhysicalBody = steerablePhysicalBody;
- this.maxDistance = maxDistance;
- this.minDistance = minDistance;
- this.steeringApplicator = steeringApplicator;
-
- positionTarget = new Box2DLocation();
- faceTarget = new Box2DLocation();
-
- steeringCombination = new BlendedSteering<>(steerablePhysicalBody);
- getSteeringBehaviours().forEach(steeringBehaviour ->
- steeringCombination.add(steeringBehaviour, 0.5f));
-
- targetDirection = MathUtils.random(MathUtils.PI2);
- }
-
- @Override
- public void calculate() {
- final Vector2 targetDisplacement = new Vector2(maxDistance, 0f).rotateRad(targetDirection);
- final float distanceToPlayer = new Vector2(
- steerablePhysicalBody.getBody().getPosition().x -
- Context.getInstance().getPlayerShip().getBody().getPosition().x,
- steerablePhysicalBody.getBody().getPosition().y -
- Context.getInstance().getPlayerShip().getBody().getPosition().y)
- .len();
- if (distanceToPlayer > maxDistance + 10f) {
- // Rotate target rotation point only of player is far away
- targetDirection += Gdx.graphics.getDeltaTime() / 1f;
- }
- final Vector2 displacement = targetDisplacement.limit(Math.max(0, (distanceToPlayer - minDistance)));
- final Vector2 targetPos = new Vector2(
- Context.getInstance().getPlayerShip().getBody().getPosition().x + displacement.x,
- Context.getInstance().getPlayerShip().getBody().getPosition().y + displacement.y);
-
- positionTarget.getPosition().set(targetPos);
- faceTarget.getPosition().set(positionTarget.getPosition());
-
- steeringCombination.calculateSteering(steeringOutput);
- if (distanceToPlayer <= minDistance) { // do not move, if close to player, only rotate
- steeringOutput.linear.setZero();
- }
-
- applySteering();
- }
-
- private void applySteering() {
- // Update position and linear velocity.
- if (steeringOutput.angular != 0) {
- // this method internally scales the torque by deltaTime
- steeringApplicator.applyAngularVelocity(steeringOutput.angular);
- }
-
- if (!steeringOutput.linear.isZero()) {
- if (steeringOutput.linear.len() >= lastVelocity.len() - 10) {
- steeringApplicator.applyLinearVelocity(steeringOutput.linear);
- } else {
- steeringApplicator.stopLinearVelocity();
- }
- lastVelocity.x = steeringOutput.linear.x;
- lastVelocity.y = steeringOutput.linear.y;
- } else {
- steeringApplicator.stopLinearVelocity();
- }
- }
-
- private List<SteeringBehavior<Vector2>> getSteeringBehaviours() {
- return List.of(
- new Face<>(steerablePhysicalBody, faceTarget),
- new Arrive<>(steerablePhysicalBody, positionTarget)
- .setTimeToTarget(0.1f)
- .setArrivalTolerance(10f)
- .setDecelerationRadius(100f)
- );
- }
-}
diff --git a/core/src/org/snoopdesigns/endless/world/steering/Steering.java b/core/src/org/snoopdesigns/endless/world/steering/Steering.java
deleted file mode 100644
index c13b575..0000000
--- a/core/src/org/snoopdesigns/endless/world/steering/Steering.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package org.snoopdesigns.endless.world.steering;
-
-public interface Steering {
- void calculate();
-}
diff --git a/core/src/org/snoopdesigns/endless/world/steering/SteeringApplicator.java b/core/src/org/snoopdesigns/endless/world/steering/SteeringApplicator.java
deleted file mode 100644
index d683465..0000000
--- a/core/src/org/snoopdesigns/endless/world/steering/SteeringApplicator.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package org.snoopdesigns.endless.world.steering;
-
-import com.badlogic.gdx.math.Vector2;
-
-public interface SteeringApplicator {
- void applyAngularVelocity(float angular);
- void applyLinearVelocity(Vector2 linear);
- void stopLinearVelocity();
-}