Replace custom Vector with JOML's Vector2* in :API
This commit is contained in:
@@ -2,7 +2,6 @@ package com.bartlomiejpluta.base.game.entity.model;
|
||||
|
||||
import com.bartlomiejpluta.base.api.entity.Direction;
|
||||
import com.bartlomiejpluta.base.api.entity.Entity;
|
||||
import com.bartlomiejpluta.base.api.geo.Vector;
|
||||
import com.bartlomiejpluta.base.core.gl.object.material.Material;
|
||||
import com.bartlomiejpluta.base.core.gl.object.mesh.Mesh;
|
||||
import com.bartlomiejpluta.base.core.util.math.MathUtil;
|
||||
@@ -64,11 +63,6 @@ public class DefaultEntity extends MovableSprite implements Entity {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCoordinates(Vector coordinates) {
|
||||
setCoordinates(coordinates.x, coordinates.y);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSpeed(float speed) {
|
||||
framesToCrossOneTile = (int) (1 / MathUtil.clamp(speed, Float.MIN_VALUE, 1.0));
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
package com.bartlomiejpluta.base.game.map.layer.object;
|
||||
|
||||
import com.bartlomiejpluta.base.api.entity.Direction;
|
||||
import com.bartlomiejpluta.base.api.geo.Vector;
|
||||
import com.bartlomiejpluta.base.api.map.PassageAbility;
|
||||
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.movement.MovableSprite;
|
||||
import org.joml.Vector2i;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -33,7 +33,7 @@ public class ObjectLayer implements Layer {
|
||||
passageMap[row][column] = passageAbility;
|
||||
}
|
||||
|
||||
public boolean isMovementPossible(Vector source, Vector target, Direction direction) {
|
||||
public boolean isMovementPossible(Vector2i source, Vector2i target, Direction direction) {
|
||||
var isTargetReachable = switch (passageMap[target.y][target.x]) {
|
||||
case UP_ONLY -> direction != Direction.DOWN;
|
||||
case DOWN_ONLY -> direction != Direction.UP;
|
||||
|
||||
@@ -2,10 +2,10 @@ package com.bartlomiejpluta.base.game.movement;
|
||||
|
||||
import com.bartlomiejpluta.base.api.entity.Direction;
|
||||
import com.bartlomiejpluta.base.api.entity.Movement;
|
||||
import com.bartlomiejpluta.base.api.geo.Vector;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Data;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.joml.Vector2i;
|
||||
|
||||
@Data
|
||||
@RequiredArgsConstructor(access = AccessLevel.PACKAGE)
|
||||
@@ -26,12 +26,12 @@ public class DefaultMovement implements Movement {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vector getFrom() {
|
||||
public Vector2i getFrom() {
|
||||
return object.getCoordinates();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vector getTo() {
|
||||
return getFrom().add(direction.vector);
|
||||
public Vector2i getTo() {
|
||||
return direction.asVector().add(object.getCoordinates());
|
||||
}
|
||||
}
|
||||
@@ -2,12 +2,12 @@ package com.bartlomiejpluta.base.game.movement;
|
||||
|
||||
import com.bartlomiejpluta.base.api.entity.Direction;
|
||||
import com.bartlomiejpluta.base.api.entity.Movement;
|
||||
import com.bartlomiejpluta.base.api.geo.Vector;
|
||||
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.animation.AnimatedSprite;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import org.joml.Vector2f;
|
||||
import org.joml.Vector2i;
|
||||
|
||||
@@ -18,6 +18,7 @@ public abstract class MovableSprite extends AnimatedSprite implements Updatable
|
||||
private int moveTime = 0;
|
||||
private Vector2f movementVector;
|
||||
|
||||
@Getter
|
||||
private final Vector2i coordinates = new Vector2i(0, 0);
|
||||
|
||||
protected int framesToCrossOneTile = 1;
|
||||
@@ -63,27 +64,20 @@ public abstract class MovableSprite extends AnimatedSprite implements Updatable
|
||||
return true;
|
||||
}
|
||||
|
||||
public Vector getCoordinates() {
|
||||
return Vector.of(coordinates.x, coordinates.y);
|
||||
}
|
||||
|
||||
public MovableSprite setCoordinates(int x, int y) {
|
||||
public void setCoordinates(int x, int y) {
|
||||
coordinates.x = x;
|
||||
coordinates.y = y;
|
||||
setPosition((x + 0.5f) * coordinateStepSize.x, (y + 0.5f) * coordinateStepSize.y);
|
||||
return this;
|
||||
}
|
||||
|
||||
public MovableSprite setCoordinates(Vector2i coordinates) {
|
||||
return setCoordinates(coordinates.x, coordinates.y);
|
||||
public void setCoordinates(Vector2i coordinates) {
|
||||
setCoordinates(coordinates.x, coordinates.y);
|
||||
}
|
||||
|
||||
public MovableSprite setStepSize(float x, float y) {
|
||||
public void setStepSize(float x, float y) {
|
||||
coordinateStepSize.x = x;
|
||||
coordinateStepSize.y = y;
|
||||
setCoordinates(coordinates);
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public MovableSprite(Mesh mesh, Material material) {
|
||||
|
||||
Reference in New Issue
Block a user