static void AddItem(OSRSItem osrsItem, List <ModItemDataXML> itemDataList, List <ModItemTypeDataXML> itemTypeDataList, List <ItemXML> texturesList, MagickImageCollection imageCollection) { int dupes; if (itemDataList.Exists(e => e.ItemID.Equals(NormalizeItemName(osrsItem.Name), StringComparison.InvariantCultureIgnoreCase))) { dupes = itemDataList.Where(e => e.ItemID.StartsWith(NormalizeItemName(osrsItem.Name) + "_", StringComparison.InvariantCultureIgnoreCase)).Count() + 1; } else { dupes = 0; } string itemid; if (dupes > 0) { itemid = $"{NormalizeItemName(osrsItem.Name)}_{dupes + 1}"; } else { itemid = NormalizeItemName(osrsItem.Name); } if (!imageCached) { var img = new MagickImage(GetItemPathPng(osrsItem.Id)); img.Crop(0, 0, 32, 32); imageCollection.Add(img); texturesList.Add(new ItemXML { ItemID = itemid }); } var itemData = new ModItemDataXML(); var itemTypeData = new ModItemTypeDataXML(); foreach (Rule rule in rules) { if (rule.ShouldTransform(itemid, osrsItem)) { itemData = rule.TransformItemData(itemid, osrsItem, itemData); itemTypeData = rule.TransformItemTypeData(itemid, osrsItem, itemTypeData); } } itemDataList.Add(itemData); itemTypeDataList.Add(itemTypeData); }
public override ModItemTypeDataXML TransformItemTypeData(string id, OSRSItem osrsItem, ModItemTypeDataXML modItemTypeData) { modItemTypeData.ItemID = id; modItemTypeData.Use = ItemUse.Item; modItemTypeData.Type = ItemType.Item; modItemTypeData.SubType = ItemSubType.None; modItemTypeData.Class = ItemTypeClass.None; modItemTypeData.Inv = ItemInvType.Other; modItemTypeData.Combat = CombatItem.None; modItemTypeData.Model = ItemModelType.MediumItem; modItemTypeData.Swing = ItemSwingType.Item; modItemTypeData.Equip = Utils.RStoTMSlot(osrsItem.Slot); return(modItemTypeData); }
public override ModItemTypeDataXML TransformItemTypeData(string id, OSRSItem osrsItem, ModItemTypeDataXML modItemTypeData) { modItemTypeData.Inv = ItemInvType.Jewelry; return(modItemTypeData); }
public abstract ModItemTypeDataXML TransformItemTypeData(string id, OSRSItem osrsItem, ModItemTypeDataXML modItemTypeData);