Exemplo n.º 1
0
    protected override void Update()
    {
        base.Update();

        if (Input.GetMouseButton(0))
        {
            GameObject currentMouseHover = Mouse.currentSelectableUnderMouse;
            if (currentMouseHover)
            {
                SongObjectController soController = currentMouseHover.GetComponent <SongObjectController>();
                if (soController && soController.GetSongObject() != null)       // Dunno why song object would ever be null, but may as well be safe
                {
                    SongObject songObject = soController.GetSongObject();
                    if (ShortcutInput.GetInput(Shortcut.ChordSelect) && songObject.classID == (int)SongObject.ID.Note)
                    {
                        foreach (Note note in ((Note)songObject).chord)
                        {
                            dragEraseHistory.Add(note);
                        }
                    }
                    else if ((songObject.classID != (int)SongObject.ID.BPM && songObject.classID != (int)SongObject.ID.TimeSignature) || songObject.tick != 0)
                    {
                        dragEraseHistory.Add(songObject);
                    }

                    ExecuteCurrentDeletes();
                }
            }
        }

        if (Input.GetMouseButtonUp(0))
        {
            dragEraseHistory.Clear();
        }
    }
Exemplo n.º 2
0
    protected override void Update()
    {
        base.Update();

        var        mouseMonitor      = editor.services.mouseMonitorSystem;
        Vector2?   mouseWorldPos     = mouseMonitor.world2DPosition;
        GameObject currentMouseHover = mouseMonitor.currentSelectableUnderMouse;

        if (Input.GetMouseButtonDown(0))
        {
            prevFrameMouseWorldPos = mouseWorldPos;

            if (currentMouseHover)
            {
                SongObjectController soController = currentMouseHover.GetComponent <SongObjectController>();
                DeleteSongObject(soController);
            }
        }
        else if (Input.GetMouseButton(0) && mouseWorldPos != prevFrameMouseWorldPos)    // Don't delete kick note and regular note at the same time
        {
            if (currentMouseHover)
            {
                SongObjectController soController = currentMouseHover.GetComponent <SongObjectController>();
                DeleteSongObject(soController);
            }

            prevFrameMouseWorldPos = mouseWorldPos;
        }

        if (Input.GetMouseButtonUp(0))
        {
            dragEraseHistory.Clear();
        }
    }
Exemplo n.º 3
0
    protected override void Assign(SongObjectController sCon, SongObject songObject)
    {
        TimesignatureController controller = sCon as TimesignatureController;

        // Assign pooled objects
        controller.ts = (TimeSignature)songObject;
        controller.gameObject.SetActive(true);
    }
Exemplo n.º 4
0
    protected override void Assign(SongObjectController sCon, SongObject songObject)
    {
        BPMController controller = sCon as BPMController;

        // Assign pooled objects
        controller.bpm = (BPM)songObject;
        controller.gameObject.SetActive(true);
    }
Exemplo n.º 5
0
    protected override void Assign(SongObjectController sCon, SongObject songObject)
    {
        SectionController controller = sCon as SectionController;

        // Assign pooled objects
        controller.section = (Section)songObject;
        controller.gameObject.SetActive(true);
    }
    protected override void Assign(SongObjectController sCon, SongObject songObject)
    {
        StarpowerController controller = sCon as StarpowerController;

        // Assign pooled objects
        controller.starpower = (Starpower)songObject;
        controller.gameObject.SetActive(true);
    }
Exemplo n.º 7
0
    protected override void Assign(SongObjectController sCon, SongObject songObject)
    {
        EventController controller = sCon as EventController;

        // Assign pooled objects
        controller.songEvent = (MoonscraperChartEditor.Song.Event)songObject;
        controller.gameObject.SetActive(true);
    }
Exemplo n.º 8
0
    protected override void Assign(SongObjectController sCon, SongObject songObject)
    {
        ChartEventController controller = sCon as ChartEventController;

        // Assign pooled objects
        controller.chartEvent = (ChartEvent)songObject;
        controller.gameObject.SetActive(true);
    }
