public void ReadXml(XmlReader reader) { name = reader["Name"]; components = new List <IFactoryComponent>(); owner = World.Instance.FactionList.GetFaction(reader["Owner"]); owner.AddFactoryEntity(this); //owner = Convert.ToInt32(reader["Z"]); reader.MoveToContent(); if (reader.ReadToDescendant(typeof(IFactoryComponent).Name)) { while (reader.MoveToContent() == XmlNodeType.Element && reader.LocalName == typeof(IFactoryComponent).Name) { var component = new EmptyComponent(); component.ReadXml(reader); components.Add(component.ActualComponent); } } foreach (var component in components) { component.Parent = this; } reader.Read(); }