InventoryUpdateSystem.java

package com.devcharles.piazzapanic.componentsystems;

import com.badlogic.ashley.core.Entity;
import com.badlogic.ashley.core.Family;
import com.badlogic.ashley.systems.IteratingSystem;
import com.devcharles.piazzapanic.components.ControllableComponent;
import com.devcharles.piazzapanic.components.PlayerComponent;
import com.devcharles.piazzapanic.components.FoodComponent.FoodType;
import com.devcharles.piazzapanic.scene2d.Hud;
import com.devcharles.piazzapanic.utility.Mappers;

/**
 * Links up the cook's inventory to the hud.
 */
public class InventoryUpdateSystem extends IteratingSystem {

    private Hud hud;
    public InventoryUpdateSystem(Hud hud) {
        super(Family.all(PlayerComponent.class, ControllableComponent.class).get());
        this.hud = hud;
    }
    @Override
    protected void processEntity(Entity entity, float deltaTime) {
        ControllableComponent cook = Mappers.controllable.get(entity);

        FoodType[] foods = new FoodType[cook.currentFood.size()];

        int i = 0;
        for (Entity food : cook.currentFood){
            if (Mappers.food.get(food).type != null) {
                foods[i] = Mappers.food.get(food).type;
                i++;
            }            
        }
        hud.updateInventory(foods);
        
    }
    
}