osu/osu.Game.Rulesets.Mania/Objects/ManiaHitObject.cs

44 lines
1.1 KiB
C#
Raw Normal View History

2018-04-13 09:19:50 +00:00
// Copyright (c) 2007-2018 ppy Pty Ltd <contact@ppy.sh>.
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
2018-05-20 10:22:42 +00:00
using osu.Game.Rulesets.Edit.Types;
2018-04-13 09:19:50 +00:00
using osu.Game.Rulesets.Objects;
2018-05-20 10:22:42 +00:00
using osu.Game.Rulesets.Objects.Types;
using System;
2018-04-13 09:19:50 +00:00
namespace osu.Game.Rulesets.Mania.Objects
{
2018-05-21 20:24:10 +00:00
public abstract class ManiaHitObject : HitObject, IHasColumn, IHasXPosition, IHasEditableColumn
2018-04-13 09:19:50 +00:00
{
2018-05-20 10:22:42 +00:00
public event Action<int> ColumnChanged;
private int column { get; set; }
public virtual int Column
{
get => column;
set
{
if (column == value)
return;
column = value;
ColumnChanged?.Invoke(value);
}
}
public virtual int Layer { get; set; }
public virtual float X
{
get => Column;
}
public virtual void OffsetColumn(int offset) => Column += offset;
public virtual void OffsetLayer(int offset) => Layer += offset;
2018-04-13 09:19:50 +00:00
protected override HitWindows CreateHitWindows() => new ManiaHitWindows();
2018-04-13 09:19:50 +00:00
}
}