/// <summary> /// Delete the object named key from existence. /// </summary> public static void DeleteObject(string key) { if (!Objects.ContainsKey(key)) { return; } GameObject del = (CollidableObject)Objects[key]; if (CollidableObjects.Contains(del)) { CollidableObjects.Remove((CollidableObject)del); } if (UIObjects.Contains(del)) { UIObjects.Remove((UIObject)del); } if (NonUIObjects.Contains(del)) { NonUIObjects.Remove(del); } if (Backgrounds.Contains(del)) { Backgrounds.Remove((Background)(del)); } Objects.Remove(key); }
/// <summary> /// Adds a GameObject reference to the Objects dictionary /// If a CollidableObject is passed, it is also added to the CollidableObjects List /// </summary> /// <param name="name">GameObject name</param> /// <param name="g">GameObject reference</param> public static void Add(string name, GameObject g) { Objects.Add(name, g); if (g is CollidableObject) { CollidableObject c = (CollidableObject)g; CollidableObjects.Add(c); NonUIObjects.Add(g); } else if (g is Background) { Background b = (Background)g; Backgrounds.Add(b); } else if (g is UIObject) { UIObject ui = (UIObject)g; UIObjects.Add(ui); } else if (g is SFXWrapper) { SFXWrapper wrap = (SFXWrapper)g; SoundEffects.Add(wrap); } else { NonUIObjects.Add(g); } }
/// <summary> /// Removes all level-specific objects from the manager. /// UI objects are not deleted. /// </summary> public static void RemoveLevel() { IsLoading = true; //Wipe out the objects dictionary Objects.Clear(); //Delete CollidableObjects, NonUIObjects CollidableObjects.Clear(); NonUIObjects.Clear(); //Add in UIObjects back to the dictionary foreach (UIObject ui in UIObjects) { Objects.Add(ui.Name, ui); } //Add in Soundeffects back to the dictionary foreach (SFXWrapper wrap in SoundEffects) { Objects.Add(wrap.Name, wrap); } }