/// <summary> /// Consume a resource object. /// </summary> /// <param name="obj"></param> public virtual void Consume(ResourceObject resourceObj) { if (resourceObj != null) { ResourceStore req = mResourceStore.Find(res => res.Resource.Type == resourceObj.Resource.Type); if (req != null && req.Resource.Quantity != req.Capacity) { int qty = resourceObj.Resource.Quantity; req.Resource.Quantity = Mathf.Clamp(req.Resource.Quantity + qty, 0, req.Capacity); resourceObj.OnConsumption(); } else { // So we can notify the player that this cannot be consumed, for whatever reason. resourceObj.OnConsumptionFailed(); } } }