Create AI scaffolding

This commit is contained in:
2021-03-05 23:49:00 +01:00
parent dabc49d557
commit 4e54db4952
7 changed files with 79 additions and 0 deletions

View File

@@ -10,6 +10,7 @@ import com.bartlomiejpluta.base.engine.world.entity.config.EntitySpriteConfigura
import com.bartlomiejpluta.base.engine.world.movement.MovableSprite;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import org.joml.Vector2f;
import org.joml.Vector2i;
@@ -35,6 +36,10 @@ public class DefaultEntity extends MovableSprite implements Entity {
return isMoving();
}
@Getter
@Setter
private boolean blocking;
@Override
public Vector2f[] getSpriteAnimationFramesPositions() {
var row = spriteDirectionRows.get(faceDirection);

View File

@@ -1,5 +1,6 @@
package com.bartlomiejpluta.base.engine.world.map.layer.object;
import com.bartlomiejpluta.base.api.game.ai.NPC;
import com.bartlomiejpluta.base.api.game.camera.Camera;
import com.bartlomiejpluta.base.api.game.entity.Direction;
import com.bartlomiejpluta.base.api.game.entity.Entity;
@@ -108,6 +109,12 @@ public class DefaultObjectLayer implements ObjectLayer {
default -> true;
};
for (var entity : entities) {
if (entity.isBlocking() && entity.getCoordinates().equals(target)) {
return false;
}
}
return isTargetReachable && canMoveFromCurrentTile;
}
@@ -131,6 +138,10 @@ public class DefaultObjectLayer implements ObjectLayer {
}
entity.update(dt);
if (entity instanceof NPC) {
((NPC) entity).getStrategy().nextActivity(this, dt);
}
}
}