Use virtual property instead of a field for optional pieces

This commit is contained in:
ekrctb 2020-12-08 17:15:40 +09:00
parent 603cecb2eb
commit 4d5c242d35
4 changed files with 15 additions and 2 deletions

View File

@ -7,6 +7,8 @@ namespace osu.Game.Rulesets.Catch.Skinning.Default
{
public class BananaPiece : CatchHitObjectPiece
{
protected override BorderPiece BorderPiece { get; }
public BananaPiece()
{
RelativeSizeAxes = Axes.Both;

View File

@ -21,11 +21,17 @@ public abstract class CatchHitObjectPiece : CompositeDrawable
[CanBeNull]
protected DrawableHitObject DrawableHitObject { get; private set; }
/// <summary>
/// A part of this piece that will be faded out while falling in the playfield.
/// </summary>
[CanBeNull]
protected BorderPiece BorderPiece;
protected virtual BorderPiece BorderPiece => null;
/// <summary>
/// A part of this piece that will be only visible when <see cref="HyperDash"/> is true.
/// </summary>
[CanBeNull]
protected HyperBorderPiece HyperBorderPiece;
protected virtual HyperBorderPiece HyperBorderPiece => null;
protected override void LoadComplete()
{

View File

@ -9,6 +9,8 @@ namespace osu.Game.Rulesets.Catch.Skinning.Default
{
public class DropletPiece : CatchHitObjectPiece
{
protected override HyperBorderPiece HyperBorderPiece { get; }
public DropletPiece()
{
Size = new Vector2(CatchHitObject.OBJECT_RADIUS / 2);

View File

@ -16,6 +16,9 @@ internal class FruitPiece : CatchHitObjectPiece
public readonly Bindable<FruitVisualRepresentation> VisualRepresentation = new Bindable<FruitVisualRepresentation>();
protected override BorderPiece BorderPiece { get; }
protected override HyperBorderPiece HyperBorderPiece { get; }
public FruitPiece()
{
RelativeSizeAxes = Axes.Both;