public static LBItemCollection parseConfig() { LBItemCollection itemObjs = new LBItemCollection(); // init collection itemObjs = parseItemsXml("plugins\\LiquidBags\\use_items.xml", itemObjs); // parse the xml we ship itemObjs = parseItemsXml("plugins\\LiquidBags\\discard_items.xml", itemObjs); // parse the xml a user might add return itemObjs; }
private static LBItemCollection parseItemsXml(string pathToXml, LBItemCollection collection) { if (!File.Exists(pathToXml)) { return collection; } XDocument xml = XDocument.Load(pathToXml); // load xml from path var items = xml.Descendants("item"); // put all <item> tags into a variable return parseItemsStructure(items, collection); // parse the xml }
private static LBItemCollection parseItemsStructure(IEnumerable<XElement> items, LBItemCollection collection) { foreach (XElement item in items) // process all items { int id = Int32.Parse(item.Attribute("id").Value); // parse id attribute int stack = Int32.Parse(item.Attribute("stack").Value); // parse stack attribute bool sleep = Boolean.Parse(item.Attribute("sleep").Value); // parse sleep attribute string action = item.Attribute("action").Value; // parse action attribute LBItem tempItem = new LBItem(id, stack, sleep, action); // generate new LBItem object // check if element is an override, then throw it out if (collection.Contains(tempItem.ItemId)) { collection.Remove(tempItem.ItemId); } collection.Add(tempItem); // add object to collection } return collection; }
public override void Initialize() { this._items = ConfigParser.parseConfig(); // parse the config xml }