mirror of
https://github.com/ppy/osu.git
synced 2024-11-15 20:37:26 +08:00
4d669c56a2
Uses pooling for all analysis objects and creates the lifetime entries from replay data when the analysis container is constructed.
59 lines
2.2 KiB
C#
59 lines
2.2 KiB
C#
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
|
// See the LICENCE file in the repository root for full licence text.
|
|
|
|
using osu.Framework.Bindables;
|
|
using osu.Framework.Graphics;
|
|
using osu.Game.Localisation;
|
|
using osu.Game.Replays;
|
|
using osu.Game.Rulesets.UI;
|
|
using osu.Game.Screens.Play.PlayerSettings;
|
|
|
|
namespace osu.Game.Rulesets.Osu.UI
|
|
{
|
|
public partial class OsuAnalysisSettings : AnalysisSettings
|
|
{
|
|
protected new DrawableOsuRuleset DrawableRuleset => (DrawableOsuRuleset)base.DrawableRuleset;
|
|
|
|
private readonly PlayerCheckbox hitMarkerToggle;
|
|
private readonly PlayerCheckbox aimMarkerToggle;
|
|
private readonly PlayerCheckbox hideCursorToggle;
|
|
private readonly PlayerCheckbox aimLinesToggle;
|
|
|
|
public OsuAnalysisSettings(DrawableRuleset drawableRuleset)
|
|
: base(drawableRuleset)
|
|
{
|
|
Children = new Drawable[]
|
|
{
|
|
hitMarkerToggle = new PlayerCheckbox { LabelText = PlayerSettingsOverlayStrings.HitMarkers },
|
|
aimMarkerToggle = new PlayerCheckbox { LabelText = PlayerSettingsOverlayStrings.AimMarkers },
|
|
aimLinesToggle = new PlayerCheckbox { LabelText = PlayerSettingsOverlayStrings.AimLines },
|
|
hideCursorToggle = new PlayerCheckbox { LabelText = PlayerSettingsOverlayStrings.HideCursor }
|
|
};
|
|
|
|
hideCursorToggle.Current.BindValueChanged(onCursorToggle);
|
|
}
|
|
|
|
private void onCursorToggle(ValueChangedEvent<bool> hide)
|
|
{
|
|
// this only hides half the cursor
|
|
if (hide.NewValue)
|
|
{
|
|
DrawableRuleset.Playfield.Cursor.FadeOut();
|
|
}
|
|
else
|
|
{
|
|
DrawableRuleset.Playfield.Cursor.FadeIn();
|
|
}
|
|
}
|
|
|
|
public override AnalysisContainer CreateAnalysisContainer(Replay replay)
|
|
{
|
|
var analysisContainer = new OsuAnalysisContainer(replay);
|
|
analysisContainer.HitMarkerEnabled.BindTo(hitMarkerToggle.Current);
|
|
analysisContainer.AimMarkersEnabled.BindTo(aimMarkerToggle.Current);
|
|
analysisContainer.AimLinesEnabled.BindTo(aimLinesToggle.Current);
|
|
return analysisContainer;
|
|
}
|
|
}
|
|
}
|