/// <summary>
 /// Returns the object's colliding entity
 /// </summary>
 /// <param name="o">The object to check</param>
 /// <returns>Returns the entity colliding with the object; otherwise, null</returns>
 public Entity getEntityCollision(GameObject o)
 {
     foreach (Npc n in level.getNpcs()) {
         if (o.getDestinationBounds().Intersects(n.getDestinationBounds())) {
             return n;
         }
     }
     return o.getDestinationBounds().Intersects(player.getDestinationBounds()) ? player : null;
 }
        /// <summary>
        /// Returns the object's colliding object
        /// </summary>
        /// <param name="o">The object to check</param>
        /// <returns>Returns the object colliding with the specified object; otherwise, null</returns>
        public GameObject getObjectCollision(GameObject o)
        {
            foreach (GameObject g in level.getObjects()) {
                if (g != o && o.getDestinationBounds().Intersects(g.getDestinationBounds())) {
                    return g;
                }
            }
            foreach (Wall w in level.getWalls()) {
                if (w != o && o.getDestinationBounds().Intersects(w.getDestinationBounds())) {
                    return w;
                }
            }
            foreach (Door d in level.getDoors()) {
                if (d != o && o.getDestinationBounds().Intersects(d.getDestinationBounds())) {
                    return d;
                }
            }
            foreach (Barrier b in level.getBarriers()) {
                if (b != o && o.getDestinationBounds().Intersects(b.getDestinationBounds()) && !b.isOpen()) {
                    return b;
                }
            }

            return null;
        }