Skip to content

Commit

Permalink
Add/Remove DrawableHitObject methods in laned playefields
Browse files Browse the repository at this point in the history
  • Loading branch information
LumpBloom7 committed Jun 19, 2024
1 parent 47a3f36 commit c2a6c5b
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 2 deletions.
21 changes: 19 additions & 2 deletions osu.Game.Rulesets.Sentakki/UI/LanedPlayfield.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Pooling;
using osu.Game.Rulesets.Objects;
using osu.Game.Rulesets.Objects.Drawables;
using osu.Game.Rulesets.Sentakki.Objects;
using osu.Game.Rulesets.Sentakki.Objects.Drawables;
using osu.Game.Rulesets.Sentakki.Objects.Drawables.Pieces.Slides;
Expand Down Expand Up @@ -75,8 +76,24 @@ public override bool Remove(HitObject hitObject)
if (hitObject is not SentakkiLanedHitObject lanedHitObject)
return false;

HitObjectLineRenderer.RemoveHitObject(lanedHitObject);
return Lanes[lanedHitObject.Lane].Remove(hitObject: lanedHitObject);
return Lanes[lanedHitObject.Lane].Remove(lanedHitObject);
}
public override void Add(DrawableHitObject h)
{
switch (h)
{
case DrawableSentakkiLanedHitObject laned:
Lanes[laned.HitObject.Lane].Add(h);
break;
}
}

public override bool Remove(DrawableHitObject hitObject)
{
if (hitObject is not DrawableSentakkiLanedHitObject lanedHitObject)
return false;

return Lanes[lanedHitObject.HitObject.Lane].Remove(lanedHitObject);
}

private void onHitObjectLoaded(Drawable hitObject)
Expand Down
33 changes: 33 additions & 0 deletions osu.Game.Rulesets.Sentakki/UI/SentakkiPlayfield.cs
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,39 @@ public override bool Remove(HitObject h)
}
}

public override void Add(DrawableHitObject h)
{
switch (h)
{
case SentakkiLanedHitObject:
LanedPlayfield.Add(h);
break;

case Touch:
touchPlayfield.Add(h);
break;

default:
base.Add(h);
break;
}
}

public override bool Remove(DrawableHitObject h)
{
switch (h)
{
case SentakkiLanedHitObject:
return LanedPlayfield.Remove(h);

case Touch:
return touchPlayfield.Remove(h);
default:
return base.Remove(h);
}
}


private void onNewResult(DrawableHitObject judgedObject, JudgementResult result)
{
if (!judgedObject.DisplayResult || !DisplayJudgements.Value || judgedObject is not DrawableSentakkiHitObject sentakkiHitObject)
Expand Down

0 comments on commit c2a6c5b

Please sign in to comment.