public void ItemListViewItemDoubleClick(object sender, MouseEventArgs args) { if (!(sender is ListViewItem)) { return; } var listItem = (ListViewItem)sender; ActivityItem item = null; item = weaponsListView.ItemContainerGenerator.ItemFromContainer(listItem) as ActivityItem ?? actorsListView.ItemContainerGenerator.ItemFromContainer(listItem) as ActivityItem ?? craftListView.ItemContainerGenerator.ItemFromContainer(listItem) as ActivityItem; if (item == null) return; SelectedItem = item; Close(); }
public IEnumerable<ActivityItem> GetActivitiesFromFile(string file) { var includedFiles = new List<string>(); StreamReader reader = null; for (var i = 0; i < 100; i++) { try { reader = new StreamReader(file); break; } catch (IOException ex) { if (RetryFiles) { Thread.Sleep(10); continue; } else { throw ex; } } throw new IOException("Failed to load file after 100 tries."); } var commented = false; var loadLine = true; string line = ""; while (!reader.EndOfStream) { if (loadLine) line = reader.ReadLine(); else loadLine = true; if (lineStartsWithComment(line)) { commented = true; } if (commented && lineEndsWithComment(line)) { commented = false; } if (line.Contains('=') && hasInclude(line) && !commented) { includedFiles.Add(getInclude(line)); } else if (line.Contains('=') && hasItemEntry(line) && !commented) { var activity = new ActivityItem(); try { activity.Group = getItemGroup(line); activity.Type = getItemType(line); } catch (InvalidActivityItemException) { continue; } GroupTabs = tabIndex(line) + 1; while (true) { if(reader.EndOfStream) break; line = reader.ReadLine(); if (tabIndex(line) < GroupTabs) { loadLine = false; break; } if (hasNameEntry(line)) activity.PresetName = getNameEntry(line); if (hasDescriptionEntry(line)) activity.Description = getDescriptionEntry(line); if (hasSpriteEntry(line)) activity.SpritePath = getSpriteEntry(line, reader); if (hasBuyableLine(line)) activity.Buyable = getBuyableEntry(line); } if (activity.PresetName == null || activity.PresetName.Trim() == "") continue; yield return activity; } } var ccDirectory = Grabber.Settings.Get().CCInstallDirectory; foreach (var includedFile in includedFiles) { foreach (var item in GetActivitiesFromFile(Path.Combine(ccDirectory, includedFile))) { yield return item; } } reader.Close(); }
public IEnumerable <ActivityItem> GetActivitiesFromFile(string file) { var includedFiles = new List <string>(); StreamReader reader = null; for (var i = 0; i < 100; i++) { try { reader = new StreamReader(file); break; } catch (IOException ex) { if (RetryFiles) { Thread.Sleep(10); continue; } else { throw ex; } } throw new IOException("Failed to load file after 100 tries."); } var commented = false; var loadLine = true; string line = ""; while (!reader.EndOfStream) { if (loadLine) { line = reader.ReadLine(); } else { loadLine = true; } if (lineStartsWithComment(line)) { commented = true; } if (commented && lineEndsWithComment(line)) { commented = false; } if (line.Contains('=') && hasInclude(line) && !commented) { includedFiles.Add(getInclude(line)); } else if (line.Contains('=') && hasItemEntry(line) && !commented) { var activity = new ActivityItem(); try { activity.Group = getItemGroup(line); activity.Type = getItemType(line); } catch (InvalidActivityItemException) { continue; } GroupTabs = tabIndex(line) + 1; while (true) { if (reader.EndOfStream) { break; } line = reader.ReadLine(); if (tabIndex(line) < GroupTabs) { loadLine = false; break; } if (hasNameEntry(line)) { activity.PresetName = getNameEntry(line); } if (hasDescriptionEntry(line)) { activity.Description = getDescriptionEntry(line); } if (hasSpriteEntry(line)) { activity.SpritePath = getSpriteEntry(line, reader); } if (hasBuyableLine(line)) { activity.Buyable = getBuyableEntry(line); } } if (activity.PresetName == null || activity.PresetName.Trim() == "") { continue; } yield return(activity); } } var ccDirectory = Grabber.Settings.Get().CCInstallDirectory; foreach (var includedFile in includedFiles) { foreach (var item in GetActivitiesFromFile(Path.Combine(ccDirectory, includedFile))) { yield return(item); } } reader.Close(); }
public InventoryItem(Activities.ActivityItem activityItem) { Name = Enum.GetName(typeof(Activities.ActivityItemType), activityItem.Type); CopyOf = activityItem.Mod.Folder.Remove(activityItem.Mod.Folder.IndexOf(".rte", StringComparison.OrdinalIgnoreCase)) + "/" + activityItem.PresetName; SubItems = new Inventory(); }