public Note AddNote(Note notePrefab, GameObject bombSpherePrefab, GameObject blueCubePrefab, GameObject redCubePrefab, Note.CutDirection cutDirection, Vector2Int coordinate, float time, Note.ItemType type, bool active = false) { time -= GetMSInBeats(MapCreator._Map._beatsPerMinute, MapCreator._MapInfo.currentDifficulty.oldOffset); if (!NotesOnSameTime.ContainsKey(time)) { NotesOnSameTime.Add(time, new List <Note>()); } Note note = Note.Instantiate(notePrefab, bombSpherePrefab, blueCubePrefab, redCubePrefab, cutDirection, coordinate, time, type, active); NotesOnSameTime[time].Add(note); if (timeStamps.IndexOf(BeatLenghtInSeconds * note._time) < 0) { timeStamps.Add(BeatLenghtInSeconds * note._time); } float chunkTime = time.GetNearestRoundedDown(ChunkBeatSize); if (!NoteChunks.ContainsKey(chunkTime)) { NoteChunks.Add(chunkTime, new List <Note>()); } NoteChunks[chunkTime].Add(note); return(note); }
public void RemoveNote(Note note) { int timeStampIndex = MapCreator._Map.NotesOnSameTime.Values.IndexOf(MapEditorManager.Instance.ShowedNotes); NotesOnSameTime[note._time].Remove(note); if (NotesOnSameTime[note._time].Count == 0) { NotesOnSameTime.Remove(note._time); timeStamps.RemoveAt(timeStampIndex); } GameObject.Destroy(note.arrowCube); GameObject.Destroy(note.gameObject); }