public static void ParseAllMerchants() { foreach (Merchant m in Resources.FindObjectsOfTypeAll <Merchant>().Where(x => x.gameObject.scene != null && x.ShopName != "Merchant")) { var merchantHolder = ParseMerchant(m); if (merchantHolder == null) { continue; } var summary = ListManager.SceneSummaries[ListManager.GetSceneSummaryKey(m.transform.position)]; var key = merchantHolder.Name + " (" + merchantHolder.UID + ")"; if (!summary.Merchants.Contains(key)) { summary.Merchants.Add(key); } } }
// Parse Loot public static void ParseAllLoot() { var allitems = Resources.FindObjectsOfTypeAll(typeof(Item)) as Item[]; foreach (Item item in allitems.Where(x => IsValidLoot(x))) { var summary = ListManager.SceneSummaries[ListManager.GetSceneSummaryKey(item.transform.position)]; if (item is SelfFilledItemContainer) { if (item is TreasureChest) { var lootContainer = DM_LootContainer.ParseLootContainer(item as TreasureChest); AddQuantity(lootContainer.Name, summary.Loot_Containers); ListManager.AddContainerSummary( lootContainer.Name, ListManager.GetSceneSummaryKey(item.transform.position), lootContainer.DropTables, Instance.GetCurrentLocation(item.transform.position) ); if (!summary.UniqueContainerList.Contains(lootContainer.Name + "_" + lootContainer.UID)) { summary.UniqueContainerList.Add(lootContainer.Name + "_" + lootContainer.UID); } } else if (item is Gatherable) { var gatherableHolder = DM_Gatherable.ParseGatherable(item as Gatherable); AddQuantity(gatherableHolder.Name, summary.Gatherables); ListManager.AddContainerSummary( gatherableHolder.Name, ListManager.GetSceneSummaryKey(item.transform.position), gatherableHolder.DropTables, Instance.GetCurrentLocation(item.transform.position) ); } else { SL.LogWarning("[ParseLoot] Unsupported ItemContainer: " + item.Name + ", typeof: " + item.GetType()); } } else { // item spawn bool newHolder = true; foreach (DM_ItemSpawn holder in summary.Item_Spawns) { if (holder.Item_ID == item.ItemID) { newHolder = false; holder.Quantity++; holder.positions.Add(item.transform.position); break; } } if (newHolder) { summary.Item_Spawns.Add(new DM_ItemSpawn { Name = item.Name?.Trim(), Item_ID = item.ItemID, Quantity = 1, positions = new List <Vector3> { item.transform.position } }); } //AddItemSpawnSource(item.ItemID, item.Name, item.transform.position); } } }