/// <summary> /// Constructs header for all items. /// </summary> /// <param name="filter">Loot filter.</param> /// <returns>Item header.</returns> public static string GetHeader(LootFilter filter) { StringBuilder builder = new StringBuilder(); int l = PropCount; builder.Append(Filter(filter, l, "Serial\t", null)); builder.Append(Filter(filter, l + 1, "Localized Number\t", null)); builder.Append(Filter(filter, l + 2, "Name\t", null)); builder.Append(Filter(filter, l + 3, "ItemID\t", null)); builder.Append(Filter(filter, l + 4, "Hue\t", null)); builder.Append(Filter(filter, l + 5, "Amount\t", null)); builder.Append(Filter(filter, l + 6, "Weight\t", null)); string[] list = Enum.GetNames(typeof(ItemProperty)); for (int i = 0; i < list.Length; i++) { if (filter == null || filter.Filters(i)) { builder.AppendFormat("{0}\t", list[i]); } } return(builder.ToString()); }
/// <summary> /// Converts this item to one line string /// </summary> /// <param name="filter">Loot filter.</param> /// <returns>Item converted into string.</returns> public string ToString(LootFilter filter) { StringBuilder builder = new StringBuilder(); int l = PropCount; builder.Append(Filter(filter, l, "0x{0}\t", m_Serial.ToString("X8"))); builder.Append(Filter(filter, l + 1, "{0}\t", m_NameCliloc)); builder.Append(Filter(filter, l + 2, "{0}\t", m_Name)); builder.Append(Filter(filter, l + 3, "0x{0}\t", m_ItemID.ToString("X4"))); builder.Append(Filter(filter, l + 4, "0x{0}\t", m_Hue.ToString("X"))); builder.Append(Filter(filter, l + 5, "{0}\t", m_Amount)); builder.Append(Filter(filter, l + 6, "{0}\t", m_Weight)); Array list = Enum.GetValues(typeof(ItemProperty)); for (int i = 0; i < list.Length; i++) { ItemProperty p = (ItemProperty)i; if (filter == null || filter.Filters((int)p)) { if (m_Properties.ContainsKey(p)) { builder.AppendFormat("{0}\t", m_Properties[p]); } else { builder.Append('\t'); } } } return(builder.ToString()); }
/// <summary> /// Initializes a new instance of the SpyUO.LootAnalyzer. /// </summary> public LootAnalyzer() { m_Mobiles = new Dictionary <uint, Mobile>(); m_Corpses = new Dictionary <uint, Mobile>(); m_CorpseContainers = new Dictionary <uint, Mobile>(); m_Items = new Dictionary <uint, Item>(); m_Filter = new LootFilter(); }
/// <summary> /// Filters item property /// </summary> /// <param name="filter">Loot filter.</param> /// <param name="index">Item property (<see cref="ItemProperty"/>).</param> /// <param name="format">A composite format string.</param> /// <param name="args">An object to format.</param> /// <returns>Empty string when filtered and constructed item property otherwise.</returns> public static string Filter(LootFilter filter, int index, string format, object args) { if (filter == null || filter.Filters(index)) { return(String.Format(format, args)); } return(String.Empty); }
public LootFilterForm(LootFilter filter) { m_Filter = filter; InitializeComponent(); string[] names = Enum.GetNames(typeof(ItemProperty)); ItemFilter.Items.AddRange(names); ItemFilter.Items.AddRange(Item.DefaultNames); }