Dwarrowdelf.Client.BuildItemManager.FindMaterials C# (CSharp) Method

FindMaterials() private method

private FindMaterials ( BuildOrder order ) : bool
order BuildOrder
return bool
        bool FindMaterials(BuildOrder order)
        {
            var buildableItem = order.BuildableItem;

            var numItems = buildableItem.FixedBuildMaterials.Count;

            int numFound = 0;

            for (int i = 0; i < buildableItem.FixedBuildMaterials.Count; ++i)
            {
                var bimi = buildableItem.FixedBuildMaterials[i];
                var biis = order.UserItemFilters[i];

                var filter = new AndItemFilter(bimi, biis);

                var ob = this.Environment.ItemTracker.GetReachableItemByDistance(this.Workbench.Location, filter, m_unreachables);

                if (ob == null)
                    break;

                ob.ReservedBy = this;

                order.SourceItems[i] = ob;
                numFound++;
            }

            if (numFound < numItems)
            {
                trace.TraceInformation("Failed to find materials");
                for (int i = 0; i < numFound; ++i)
                {
                    order.SourceItems[i].ReservedBy = null;
                    order.SourceItems[i] = null;
                }
                return false;
            }
            else
            {
                return true;
            }
        }