Moved AISystem to correct package and implemented radius check to run AI

This commit is contained in:
Collin Smith
2019-11-25 23:48:16 -08:00
parent 4516249bc0
commit 3442d3d3b2
2 changed files with 12 additions and 5 deletions

View File

@ -1,20 +1,27 @@
package com.riiablo.engine;
package com.riiablo.engine.system;
import com.badlogic.ashley.core.ComponentMapper;
import com.badlogic.ashley.core.Entity;
import com.badlogic.ashley.core.Family;
import com.badlogic.ashley.systems.IteratingSystem;
import com.riiablo.engine.component.AIComponent;
import com.riiablo.engine.component.PositionComponent;
import com.riiablo.map.RenderSystem;
public class AISystem extends IteratingSystem {
private final ComponentMapper<AIComponent> aiComponent = ComponentMapper.getFor(AIComponent.class);
private final ComponentMapper<PositionComponent> positionComponent = ComponentMapper.getFor(PositionComponent.class);
public AISystem() {
super(Family.all(AIComponent.class).get());
private final RenderSystem renderer;
public AISystem(RenderSystem renderer) {
super(Family.all(AIComponent.class, PositionComponent.class).get());
this.renderer = renderer;
}
@Override
protected void processEntity(Entity entity, float delta) {
if (!renderer.withinRadius(positionComponent.get(entity).position)) return;
aiComponent.get(entity).ai.update(delta);
}
}

View File

@ -35,7 +35,7 @@ import com.riiablo.camera.IsometricCamera;
import com.riiablo.codec.D2S;
import com.riiablo.cvar.Cvar;
import com.riiablo.cvar.CvarStateAdapter;
import com.riiablo.engine.AISystem;
import com.riiablo.engine.system.AISystem;
import com.riiablo.engine.Engine;
import com.riiablo.engine.Flags;
import com.riiablo.engine.component.AngleComponent;
@ -375,7 +375,7 @@ public class ClientScreen extends ScreenAdapter implements LoadingScreen.Loadabl
engine.addSystem(new TouchMovementSystem(iso, renderer));
}
engine.addSystem(new AISystem());
engine.addSystem(new AISystem(renderer));
engine.addSystem(new PathfindSystem());
engine.addSystem(new Box2DBodySystem());