示例#1
0
 public void AttachAirHold(AirHold airHold)
 {
     if (airHold == null)
     {
         Logger.Error("AirableNoteへのAirHoldの紐づけに失敗しました。引数airHoldがnullです。");
         return;
     }
     AirHold             = airHold;
     airHold.GetAirable += () => this;
     airHoldBegin        = airHold.AirHoldBegin;
     Debug.Assert(airHoldBegin != null);
     return;
 }
示例#2
0
        public AirHold(int size, Position pos, PointF location, int laneIndex)
        {
            AirHoldBegin airholdBegin = new AirHoldBegin(size, pos, location, laneIndex);

            airholdBegin.CheckNotePosition += CheckNotePosition;
            airholdBegin.CheckNoteSize     += CheckNoteSize;
            Add(airholdBegin);
            location.Y -= ScoreInfo.UnitBeatHeight * ScoreInfo.MaxBeatDiv / Status.Beat;
            AirHoldEnd airHoldEnd = new AirHoldEnd(size, pos.Next(), location, laneIndex);

            airHoldEnd.CheckNotePosition   += CheckNotePosition;
            airHoldEnd.IsPositionAvailable += IsPositionTickAvailable;
            Add(airHoldEnd);
            Status.SelectedNote = airHoldEnd;
        }
示例#3
0
        public AirHold(AirHold ah)
        {
            ah.ForEach(x =>
            {
                switch (x)
                {
                case AirHoldBegin airHoldBegin:
                    {
                        var note = new AirHoldBegin(airHoldBegin);
                        Add(note);
                        note.CheckNotePosition += CheckNotePosition;
                        note.CheckNoteSize     += CheckNoteSize;
                    }
                    break;

                case AirHoldEnd airHoldEnd:
                    {
                        var note = new AirHoldEnd(airHoldEnd);
                        Add(note);
                        note.CheckNotePosition   += CheckNotePosition;
                        note.IsPositionAvailable += IsPositionTickAvailable;
                    }
                    break;

                case AirAction airAction:
                    {
                        var note = new AirAction(airAction);
                        base.Add(note);
                        note.CheckNotePosition   += CheckNotePosition;
                        note.IsPositionAvailable += IsPositionTickAvailable;
                    }
                    break;

                default:
                    Logger.Warn("AirHoldの要素ではないノーツです");
                    break;
                }
            });
        }
示例#4
0
 public void DetachAirHold()
 {
     AirHold      = null;
     airHoldBegin = null;
     return;
 }