예제 #1
0
        // 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.");
            }
        }
예제 #2
0
        // 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);
        }
예제 #3
0
    // 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);
    }