Exemplo n.º 9
0
    protected override void Assign(SongObjectController sCon, SongObject songObject)
    {
        NoteController controller = sCon as NoteController;

        // Assign pooled objects
        controller.note = (Note)songObject;
        controller.Activate();
        controller.gameObject.SetActive(true);
    }
    protected override void Awake()
    {
        renderers = GetComponentsInChildren <Renderer>();
        base.Awake();

        SongObjectController controller = GetComponent <SongObjectController>();

        controller.disableCancel = false;

        SetSongObjectAndController();
    }
Exemplo n.º 11
0
    protected override void Awake()
    {
        renderers = GetComponentsInChildren <Renderer>();
        base.Awake();

        SongObjectController controller = GetComponent <SongObjectController>();

        controller.disableCancel = false;

        SetSongObjectAndController();

        editor.events.keyboardModeToggledEvent.Register(OnKeysModeToggled);
    }
Exemplo n.º 12
0
    protected void Init(SongObject _songObject, SongObjectController controller)
    {
        if (_songObject == null && songObject != null)
        {
            songObject.controller = null;
        }

        songObject = _songObject;

        if (songObject != null)
        {
            songObject.controller = controller;
        }
    }
Exemplo n.º 13
0
    void DeleteSongObject(SongObjectController soController)
    {
        if (soController && soController.GetSongObject() != null)       // Dunno why song object would ever be null, but may as well be safe
        {
            SongObject songObject = soController.GetSongObject();
            if (MSChartEditorInput.GetInput(MSChartEditorInputActions.ChordSelect) && songObject.classID == (int)SongObject.ID.Note)
            {
                foreach (Note note in ((Note)songObject).chord)
                {
                    dragEraseHistory.Add(note);
                }
            }
            else if ((songObject.classID != (int)SongObject.ID.BPM && songObject.classID != (int)SongObject.ID.TimeSignature) || songObject.tick != 0)
            {
                dragEraseHistory.Add(songObject);
            }

            ExecuteCurrentDeletes();
        }
    }
Exemplo n.º 14
0
 protected abstract void Assign(SongObjectController sCon, SongObject songObject);
Exemplo n.º 15
0
    public void Copy()
    {
        const float DEFAULT_LEFT  = -2;
        const float DEFAULT_RIGHT = 2;

        var   songObjectsCopy = new SongObject[selectedObjectsManager.currentSelectedObjects.Count];
        float?left = null, right = null;
        float position = 0;

        bool containsNotes = false;

        // Scan through all the current objects to determine width of scanned area
        for (int i = 0; i < selectedObjectsManager.currentSelectedObjects.Count; ++i)
        {
            if (!containsNotes && selectedObjectsManager.currentSelectedObjects[i].GetType() == typeof(Note))
            {
                containsNotes = true;
            }

            songObjectsCopy[i] = selectedObjectsManager.currentSelectedObjects[i].Clone();

            position = SongObjectController.GetXPos(selectedObjectsManager.currentSelectedObjects[i]);

            if (left == null || position < left)
            {
                left = position;
            }

            if (right == null || position > right)
            {
                right = position;
            }
        }

        // Default collision size
        if (containsNotes)
        {
            if (left > DEFAULT_LEFT)
            {
                left = DEFAULT_LEFT;
            }
            if (right < DEFAULT_RIGHT)
            {
                right = DEFAULT_RIGHT;
            }
        }

        if (left == null)
        {
            left = DEFAULT_LEFT;
        }
        if (right == null)
        {
            right = DEFAULT_RIGHT;
        }

        Vector2 bottomLeft = Vector2.zero;
        Vector2 upperRight = Vector2.zero;
        var     area       = new Clipboard.SelectionArea();

        if (selectedObjectsManager.currentSelectedObjects.Count > 0)
        {
            bottomLeft = new Vector2((float)left, currentSong.TickToWorldYPosition(songObjectsCopy[0].tick));
            upperRight = new Vector2((float)right, currentSong.TickToWorldYPosition(songObjectsCopy[songObjectsCopy.Length - 1].tick));
            area       = new Clipboard.SelectionArea(bottomLeft, upperRight, songObjectsCopy[0].tick, songObjectsCopy[songObjectsCopy.Length - 1].tick);
        }

        ClipboardObjectController.SetData(songObjectsCopy, area, currentSong);
    }