// add an object to the level. this step of reference is needed for later deconstruction of the level and serialization public void DeleteObject(LevelObject levelObj) { if (LevelPlacer._instance != null) { switch (levelObj.objectType) { case LevelObject.ObjectType.turret: turrets.Remove((Turret)levelObj); break; case LevelObject.ObjectType.attractor: attractors.Remove((Attractor)levelObj); break; case LevelObject.ObjectType.portal: portals.Remove((Portal)levelObj); levelObj.GetComponent <Portal>().Unlink(); break; case LevelObject.ObjectType.speedStrip: speedStrips.Remove((SpeedStrip)levelObj); break; case LevelObject.ObjectType.bouncer: bouncers.Remove((Bouncer)levelObj); break; default: //Debug.Log("Wasnt able to add the levelobject to the LevelDataMono of type " + lo.objectType); break; } //ProgressManager.GetProgress().unlocks.inventory.Add(levelObj.objectType, 1); DestroyImmediate(levelObj.gameObject); UndoManager.AddUndoPoint(); } else { Debug.LogError("LevelPlacer needed to add an object to the level."); } }
// add an object to the level. this step of reference is needed for later deconstruction of the level and serialization public LevelObject AddObject(LevelObject.ObjectType type, Vector3 position) { if (LevelPlacer._instance != null) { switch (type) { case LevelObject.ObjectType.turret: Turret turret = (Turret)Instantiate(LevelPlacer._instance.turretPrefab, Vector3.zero, Quaternion.identity); turret.transform.parent = LevelPlacer.generatedLevel.transform; Vector2 turretPos = new Vector3(position.x, position.y, LevelPlacer.levelObjectZ); turret.transform.position = turretPos; turrets.Add(turret); // ProgressManager.GetProgress().unlocks.inventory.Add(type, -1); UndoManager.AddUndoPoint(); return(turret); case LevelObject.ObjectType.attractor: Attractor a = (Attractor)Instantiate(LevelPlacer._instance.attractorPrefab, Vector3.zero, Quaternion.identity); a.transform.parent = LevelPlacer.generatedLevel.transform; Vector2 aPos = new Vector3(position.x, position.y, LevelPlacer.levelObjectZ); a.transform.position = aPos; attractors.Add(a); //ProgressManager.GetProgress().unlocks.inventory.Add(type, -1); UndoManager.AddUndoPoint(); return(a); case LevelObject.ObjectType.portal: Portal p = (Portal)Instantiate(LevelPlacer._instance.portalPrefab, Vector3.zero, Quaternion.identity); p.transform.parent = LevelPlacer.generatedLevel.transform; Vector2 pPos = new Vector3(position.x, position.y, LevelPlacer.levelObjectZ); p.transform.position = pPos; p.portalID = GetFreePortalID(0); p.linkedPortalID = -1; portals.Add(p); // ProgressManager.GetProgress().unlocks.inventory.Add(type, -1); UndoManager.AddUndoPoint(); return(p); case LevelObject.ObjectType.speedStrip: SpeedStrip s = (SpeedStrip)Instantiate(LevelPlacer._instance.speedStripPrefab, Vector3.zero, Quaternion.identity); s.transform.parent = LevelPlacer.generatedLevel.transform; Vector2 sPos = new Vector3(position.x, position.y, LevelPlacer.levelObjectZ); s.transform.position = sPos; s.transform.rotation = Quaternion.Euler(0, 0, 180); speedStrips.Add(s); // ProgressManager.GetProgress().unlocks.inventory.Add(type, -1); UndoManager.AddUndoPoint(); return(s); case LevelObject.ObjectType.bouncer: Bouncer b = (Bouncer)Instantiate(LevelPlacer._instance.bouncerPrefab, Vector3.zero, Quaternion.identity); b.transform.parent = LevelPlacer.generatedLevel.transform; Vector2 bPos = new Vector3(position.x, position.y, LevelPlacer.levelObjectZ); b.transform.position = bPos; b.transform.rotation = Quaternion.Euler(0, 0, 0); bouncers.Add(b); // ProgressManager.GetProgress().unlocks.inventory.Add(type, -1); UndoManager.AddUndoPoint(); return(b); default: //Debug.Log("Wasnt able to add the levelobject to the LevelDataMono of type " + lo.objectType); break; } } else { Debug.LogError("LevelPlacer needed to add an object to the level."); } return(null); }
// activates the properties menu that corresponds to the current selected object public static UIPreferenceMenu ShowMenu() { LevelObject.ObjectType type = LevelEditor.selectedObject.objectType; Debug.Log("type " + type + " - " + _instance); if (_instance != null) { UndoManager.AddUndoPoint(); switch (type) { case LevelObject.ObjectType.turret: UITurretMenu.Activate(LevelEditor.CreateLevelData()); UIPreferenceMenu.onPreferenceChange.Invoke(_instance.turretMenu); animator.ResetTrigger("showTurret"); animator.ResetTrigger("hideTurret"); animator.SetTrigger("showTurret"); Debug.Log("treeehehee " + _instance.turretMenu); menuOpen = true; openedMenuType = LevelObject.ObjectType.turret; return(_instance.turretMenu); case LevelObject.ObjectType.portal: UIPortalMenu.Activate(LevelEditor.CreateLevelData()); UIPreferenceMenu.onPreferenceChange.Invoke(_instance.portalMenu); animator.ResetTrigger("showPortal"); animator.SetTrigger("showPortal"); menuOpen = true; openedMenuType = LevelObject.ObjectType.portal; return(_instance.portalMenu); case LevelObject.ObjectType.attractor: UIAttractorMenu.Activate(LevelEditor.CreateLevelData()); UIPreferenceMenu.onPreferenceChange.Invoke(_instance.attractorMenu); animator.ResetTrigger("showAttractor"); animator.SetTrigger("showAttractor"); menuOpen = true; openedMenuType = LevelObject.ObjectType.attractor; return(_instance.attractorMenu); case LevelObject.ObjectType.speedStrip: UISpeedStripMenu.Activate(LevelEditor.CreateLevelData()); UIPreferenceMenu.onPreferenceChange.Invoke(_instance.speedStripMenu); animator.ResetTrigger("showSpeedStrip"); animator.ResetTrigger("hideSpeedStrip"); animator.SetTrigger("showSpeedStrip"); menuOpen = true; openedMenuType = LevelObject.ObjectType.speedStrip; return(_instance.speedStripMenu); case LevelObject.ObjectType.bouncer: UIBouncerMenu.Activate(LevelEditor.CreateLevelData()); UIPreferenceMenu.onPreferenceChange.Invoke(_instance.bouncerMenu); animator.ResetTrigger("showBouncer"); animator.SetTrigger("showBouncer"); menuOpen = true; openedMenuType = LevelObject.ObjectType.bouncer; return(_instance.bouncerMenu); case LevelObject.ObjectType.finish: return(_instance.finishMenu); case LevelObject.ObjectType.spawn: return(_instance.spawnMenu); } Debug.Log("HERE"); } return(null); }