Create AI scaffolding
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user