Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* CLASS:
- * AUTHOR: Anders & Lea
- * DESCRIPTION:
- ****************************************************************************/
- package com.survivalsystem;
- import com.badlogic.ashley.core.ComponentMapper;
- import com.badlogic.ashley.core.Engine;
- import com.badlogic.ashley.core.Entity;
- import com.badlogic.ashley.core.EntitySystem;
- import com.badlogic.ashley.core.Family;
- import com.badlogic.ashley.utils.ImmutableArray;
- import com.common.data.components.BehaviourComponent;
- import com.common.data.components.HealthComponent;
- import com.common.data.components.SurvivalComponent;
- import com.common.interfaces.IEntitySystem;
- import java.util.HashMap;
- import org.openide.util.lookup.ServiceProvider;
- @ServiceProvider(service = IEntitySystem.class)
- public class Survival extends EntitySystem implements IEntitySystem {
- private ImmutableArray<Entity> entities;
- private ComponentMapper<SurvivalComponent> survival = ComponentMapper.getFor(SurvivalComponent.class);
- private ComponentMapper<HealthComponent> health = ComponentMapper.getFor(HealthComponent.class);
- private ComponentMapper<BehaviourComponent> bcm = ComponentMapper.getFor(BehaviourComponent.class);
- @Override
- public void update(float deltaTime) {
- for (Entity entity : entities) {
- SurvivalComponent surv = survival.get(entity);
- HealthComponent hp = health.get(entity);
- BehaviourComponent behaviourComp = bcm.get(entity);
- if (surv.water < 0 || surv.food <= 0) {
- if (hp.hitpoints > 0) {
- hp.hitpoints -= 0.1;
- }else
- behaviourComp.scheduledForCleanup = true;
- }else{
- surv.water -= 0.01;
- surv.food -= 0.01;
- }
- }
- }
- @Override
- public void addedToEngine(Engine engine) {
- this.entities = engine.getEntitiesFor(Family.all(SurvivalComponent.class).get());
- }
- @Override
- public EntitySystem getSystem() {
- return this;
- }
- @Override
- public void loadSystem(HashMap<String, Object> data) throws Exception {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement