mirror of
https://github.com/osukey/osukey.git
synced 2025-08-03 14:46:38 +09:00
Bind to clock instead of music controller
This commit is contained in:
@ -5,6 +5,7 @@
|
||||
|
||||
using System;
|
||||
using osu.Framework.Allocation;
|
||||
using osu.Framework.Audio.Track;
|
||||
using osu.Framework.Bindables;
|
||||
using osu.Framework.Extensions.Color4Extensions;
|
||||
using osu.Framework.Graphics;
|
||||
@ -15,7 +16,6 @@ using osu.Framework.Input.Events;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.Graphics;
|
||||
using osu.Game.Overlays;
|
||||
using osu.Game.Rulesets.Edit;
|
||||
using osuTK;
|
||||
using osuTK.Input;
|
||||
@ -42,9 +42,6 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
|
||||
[Resolved]
|
||||
private EditorBeatmap editorBeatmap { get; set; }
|
||||
|
||||
[Resolved]
|
||||
private MusicController musicController { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The timeline's scroll position in the last frame.
|
||||
/// </summary>
|
||||
@ -94,6 +91,8 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
|
||||
|
||||
private double trackLengthForZoom;
|
||||
|
||||
private readonly IBindable<Track> track = new Bindable<Track>();
|
||||
|
||||
[BackgroundDependencyLoader]
|
||||
private void load(IBindable<WorkingBeatmap> beatmap, OsuColour colours, OsuConfigManager config)
|
||||
{
|
||||
@ -141,7 +140,12 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
|
||||
|
||||
waveformOpacity = config.GetBindable<float>(OsuSetting.EditorWaveformOpacity);
|
||||
|
||||
musicController.TrackChanged += onTrackReload;
|
||||
track.BindTo(editorClock.Track);
|
||||
track.BindValueChanged(_ =>
|
||||
{
|
||||
waveform.Waveform = beatmap.Value.Waveform;
|
||||
}, true);
|
||||
|
||||
waveform.Waveform = beatmap.Value.Waveform;
|
||||
|
||||
Zoom = (float)(defaultTimelineZoom * editorBeatmap.BeatmapInfo.TimelineZoom);
|
||||
@ -180,11 +184,6 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
|
||||
private void updateWaveformOpacity() =>
|
||||
waveform.FadeTo(WaveformVisible.Value ? waveformOpacity.Value : 0, 200, Easing.OutQuint);
|
||||
|
||||
private void onTrackReload(WorkingBeatmap beatmap, TrackChangeDirection tcd)
|
||||
{
|
||||
waveform.Waveform = beatmap.Waveform;
|
||||
}
|
||||
|
||||
protected override void Update()
|
||||
{
|
||||
base.Update();
|
||||
@ -325,11 +324,5 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
|
||||
double time = TimeAtPosition(Content.ToLocalSpace(screenSpacePosition).X);
|
||||
return new SnapResult(screenSpacePosition, beatSnapProvider.SnapTime(time));
|
||||
}
|
||||
|
||||
protected override void Dispose(bool isDisposing)
|
||||
{
|
||||
musicController.TrackChanged -= onTrackReload;
|
||||
base.Dispose(isDisposing);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3,13 +3,13 @@
|
||||
|
||||
using System.Linq;
|
||||
using osu.Framework.Allocation;
|
||||
using osu.Framework.Audio.Track;
|
||||
using osu.Framework.Bindables;
|
||||
using osu.Framework.Graphics;
|
||||
using osu.Framework.Graphics.Containers;
|
||||
using osu.Framework.Graphics.Shapes;
|
||||
using osu.Framework.Graphics.Sprites;
|
||||
using osu.Framework.Input.Events;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Beatmaps.ControlPoints;
|
||||
using osu.Game.Graphics;
|
||||
using osu.Game.Graphics.UserInterface;
|
||||
@ -30,8 +30,7 @@ namespace osu.Game.Screens.Edit.Timing
|
||||
[Resolved]
|
||||
private Bindable<ControlPointGroup> selectedGroup { get; set; } = null!;
|
||||
|
||||
[Resolved]
|
||||
private MusicController musicController { get; set; } = null!;
|
||||
private readonly IBindable<Track> track = new Bindable<Track>();
|
||||
|
||||
private readonly BindableBool isHandlingTapping = new BindableBool();
|
||||
|
||||
@ -39,7 +38,7 @@ namespace osu.Game.Screens.Edit.Timing
|
||||
private Container<WaveformComparisonDisplay> waveformContainer = null!;
|
||||
|
||||
[BackgroundDependencyLoader]
|
||||
private void load(OverlayColourProvider colourProvider, OsuColour colours)
|
||||
private void load(OverlayColourProvider colourProvider, OsuColour colours, EditorClock clock)
|
||||
{
|
||||
const float padding = 10;
|
||||
|
||||
@ -189,12 +188,8 @@ namespace osu.Game.Screens.Edit.Timing
|
||||
start();
|
||||
}, true);
|
||||
|
||||
musicController.TrackChanged += onTrackReload;
|
||||
}
|
||||
|
||||
private void onTrackReload(WorkingBeatmap beatmap, TrackChangeDirection tcd)
|
||||
{
|
||||
waveformContainer.Child = new WaveformComparisonDisplay();
|
||||
track.BindTo(clock.Track);
|
||||
track.ValueChanged += _ => waveformContainer.Child = new WaveformComparisonDisplay();
|
||||
}
|
||||
|
||||
private void start()
|
||||
@ -249,12 +244,6 @@ namespace osu.Game.Screens.Edit.Timing
|
||||
timing.BeatLength = 60000 / (timing.BPM + adjust);
|
||||
}
|
||||
|
||||
protected override void Dispose(bool isDisposing)
|
||||
{
|
||||
musicController.TrackChanged -= onTrackReload;
|
||||
base.Dispose(isDisposing);
|
||||
}
|
||||
|
||||
private partial class InlineButton : OsuButton
|
||||
{
|
||||
private readonly IconUsage icon;
|
||||
|
Reference in New Issue
Block a user