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(); } }
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(); } }
protected override void Assign(SongObjectController sCon, SongObject songObject) { TimesignatureController controller = sCon as TimesignatureController; // Assign pooled objects controller.ts = (TimeSignature)songObject; controller.gameObject.SetActive(true); }
protected override void Assign(SongObjectController sCon, SongObject songObject) { BPMController controller = sCon as BPMController; // Assign pooled objects controller.bpm = (BPM)songObject; controller.gameObject.SetActive(true); }
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); }
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); }
protected override void Assign(SongObjectController sCon, SongObject songObject) { ChartEventController controller = sCon as ChartEventController; // Assign pooled objects controller.chartEvent = (ChartEvent)songObject; controller.gameObject.SetActive(true); }
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(); }
protected override void Awake() { renderers = GetComponentsInChildren <Renderer>(); base.Awake(); SongObjectController controller = GetComponent <SongObjectController>(); controller.disableCancel = false; SetSongObjectAndController(); editor.events.keyboardModeToggledEvent.Register(OnKeysModeToggled); }
protected void Init(SongObject _songObject, SongObjectController controller) { if (_songObject == null && songObject != null) { songObject.controller = null; } songObject = _songObject; if (songObject != null) { songObject.controller = controller; } }
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(); } }
protected abstract void Assign(SongObjectController sCon, SongObject songObject);
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); }