MrGravity.Import_Code.Importer.GetTriggers C# (CSharp) Method

GetTriggers() public method

Gets all the triggers in the level
public GetTriggers ( ) : List
return List
        public List<Trigger> GetTriggers()
        {
            var triggers = new List<Trigger>();
            foreach (var entity in _mEntities)
            {
                if (entity.MType == XmlKeys.Trigger)
                {
                    var isSquare = entity.MProperties.ContainsKey(XmlKeys.Shape) && entity.MProperties[XmlKeys.Shape] == XmlKeys.Square;

                    if(!entity.MProperties.ContainsKey(XmlKeys.Width) || !entity.MProperties.ContainsKey(XmlKeys.Height))
                        continue;

                    if (entity.MName == "Force")
                    {
                        var trigger = new ForceTrigger(_mContent, entity);
                        triggers.Add(trigger);
                    }
                    else if (entity.MName == "Music")
                    {
                        var trigger = new MusicTrigger(_mContent, entity);
                        triggers.Add(trigger);
                    }
                    else if (entity.MName == "SFX")
                    {
                        var trigger = new FxTrigger(_mContent, entity);
                        triggers.Add(trigger);
                    }
                    else if (entity.MName == "BlackHole")
                    {
                        var trigger = new BlackHoleTrigger(_mContent, entity);
                        triggers.Add(trigger);
                    }
                    else if (entity.MName == "PlayerFace")
                    {
                        var trigger = new PlayerFaceTrigger(_mContent, entity);
                        triggers.Add(trigger);
                    }
                    else if (entity.MName == "PopUp")
                    {
                        var trigger = new PopupTrigger(_mContent, entity);
                        triggers.Add(trigger);
                    }
                    //Add trigger by name
                }
            }
            return triggers;
        }

Usage Example

コード例 #1
0
ファイル: Level.cs プロジェクト: DizWARE/Mr-Gravity
        /// <summary>
        /// Loads the level from the content manager
        /// </summary>
        /// <param name="content">Content Manager to load from</param>
        public void Load(ContentManager content)
        {
            _mObjects.Clear();
            Reset();

            var importer = new Importer(content);
            importer.ImportLevel(this);

            _mPlayer = new Player(content, ref _mPhysicsEnvironment,
                _mControls, .8f, EntityInfo.CreatePlayerInfo(GridSpace.GetGridCoord(StartingPoint)));

            _mObjects.Add(_mPlayer);
            _mObjects.AddRange(importer.GetObjects(ref _mPhysicsEnvironment));

            _mPlayerEnd = importer.GetPlayerEnd();
            if (_mPlayerEnd != null)
                _mObjects.Add(_mPlayerEnd);

            _mObjects.AddRange(importer.GetWalls(this).Cast<GameObject>());

            _mRails = importer.GetRails();

            _mTrigger.AddRange(importer.GetTriggers());

            PrepareCollisionMatrix();

            MNumCollected = 0;
            MNumCollectable = 0;

            //Clear the collection lists
            _mCollected.Clear();
            _mRemoveCollected.Clear();

            foreach (var gObject in _mObjects)
            {
                if (gObject.CollisionType == XmlKeys.Collectable)
                    MNumCollectable++;
            }
        }