void UpdateInventoryItem(TrackedInventory item)
        {
            for (int row = 7; row <= hudList.RowCount; row++)
            {
                if (((HudStaticText)hudList[row - 1][1]).Text == item.Name)
                {
                    ((HudStaticText)hudList[row - 1][2]).Text = item.LastKnownValue.ToString(CultureInfo.InvariantCulture);

                    if (item.LastKnownValue == 0)
                    {
                        ((HudStaticText)hudList[row - 1][3]).Text = String.Empty;
                        ((HudStaticText)hudList[row - 1][4]).Text = String.Empty;
                        ((HudStaticText)hudList[row - 1][5]).Text = String.Empty;
                    }
                    else
                    {
                        var oneHourItemCountDifferenceOverFiveMinutes = item.GetValueDifference(TimeSpan.FromMinutes(5), TimeSpan.FromHours(1));
                        ((HudStaticText)hudList[row - 1][3]).Text = oneHourItemCountDifferenceOverFiveMinutes == 0 ? String.Empty : oneHourItemCountDifferenceOverFiveMinutes.ToString("N1");

                        var oneHourItemCountDifferenceOverOneHour = item.GetValueDifference(TimeSpan.FromHours(1), TimeSpan.FromHours(1));
                        ((HudStaticText)hudList[row - 1][4]).Text = oneHourItemCountDifferenceOverOneHour == 0 ? String.Empty : oneHourItemCountDifferenceOverOneHour.ToString("N1");

                        var hoursRemaining = item.GetTimeToDepletion(TimeSpan.FromHours(1));
                        ((HudStaticText)hudList[row - 1][5]).Text = (hoursRemaining == TimeSpan.Zero || hoursRemaining == TimeSpan.MaxValue) ? String.Empty : hoursRemaining.TotalHours.ToString("N1");
                    }
                }
            }
        }
 void consumableTracker_ItemChanged(TrackedInventory item)
 {
     try
     {
         UpdateInventoryItem(item);
     }
     catch (Exception ex) { Debug.LogException(ex); }
 }
        void consumableTracker_ItemRemoved(TrackedInventory item)
        {
            try
            {
                for (int row = 7; row <= hudList.RowCount; row++)
                {
                    if (((HudStaticText)hudList[row - 1][1]).Text == item.Name)
                    {
                        hudList.RemoveRow(row - 1);

                        row--;
                    }
                }

                cachedInventory.Remove(item);
            }
            catch (Exception ex) { Debug.LogException(ex); }
        }