Example #1
0
 /// <summary>
 /// Attempts to remove a Collider from the primary collection, if that fails then an attempt will be made to
 /// remove it from the fallback collection.
 /// </summary>
 /// <param name="collider">The Collider to be removed.</param>
 /// <param name="primary">The first collection to attempt to remove the Collider from.</param>
 /// <param name="fallback">Attempt to remove the Collider from this if the primary fails.</param>
 private void RemoveCollider(Collider collider, Colliders primary, Colliders fallback)
 {
     if (!primary.Remove(collider))
     {
         fallback.Remove(collider);
     }
 }
Example #2
0
 /// <summary>
 /// Removes dead objects
 /// </summary>
 private void RemoveObjects()
 {
     if (vehiclesToRemove.Count > 0)
     {
         foreach (GameObject go in vehiclesToRemove)
         {
             gameObjectsToRemove.Add(go);
         }
         UpdatePlayerAmount();
     }
     if (gameObjectsToRemove.Count > 0)
     {
         foreach (var go in gameObjectsToRemove)
         {
             if (go.GetComponent("Collider") is Collider collider)
             {
                 lock (colliderKey)
                 {
                     Colliders.Remove(collider);
                 }
             }
             gameObjects.Remove(go);
         }
         gameObjectsToRemove.Clear();
     }
 }
Example #3
0
        /// <summary>
        /// Remove the collider from the entity.
        /// </summary>
        /// <param name="c"></param>
        public T RemoveCollider <T>(T c) where T : Collider
        {
            if (Colliders.Contains(c))
            {
                Colliders.Remove(c);
                c.Removed();
                c.Entity = null;

                Scene?.RemoveColliderInternal(c);
            }
            return(c);
        }
        /// <summary>
        /// Removes a collider from the world if it exists.
        /// </summary>
        /// <param name="_collider"></param>
        public void RemoveCollider(ABCollider _collider)
        {
            if (Colliders.Contains(_collider))
            {
                Colliders.Remove(_collider);

                // Remove the collider from the last step collisions list of any collider it was colliding with if it was
                // destroyed before it exited.
                foreach (var collision in _collider.CollisionListener.LastStepCollisions)
                {
                    if (collision.CollisionListener.LastStepCollisions.Contains(_collider))
                    {
                        collision.CollisionListener.LastStepCollisions.Remove(_collider);
                    }
                }
                return;
            }

            Debug.LogWarning("Attempted to remove a collider from the world that didn't exist.");
        }
Example #5
0
        /// <summary>
        /// Allows the game to run logic such as updating the world,
        /// checking for collisions, gathering input, and playing audio.
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        protected override void Update(GameTime gameTime)
        {
            int j = RemoveGameObjects.Count;

            for (int i = 0; i < j; i++)
            {
                GameObjects.Remove(RemoveGameObjects[i]);
            }
            RemoveGameObjects.Clear();
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
            {
                Exit();
            }
            deltaTime = (float)gameTime.ElapsedGameTime.TotalSeconds;
            foreach (GameObject go in gameObjects)
            {
                if ((Player)go.GetComponent("Player") != null)
                {
                    Player other = (Player)go.GetComponent("Player");
                    direction = other.Direction;
                    go.Update();
                }
                if ((MoveableBox)go.GetComponent("MoveableBox") != null)
                {
                    go.Update(direction);
                }
                go.Update();
            }
            if (level == "level 2" && Completed == true)
            {
                int J = GameObjects.Count;
                for (int i = 0; i < J; i++)
                {
                    GameObject go = GameObjects[0];

                    if (go.GetComponent("Collider") != null)
                    {
                        Colliders.Remove((Collider)go.GetComponent("Collider"));
                    }
                    GameObjects.Remove(GameObjects[0]);
                    one.LevelOneObjects.Clear();
                }

                Initialize();
            }
            if (level == "level 3" && Completed == true)
            {
                int J = GameObjects.Count;
                for (int i = 0; i < J; i++)
                {
                    GameObject go = GameObjects[0];

                    if (go.GetComponent("Collider") != null)
                    {
                        Colliders.Remove((Collider)go.GetComponent("Collider"));
                    }
                    GameObjects.Remove(GameObjects[0]);
                    one.LevelOneObjects.Clear();
                }

                Initialize();
            }
            // TODO: Add your update logic here
            base.Update(gameTime);
        }
Example #6
0
 protected override void OnRemoved()
 {
     Transform.Changed -= Transform_Changed;
     Colliders.Remove(this);
 }