Ejemplo n.º 1
0
        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);
                }
            }
        }