StonehearthEditor.ModuleDataManager.GetAverageMaterialCost C# (CSharp) Method

GetAverageMaterialCost() public method

public GetAverageMaterialCost ( string material ) : int
material string
return int
        public int GetAverageMaterialCost(string material)
        {
            if (mAverageMaterialCost.ContainsKey(material))
            {
                return mAverageMaterialCost[material];
            }

            int sumCost = 0;
            int numItems = 0;
            string[] split = material.Split(' ');
            foreach (Module mod in ModuleDataManager.GetInstance().GetAllModules())
            {
                foreach (ModuleFile file in mod.GetAliases())
                {
                    JsonFileData data = file.FileData as JsonFileData;
                    if (data == null)
                    {
                        continue;
                    }

                    int netWorth = data.NetWorth;
                    if (netWorth <= 0)
                    {
                        continue;
                    }

                    JToken tags = data.Json.SelectToken("components.stonehearth:material.tags");
                    if (tags != null)
                    {
                        string tagString = tags.ToString();
                        string[] currentTagSplit = tagString.Split(' ');
                        HashSet<string> currentTagSet = new HashSet<string>(currentTagSplit);
                        bool isMaterial = true;
                        foreach (string tag in split)
                        {
                            if (!currentTagSet.Contains(tag))
                            {
                                isMaterial = false;
                                break;
                            }
                        }

                        if (isMaterial)
                        {
                            numItems++;
                            sumCost = sumCost + netWorth;
                        }
                    }
                }
            }

            if (numItems > 0)
            {
                int averageCost = sumCost / numItems;
                mAverageMaterialCost[material] = averageCost;
                return averageCost;
            }

            return 0;
        }