package net.mostlyoriginal.game.system.agent;
import com.artemis.Aspect;
import com.artemis.ComponentMapper;
import com.artemis.Entity;
import com.artemis.annotations.Wire;
import com.artemis.managers.TagManager;
import com.artemis.systems.EntityProcessingSystem;
import com.badlogic.gdx.math.MathUtils;
import net.mostlyoriginal.api.component.graphics.Anim;
import net.mostlyoriginal.game.component.agent.Slumberer;
/**
* @author Daan van Yperen
*/
@Wire
public class SlumbererSystem extends EntityProcessingSystem {
TagManager tagManager;
ComponentMapper<Slumberer> sm;
ComponentMapper<Anim> am;
public SlumbererSystem() {
super(Aspect.getAspectForAll(Slumberer.class));
}
@Override
protected void process(Entity e) {
Slumberer slumberer = sm.get(e);
slumberer.blinkCooldown -= world.delta;
if ( slumberer.blinkCooldown <= 0 )
{
slumberer.blinkCooldown = MathUtils.random(3,5);
slumberer.focusCooldown = 0.3f;
// reset eyelid animation.
Anim eyeAnim = am.get(tagManager.getEntity("slumberer-eye"));
eyeAnim.age=0;
eyeAnim.speed=0;
am.get(tagManager.getEntity("slumberer-eyelid")).age=0;
}
slumberer.focusCooldown -= world.delta;
if ( slumberer.focusCooldown <= 0 )
{
slumberer.focusCooldown = 999;
Anim eyeAnim = am.get(tagManager.getEntity("slumberer-eye"));
eyeAnim.age=0;
eyeAnim.speed=1;
}
}
}