mirror of
https://github.com/osukey/osukey.git
synced 2025-06-29 15:17:57 +09:00
Add option toggles and configuration for snaking in and out sliders.
This commit is contained in:
parent
a1efd25ac1
commit
c43b47da2a
@ -11,6 +11,8 @@ using osu.Framework.Input;
|
|||||||
using OpenTK.Graphics.ES30;
|
using OpenTK.Graphics.ES30;
|
||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
using osu.Framework.Graphics.Textures;
|
using osu.Framework.Graphics.Textures;
|
||||||
|
using osu.Game.Configuration;
|
||||||
|
using osu.Framework.Configuration;
|
||||||
|
|
||||||
namespace osu.Game.Modes.Osu.Objects.Drawables
|
namespace osu.Game.Modes.Osu.Objects.Drawables
|
||||||
{
|
{
|
||||||
@ -49,12 +51,24 @@ namespace osu.Game.Modes.Osu.Objects.Drawables
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Bindable<bool> snakingIn;
|
||||||
|
private Bindable<bool> snakingOut;
|
||||||
|
|
||||||
|
[BackgroundDependencyLoader]
|
||||||
|
private void load(OsuConfigManager config)
|
||||||
|
{
|
||||||
|
snakingIn = config.GetBindable<bool>(OsuConfig.SnakingInSliders);
|
||||||
|
snakingOut = config.GetBindable<bool>(OsuConfig.SnakingOutSliders);
|
||||||
|
}
|
||||||
|
|
||||||
protected override void LoadComplete()
|
protected override void LoadComplete()
|
||||||
{
|
{
|
||||||
base.LoadComplete();
|
base.LoadComplete();
|
||||||
|
|
||||||
//force application of the state that was set before we loaded.
|
//force application of the state that was set before we loaded.
|
||||||
UpdateState(State);
|
UpdateState(State);
|
||||||
|
|
||||||
|
body.PathWidth = 32;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Update()
|
protected override void Update()
|
||||||
@ -77,7 +91,9 @@ namespace osu.Game.Modes.Osu.Objects.Drawables
|
|||||||
ball.Position = slider.Curve.PositionAt(currentProgress);
|
ball.Position = slider.Curve.PositionAt(currentProgress);
|
||||||
|
|
||||||
double drawEndProgress = MathHelper.Clamp((Time.Current - slider.StartTime + TIME_PREEMPT) / TIME_FADEIN, 0, 1);
|
double drawEndProgress = MathHelper.Clamp((Time.Current - slider.StartTime + TIME_PREEMPT) / TIME_FADEIN, 0, 1);
|
||||||
body.SetRange(drawStartProgress, drawEndProgress);
|
body.SetRange(
|
||||||
|
snakingOut ? drawStartProgress : 0,
|
||||||
|
snakingIn ? drawEndProgress : 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void CheckJudgement(bool userTriggered)
|
protected override void CheckJudgement(bool userTriggered)
|
||||||
@ -192,8 +208,14 @@ namespace osu.Game.Modes.Osu.Objects.Drawables
|
|||||||
private Path path;
|
private Path path;
|
||||||
private BufferedContainer container;
|
private BufferedContainer container;
|
||||||
|
|
||||||
private double drawnProgressStart;
|
public float PathWidth
|
||||||
private double drawnProgressEnd;
|
{
|
||||||
|
get { return path.PathWidth; }
|
||||||
|
set { path.PathWidth = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
private double? drawnProgressStart;
|
||||||
|
private double? drawnProgressEnd;
|
||||||
|
|
||||||
private Slider slider;
|
private Slider slider;
|
||||||
public Body(Slider s)
|
public Body(Slider s)
|
||||||
@ -227,12 +249,6 @@ namespace osu.Game.Modes.Osu.Objects.Drawables
|
|||||||
path.Texture = textures.Get(@"Menu/logo");
|
path.Texture = textures.Get(@"Menu/logo");
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void LoadComplete()
|
|
||||||
{
|
|
||||||
base.LoadComplete();
|
|
||||||
path.PathWidth = 32;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetRange(double p0, double p1)
|
public void SetRange(double p0, double p1)
|
||||||
{
|
{
|
||||||
if (p0 > p1)
|
if (p0 > p1)
|
||||||
|
@ -9,7 +9,7 @@ using osu.Game.Screens.Play;
|
|||||||
|
|
||||||
namespace osu.Game.Configuration
|
namespace osu.Game.Configuration
|
||||||
{
|
{
|
||||||
class OsuConfigManager : ConfigManager<OsuConfig>
|
public class OsuConfigManager : ConfigManager<OsuConfig>
|
||||||
{
|
{
|
||||||
protected override void InitialiseDefaults()
|
protected override void InitialiseDefaults()
|
||||||
{
|
{
|
||||||
@ -129,7 +129,8 @@ namespace osu.Game.Configuration
|
|||||||
//Set(OsuConfig.Skin, SkinManager.DEFAULT_SKIN);
|
//Set(OsuConfig.Skin, SkinManager.DEFAULT_SKIN);
|
||||||
Set(OsuConfig.SkinSamples, true);
|
Set(OsuConfig.SkinSamples, true);
|
||||||
Set(OsuConfig.SkipTablet, false);
|
Set(OsuConfig.SkipTablet, false);
|
||||||
Set(OsuConfig.SnakingSliders, true);
|
Set(OsuConfig.SnakingInSliders, true);
|
||||||
|
Set(OsuConfig.SnakingOutSliders, false);
|
||||||
Set(OsuConfig.Tablet, false);
|
Set(OsuConfig.Tablet, false);
|
||||||
Set(OsuConfig.UpdatePending, false);
|
Set(OsuConfig.UpdatePending, false);
|
||||||
Set(OsuConfig.UseSkinCursor, false);
|
Set(OsuConfig.UseSkinCursor, false);
|
||||||
@ -189,7 +190,7 @@ namespace osu.Game.Configuration
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
enum OsuConfig
|
public enum OsuConfig
|
||||||
{
|
{
|
||||||
// New osu:
|
// New osu:
|
||||||
PlayMode,
|
PlayMode,
|
||||||
@ -303,7 +304,8 @@ namespace osu.Game.Configuration
|
|||||||
Skin,
|
Skin,
|
||||||
SkinSamples,
|
SkinSamples,
|
||||||
SkipTablet,
|
SkipTablet,
|
||||||
SnakingSliders,
|
SnakingInSliders,
|
||||||
|
SnakingOutSliders,
|
||||||
Tablet,
|
Tablet,
|
||||||
UpdatePending,
|
UpdatePending,
|
||||||
UserFilter,
|
UserFilter,
|
||||||
@ -345,5 +347,6 @@ namespace osu.Game.Configuration
|
|||||||
Ticker,
|
Ticker,
|
||||||
CompatibilityContext,
|
CompatibilityContext,
|
||||||
CanForceOptimusCompatibility,
|
CanForceOptimusCompatibility,
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,8 +18,13 @@ namespace osu.Game.Overlays.Options.Graphics
|
|||||||
{
|
{
|
||||||
new CheckBoxOption
|
new CheckBoxOption
|
||||||
{
|
{
|
||||||
LabelText = "Snaking sliders",
|
LabelText = "Snaking in sliders",
|
||||||
Bindable = config.GetBindable<bool>(OsuConfig.SnakingSliders)
|
Bindable = config.GetBindable<bool>(OsuConfig.SnakingInSliders)
|
||||||
|
},
|
||||||
|
new CheckBoxOption
|
||||||
|
{
|
||||||
|
LabelText = "Snaking out sliders",
|
||||||
|
Bindable = config.GetBindable<bool>(OsuConfig.SnakingOutSliders)
|
||||||
},
|
},
|
||||||
new CheckBoxOption
|
new CheckBoxOption
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user