public void Parse(IEnumerable <XElement> items) { foreach (XElement element in items) { Rectangle position = ParsePosition(element); CollisionType collisionType = ParseCollisionType(element); string message = ParseMessage(element); if (element.Name.ToString().Equals(GenericParser.crate)) { CrateItem c = new CrateItem(position, SpriteFactory.GetCrateSprite(), collisionType, message); ItemList.Add(c); } else if (element.Name.ToString().Equals(GenericParser.boulder)) { BoulderItem b = new BoulderItem(position, SpriteFactory.GetBoulderSprite(), collisionType, message); ItemList.Add(b); } else if (element.Name.ToString().Equals(GenericParser.falsebrick)) { FalseBrick f = new FalseBrick(SpriteFactory.GetBrickSprite(), ParsePosition(element), ParseCollisionType(element), ParseBool(element, GenericParser.isWaitingForActivationAttr), message); ItemList.Add(f); } else if (element.Name.ToString().Equals(GenericParser.button)) { ButtonItem b = new ButtonItem(position, SpriteFactory.GetButtonSprite(), collisionType, message); ItemList.Add(b); } else if (element.Name.ToString().Equals(GenericParser.fishbowl)) { PickupItem f = new PickupItem(position, SpriteFactory.GetFishbowlSprite(), collisionType, message); ItemList.Add(f); } else if (element.Name.ToString().Equals(GenericParser.joebota)) { PickupItem jb = new PickupItem(position, SpriteFactory.GetJoeBotaSprite(), collisionType, message); ItemList.Add(jb); } else if (element.Name.ToString().Equals(GenericParser.door)) { Door d = new Door(ParseInt(element, GenericParser.nextLevelAttr), ParseBool(element, GenericParser.isWaitingForActivationAttr), SpriteFactory.GetDoorSprite(), position, collisionType, message); ItemList.Add(d); } else if (element.Name.ToString().Equals(GenericParser.continuousbutton)) { ContinuousButton b = new ContinuousButton(position, SpriteFactory.GetButtonSprite(), collisionType, message); ItemList.Add(b); } else if (element.Name.ToString().Equals(GenericParser.conveyor)) { int blockWidth = ParseInt(element, GenericParser.blockWidthAttr); SpriteOrientation orientation = ParseSpriteOrientation(element, GenericParser.orientionAttr); float speed = ParseFloat(element, GenericParser.speedAttr); Conveyor c = new Conveyor( new Vector2(position.X, position.Y), blockWidth, speed, orientation, ParseFloat(element, GenericParser.activatedSpeedAttr), ParseSpriteOrientation(element, GenericParser.activatedOrientationAttr), SpriteFactory.GetConveyorSprite(blockWidth, orientation, speed)); ItemList.Add(c); } else if (element.Name.ToString().Equals(GenericParser.teleporter)) { Teleporter teleporter = new Teleporter(SpriteFactory.GetTeleporterSprite(), ParsePosition(element), ParseCollisionType(element), new Vector2(ParseInt(element, GenericParser.newXAttr), ParseInt(element, GenericParser.newYAttr)), ParseBool(element, GenericParser.isWaitingForActivationAttr), message); ItemList.Add(teleporter); } } }