public override BeatmapObjectContainer SpawnObject(BeatmapObject obj, out BeatmapObjectContainer conflicting, bool removeConflicting = true, bool refreshMap = true)
    {
        conflicting = null;
        if (removeConflicting)
        {
            conflicting = LoadedContainers.FirstOrDefault(x => x.objectData._time == obj._time &&
                                                          ((BeatmapNote)obj)._lineLayer == ((BeatmapNote)x.objectData)._lineLayer &&
                                                          ((BeatmapNote)obj)._lineIndex == ((BeatmapNote)x.objectData)._lineIndex &&
                                                          ((BeatmapNote)obj)._type == ((BeatmapNote)x.objectData)._type &&
                                                          ConflictingByTrackIDs(obj, x.objectData)
                                                          );
            if (conflicting != null)
            {
                DeleteObject(conflicting, true, $"Conflicted with a newer object at time {obj._time}");
            }
        }
        BeatmapNoteContainer beatmapNote = BeatmapNoteContainer.SpawnBeatmapNote(obj as BeatmapNote, ref notePrefab, ref bombPrefab, ref noteAppearanceSO);

        beatmapNote.transform.SetParent(GridTransform);
        beatmapNote.UpdateGridPosition();
        LoadedContainers.Add(beatmapNote);
        if (Settings.Instance.HighlightLastPlacedNotes)
        {
            beatmapNote.SetOutlineColor(Color.magenta);
        }
        if (refreshMap)
        {
            SelectionController.RefreshMap();
        }
        return(beatmapNote);
    }
        private void UpdateNote(BeatmapNoteContainer container, int lineIndex, int lineLayer, int cutDirection)
        {
            var note = (BeatmapNote)container.objectData;

            note._lineIndex    = lineIndex;
            note._lineLayer    = lineLayer;
            note._cutDirection = cutDirection;
            container.UpdateGridPosition();
            container.transform.localEulerAngles = BeatmapNoteContainer.Directionalize(note);
        }
示例#3
0
    public override BeatmapObjectContainer SpawnObject(BeatmapObject obj)
    {
        BeatmapObjectContainer conflicting = LoadedContainers.FirstOrDefault(x => x.objectData._time == obj._time &&
                                                                             (obj as BeatmapNote)._lineLayer == (x.objectData as BeatmapNote)._lineLayer &&
                                                                             (obj as BeatmapNote)._lineIndex == (x.objectData as BeatmapNote)._lineIndex
                                                                             );

        if (conflicting != null)
        {
            DeleteObject(conflicting);
        }
        BeatmapNoteContainer beatmapNote = BeatmapNoteContainer.SpawnBeatmapNote(obj as BeatmapNote, ref notePrefab, ref bombPrefab, ref noteAppearanceSO);

        beatmapNote.transform.SetParent(GridTransform);
        beatmapNote.UpdateGridPosition();
        LoadedContainers.Add(beatmapNote);
        return(beatmapNote);
    }
示例#4
0
    public override BeatmapObjectContainer SpawnObject(BeatmapObject obj, out BeatmapObjectContainer conflicting, bool removeConflicting = true)
    {
        conflicting = LoadedContainers.FirstOrDefault(x => x.objectData._time == obj._time &&
                                                      (obj as BeatmapNote)._lineLayer == (x.objectData as BeatmapNote)._lineLayer &&
                                                      (obj as BeatmapNote)._lineIndex == (x.objectData as BeatmapNote)._lineIndex &&
                                                      (obj as BeatmapNote)._type == (x.objectData as BeatmapNote)._type &&
                                                      ConflictingByTrackIDs(obj, x.objectData)
                                                      );
        if (conflicting != null && removeConflicting)
        {
            DeleteObject(conflicting);
        }
        BeatmapNoteContainer beatmapNote = BeatmapNoteContainer.SpawnBeatmapNote(obj as BeatmapNote, ref notePrefab, ref bombPrefab, ref noteAppearanceSO);

        beatmapNote.transform.SetParent(GridTransform);
        beatmapNote.UpdateGridPosition();
        LoadedContainers.Add(beatmapNote);
        SelectionController.RefreshMap();
        return(beatmapNote);
    }