Exemple #1
0
    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);
    }
Exemple #2
0
    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);
    }