/// <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); }