Exemplo n.º 1
0
 public override void Relocate(Position pos)
 {
     base.Relocate(pos);
     Air?.Relocate(pos);
     airHoldBegin?.Relocate(pos);
     return;
 }
Exemplo n.º 2
0
 public override void RelocateOnlyAndUpdate(Position position, LaneBook laneBook)
 {
     base.RelocateOnlyAndUpdate(position, laneBook);
     Air?.RelocateOnlyAndUpdate(position, laneBook);
     airHoldBegin?.Relocate(position);
     airHoldBegin?.UpdateLocation(laneBook);
 }
Exemplo n.º 3
0
 public override void Relocate(PointF location, int laneIndex)
 {
     base.Relocate(location, laneIndex);
     Air?.Relocate(location, laneIndex);
     airHoldBegin?.Relocate(location, laneIndex);
     return;
 }
Exemplo n.º 4
0
 /// <summary>
 /// このノーツの位置変更とそれに付随するAir、AirHoldノーツの位置のみを変更します
 /// </summary>
 /// <param name="pos"></param>
 /// <param name="location"></param>
 /// <param name="laneIndex"></param>
 public new void RelocateOnly(Position pos, PointF location, int laneIndex)
 {
     base.RelocateOnly(pos, location, laneIndex);
     Air?.RelocateOnly(pos, location, laneIndex);
     //AirHold全体に変更を反映させるためRelocateを使う
     airHoldBegin?.Relocate(pos, location, laneIndex);
 }
Exemplo n.º 5
0
 public override void ReSize(int size)
 {
     base.ReSize(size);
     Air?.ReSize(size);
     airHoldBegin?.ReSize(size);
     return;
 }
Exemplo n.º 6
0
 public void AttachAir(Air air)
 {
     if (air == null)
     {
         Logger.Error("AirableNoteへのAirの紐づけに失敗しました。引数airがnullです。");
         return;
     }
     Air             = air;
     air.GetAirable += () => this;
 }
Exemplo n.º 7
0
 public AirableNote(Note note) : base(note)
 {
     if (note is AirableNote airable)
     {
         if (airable.Air != null)
         {
             Air = new Air(airable.Air);
         }
         if (airable.AirHold != null)
         {
             AirHold = new AirHold(airable.AirHold);
         }
     }
 }
Exemplo n.º 8
0
 /// <summary>
 /// AirableノーツからAirを取り外します。
 /// 失敗した場合、出力引数はnullになります。
 /// </summary>
 public bool DetachAirFromAirableNote(AirableNote airable, out Air air)
 {
     air = null;
     if (airable == null)
     {
         Logger.Error("引数のAirableNoteがnullのため、操作を行えません。");
         return(false);
     }
     if (!airable.IsAirAttached)
     {
         Logger.Error("Air取り外し対象のAirableNoteにはAirが取り付けられていませんでした。");
         return(false);
     }
     air = airable.Air;
     airable.DetachAir();
     airNotes.Remove(air);
     return(true);
 }
Exemplo n.º 9
0
 /// <summary>
 /// 配置済みAirableノーツに対して新規Airノーツを配置し取り付けます。
 /// </summary>
 public bool AttachAirToAirableNote(AirableNote airable, Air air)
 {
     if (airable == null || air == null)
     {
         Logger.Error("Airを取り付けできません。引数にnullが含まれます。", true);
         return(false);
     }
     if (!Contains(airable))
     {
         Logger.Error("Airノーツ取り付け先のAirableノーツはすでに配置されている必要があります。");
         return(false);
     }
     if (airable.IsAirAttached)
     {
         Logger.Error("Air取り付け先のAirableノーツにはすでにAirが取り付けられています。");
         return(false);
     }
     airable.AttachAir(air);
     airNotes.Add(air);
     return(true);
 }