Replace custom Vector with JOML's Vector2* in :API

This commit is contained in:
2021-03-02 20:26:43 +01:00
parent 95ee0a5c62
commit ed0f9ac0c5
11 changed files with 62 additions and 80 deletions

View File

@@ -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));

View File

@@ -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;

View File

@@ -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());
}
}

View File

@@ -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) {