if (amountToPush <= 0){ Arrays.fill(getActualFlowRates(), 0f); return 0f; }
    public float pushResourceToStores(float amountToPush) {        if (getStores() == null)            return 0f;        float resourceRemaining = amountToPush;        for (int i = 0; (i < getStores().length) && (resourceRemaining > 0); i++) {            float resourceToDistributeFirst = Math.min(resourceRemaining,                    getMaxFlowRate(i));            float resourceToDistributeFinal = Math.min(                    resourceToDistributeFirst, getDesiredFlowRate(i));            getActualFlowRates()[i] = getStores()[i]                    .add(resourceToDistributeFinal);            resourceRemaining -= getActualFlowRate(i);        }        return (amountToPush - resourceRemaining);    }