mirror of
https://github.com/collinsmith/riiablo.git
synced 2025-07-05 15:58:38 +07:00
Moved AISystem to correct package and implemented radius check to run AI
This commit is contained in:
@ -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);
|
||||
}
|
||||
}
|
@ -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());
|
||||
|
Reference in New Issue
Block a user