Move Direction enum to :API | remove "world" package segment

This commit is contained in:
2021-03-02 09:29:43 +01:00
parent 814ec50267
commit 8b012b8584
13 changed files with 41 additions and 47 deletions

View File

@@ -0,0 +1,16 @@
package com.bartlomiejpluta.base.api.entity;
public enum Direction {
UP(0, -1),
DOWN(0, 1),
LEFT(-1, 0),
RIGHT(1, 0);
public final int x;
public final int y;
Direction(int x, int y) {
this.x = x;
this.y = y;
}
}

View File

@@ -1,4 +1,4 @@
package com.bartlomiejpluta.base.game.world.animation;
package com.bartlomiejpluta.base.game.animation;
import com.bartlomiejpluta.base.core.gl.object.material.Material;
import com.bartlomiejpluta.base.core.gl.object.mesh.Mesh;

View File

@@ -1,6 +1,6 @@
package com.bartlomiejpluta.base.game.world.entity.config;
package com.bartlomiejpluta.base.game.entity.config;
import com.bartlomiejpluta.base.game.world.movement.Direction;
import com.bartlomiejpluta.base.api.entity.Direction;
import lombok.Data;
import org.joml.Vector2i;
import org.springframework.boot.context.properties.ConfigurationProperties;

View File

@@ -1,11 +1,11 @@
package com.bartlomiejpluta.base.game.world.entity.manager;
package com.bartlomiejpluta.base.game.entity.manager;
import com.bartlomiejpluta.base.core.gl.object.material.Material;
import com.bartlomiejpluta.base.core.gl.object.mesh.Mesh;
import com.bartlomiejpluta.base.core.util.mesh.MeshManager;
import com.bartlomiejpluta.base.game.entity.config.EntitySpriteConfiguration;
import com.bartlomiejpluta.base.game.entity.model.Entity;
import com.bartlomiejpluta.base.game.map.model.GameMap;
import com.bartlomiejpluta.base.game.world.entity.config.EntitySpriteConfiguration;
import com.bartlomiejpluta.base.game.world.entity.model.Entity;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;

View File

@@ -1,9 +1,9 @@
package com.bartlomiejpluta.base.game.world.entity.manager;
package com.bartlomiejpluta.base.game.entity.manager;
import com.bartlomiejpluta.base.core.gc.Cleanable;
import com.bartlomiejpluta.base.core.gl.object.material.Material;
import com.bartlomiejpluta.base.game.entity.model.Entity;
import com.bartlomiejpluta.base.game.map.model.GameMap;
import com.bartlomiejpluta.base.game.world.entity.model.Entity;
public interface EntityManager extends Cleanable {
Entity createEntity(Material material, GameMap map);

View File

@@ -1,10 +1,10 @@
package com.bartlomiejpluta.base.game.world.entity.model;
package com.bartlomiejpluta.base.game.entity.model;
import com.bartlomiejpluta.base.api.entity.Direction;
import com.bartlomiejpluta.base.core.gl.object.material.Material;
import com.bartlomiejpluta.base.core.gl.object.mesh.Mesh;
import com.bartlomiejpluta.base.game.world.movement.Direction;
import com.bartlomiejpluta.base.game.world.movement.MovableSprite;
import com.bartlomiejpluta.base.game.world.entity.config.EntitySpriteConfiguration;
import com.bartlomiejpluta.base.game.entity.config.EntitySpriteConfiguration;
import com.bartlomiejpluta.base.game.movement.MovableSprite;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;

View File

@@ -9,6 +9,7 @@ import com.bartlomiejpluta.base.core.profiling.time.TimeProfilerService;
import com.bartlomiejpluta.base.core.ui.Window;
import com.bartlomiejpluta.base.core.util.mesh.MeshManager;
import com.bartlomiejpluta.base.core.world.camera.Camera;
import com.bartlomiejpluta.base.game.entity.manager.EntityManager;
import com.bartlomiejpluta.base.game.image.manager.ImageManager;
import com.bartlomiejpluta.base.game.map.manager.MapManager;
import com.bartlomiejpluta.base.game.project.loader.ClassLoader;
@@ -16,7 +17,6 @@ import com.bartlomiejpluta.base.game.project.loader.ProjectLoader;
import com.bartlomiejpluta.base.game.project.model.Project;
import com.bartlomiejpluta.base.game.project.model.RenderableContext;
import com.bartlomiejpluta.base.game.tileset.manager.TileSetManager;
import com.bartlomiejpluta.base.game.world.entity.manager.EntityManager;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;

View File

@@ -1,11 +1,11 @@
package com.bartlomiejpluta.base.game.map.layer.object;
import com.bartlomiejpluta.base.api.entity.Direction;
import com.bartlomiejpluta.base.core.gl.shader.manager.ShaderManager;
import com.bartlomiejpluta.base.core.ui.Window;
import com.bartlomiejpluta.base.core.world.camera.Camera;
import com.bartlomiejpluta.base.game.map.layer.base.Layer;
import com.bartlomiejpluta.base.game.world.movement.Direction;
import com.bartlomiejpluta.base.game.world.movement.MovableSprite;
import com.bartlomiejpluta.base.game.movement.MovableSprite;
import org.joml.Vector2i;
import java.util.List;

View File

@@ -14,9 +14,9 @@ import com.bartlomiejpluta.base.game.map.layer.image.ImageLayerMode;
import com.bartlomiejpluta.base.game.map.layer.object.ObjectLayer;
import com.bartlomiejpluta.base.game.map.layer.object.PassageAbility;
import com.bartlomiejpluta.base.game.map.layer.tile.TileLayer;
import com.bartlomiejpluta.base.game.movement.MovableSprite;
import com.bartlomiejpluta.base.game.movement.Movement;
import com.bartlomiejpluta.base.game.tileset.model.TileSet;
import com.bartlomiejpluta.base.game.world.movement.MovableSprite;
import com.bartlomiejpluta.base.game.world.movement.Movement;
import lombok.Getter;
import lombok.NonNull;
import org.joml.Vector2f;

View File

@@ -1,9 +1,10 @@
package com.bartlomiejpluta.base.game.world.movement;
package com.bartlomiejpluta.base.game.movement;
import com.bartlomiejpluta.base.api.entity.Direction;
import com.bartlomiejpluta.base.core.gl.object.material.Material;
import com.bartlomiejpluta.base.core.gl.object.mesh.Mesh;
import com.bartlomiejpluta.base.core.logic.Updatable;
import com.bartlomiejpluta.base.game.world.animation.AnimatedSprite;
import com.bartlomiejpluta.base.game.animation.AnimatedSprite;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import org.joml.Vector2f;
@@ -56,7 +57,7 @@ public abstract class MovableSprite extends AnimatedSprite implements Updatable
}
var speed = new Vector2f(coordinateStepSize).div(framesToCrossOneTile);
movementVector = direction.asFloatVector().mul(speed);
movementVector = new Vector2f(direction.x, direction.y).mul(speed);
moveTime = framesToCrossOneTile;
return true;

