/// <summary>
        /// Adds a new map object
        /// </summary>
        /// <param name="newObject">New object to be added</param>
        public void AddMapObject(OvercookedMapObject newObject)
        {
            this._mapObjects.Add(newObject);
            if (newObject is FoodCrate)
            {
                Debug.Log("Found food crate");
            }

            if (this.containers.Count > 0)
            {
                if (newObject.TryAdd(this.containers[0]))
                {
                    this.containers.RemoveAt(0);
                }
            }
        }
        /// Gets the closest map object at the given position
        /// </summary>
        /// <param name="position">Target position, origin of the search circle</param>
        /// <param name="range">Max distance of an item to be considered in range</param>
        public OvercookedMapObject GetClosestMapObjectAtWorldPosition(Vector3 position, float range)
        {
            float?minDistance          = null;
            OvercookedMapObject result = null;

            foreach (var obj in this._mapObjects)
            {
                var distance = (obj.transform.position - position).magnitude;
                if (distance <= range)
                {
                    if (minDistance == null || minDistance > distance)
                    {
                        minDistance = distance;
                        result      = obj;
                    }
                }
            }

            return(result);
        }