View File

@@ -1,5 +1,6 @@
package com.bartlomiejpluta.base.game.world.movement;
package com.bartlomiejpluta.base.game.movement;
import com.bartlomiejpluta.base.api.entity.Direction;
import lombok.AccessLevel;
import lombok.Data;
import lombok.RequiredArgsConstructor;
@@ -22,7 +23,7 @@ public class Movement {
}
public Vector2i getTargetCoordinate() {
return direction.asIntVector().add(object.getCoordinates());
return new Vector2i(direction.x, direction.y).add(object.getCoordinates());
}
public Movement another() {

View File

@@ -10,13 +10,13 @@ import com.bartlomiejpluta.base.core.logic.Updatable;
import com.bartlomiejpluta.base.core.ui.Window;
import com.bartlomiejpluta.base.core.util.mesh.MeshManager;
import com.bartlomiejpluta.base.core.world.camera.Camera;
import com.bartlomiejpluta.base.game.entity.manager.EntityManager;
import com.bartlomiejpluta.base.game.image.manager.ImageManager;
import com.bartlomiejpluta.base.game.input.GLFWKeyboard;
import com.bartlomiejpluta.base.game.map.manager.MapManager;
import com.bartlomiejpluta.base.game.map.model.GameMap;
import com.bartlomiejpluta.base.game.project.loader.ClassLoader;
import com.bartlomiejpluta.base.game.tileset.manager.TileSetManager;
import com.bartlomiejpluta.base.game.world.entity.manager.EntityManager;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import org.springframework.beans.factory.annotation.Autowired;

View File

@@ -1,24 +0,0 @@
package com.bartlomiejpluta.base.game.world.movement;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import org.joml.Vector2f;
import org.joml.Vector2i;
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
public enum Direction {
UP(new Vector2i(0, -1)),
DOWN(new Vector2i(0, 1)),
LEFT(new Vector2i(-1, 0)),
RIGHT(new Vector2i(1, 0));
private final Vector2i vector;
public Vector2i asIntVector() {
return new Vector2i(vector);
}
public Vector2f asFloatVector() {
return new Vector2f(vector);
}
}