From cbd6fe3f361afdecedc405a68449a2032b3a842f Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Mon, 30 Jan 2017 22:00:23 +0900 Subject: [PATCH] Move definition of MusicController's position out of itself. --- osu.Game/OsuGame.cs | 7 +- osu.Game/Overlays/MusicController.cs | 218 ++++++++++++++------------- osu.Game/Overlays/Toolbar/Toolbar.cs | 4 +- 3 files changed, 120 insertions(+), 109 deletions(-) diff --git a/osu.Game/OsuGame.cs b/osu.Game/OsuGame.cs index c4d94b5d65..0309d60834 100644 --- a/osu.Game/OsuGame.cs +++ b/osu.Game/OsuGame.cs @@ -21,6 +21,7 @@ using osu.Game.Overlays.Toolbar; using osu.Game.Screens; using osu.Game.Screens.Menu; +using OpenTK; namespace osu.Game { @@ -101,7 +102,11 @@ protected override void LoadComplete() //overlay elements (chat = new ChatOverlay { Depth = 0 }).Preload(this, overlayContent.Add); (options = new OptionsOverlay { Depth = -1 }).Preload(this, overlayContent.Add); - (musicController = new MusicController() { Depth = -3 }).Preload(this, overlayContent.Add); + (musicController = new MusicController() + { + Depth = -3, + Position = new Vector2(0, Toolbar.HEIGHT), + }).Preload(this, overlayContent.Add); Dependencies.Cache(options); Dependencies.Cache(musicController); diff --git a/osu.Game/Overlays/MusicController.cs b/osu.Game/Overlays/MusicController.cs index e480bf3061..8730309a6a 100644 --- a/osu.Game/Overlays/MusicController.cs +++ b/osu.Game/Overlays/MusicController.cs @@ -28,8 +28,6 @@ namespace osu.Game.Overlays { public class MusicController : OverlayContainer { - private static readonly Vector2 start_position = new Vector2(0, 50); - private MusicControllerBackground backgroundSprite; private DragBar progress; private TextAwesome playButton, listButton; @@ -47,22 +45,15 @@ public class MusicController : OverlayContainer private BeatmapDatabase beatmaps; private BaseGame game; + private Container dragContainer; + public MusicController() { Width = 400; Height = 130; - CornerRadius = 5; - EdgeEffect = new EdgeEffect - { - Type = EdgeEffectType.Shadow, - Colour = Color4.Black.Opacity(40), - Radius = 5, - }; - Masking = true; Anchor = Anchor.TopRight;//placeholder Origin = Anchor.TopRight; - Position = start_position; Margin = new MarginPadding(10); } @@ -75,13 +66,13 @@ protected override bool OnDrag(InputState state) // Diminish the drag distance as we go further to simulate "rubber band" feeling. change *= (float)Math.Pow(change.Length, 0.7f) / change.Length; - MoveTo(start_position + change); + dragContainer.MoveTo(change); return base.OnDrag(state); } protected override bool OnDragEnd(InputState state) { - MoveTo(start_position, 800, EasingTypes.OutElastic); + dragContainer.MoveTo(Vector2.Zero, 800, EasingTypes.OutElastic); return base.OnDragEnd(state); } @@ -93,111 +84,126 @@ private void load(OsuGameBase osuGame, OsuConfigManager config, BeatmapDatabase Children = new Drawable[] { - title = new SpriteText + dragContainer = new Container { - Origin = Anchor.BottomCentre, - Anchor = Anchor.TopCentre, - Position = new Vector2(0, 40), - TextSize = 25, - Colour = Color4.White, - Text = @"Nothing to play", - Font = @"Exo2.0-MediumItalic" - }, - artist = new SpriteText - { - Origin = Anchor.TopCentre, - Anchor = Anchor.TopCentre, - Position = new Vector2(0, 45), - TextSize = 15, - Colour = Color4.White, - Text = @"Nothing to play", - Font = @"Exo2.0-BoldItalic" - }, - new ClickableContainer - { - AutoSizeAxes = Axes.Both, - Origin = Anchor.Centre, - Anchor = Anchor.BottomCentre, - Position = new Vector2(0, -30), - Action = () => + Masking = true, + CornerRadius = 5, + EdgeEffect = new EdgeEffect { - if (current?.Track == null) return; - if (current.Track.IsRunning) - current.Track.Stop(); - else - current.Track.Start(); + Type = EdgeEffectType.Shadow, + Colour = Color4.Black.Opacity(40), + Radius = 5, }, + RelativeSizeAxes = Axes.Both, Children = new Drawable[] { - playButton = new TextAwesome + title = new SpriteText { - TextSize = 30, - Icon = FontAwesome.fa_play_circle_o, - Origin = Anchor.Centre, - Anchor = Anchor.Centre - } - } - }, - new ClickableContainer - { - AutoSizeAxes = Axes.Both, - Origin = Anchor.Centre, - Anchor = Anchor.BottomCentre, - Position = new Vector2(-30, -30), - Action = prev, - Children = new Drawable[] - { - new TextAwesome + Origin = Anchor.BottomCentre, + Anchor = Anchor.TopCentre, + Position = new Vector2(0, 40), + TextSize = 25, + Colour = Color4.White, + Text = @"Nothing to play", + Font = @"Exo2.0-MediumItalic" + }, + artist = new SpriteText { + Origin = Anchor.TopCentre, + Anchor = Anchor.TopCentre, + Position = new Vector2(0, 45), TextSize = 15, - Icon = FontAwesome.fa_step_backward, - Origin = Anchor.Centre, - Anchor = Anchor.Centre - } - } - }, - new ClickableContainer - { - AutoSizeAxes = Axes.Both, - Origin = Anchor.Centre, - Anchor = Anchor.BottomCentre, - Position = new Vector2(30, -30), - Action = next, - Children = new Drawable[] - { - new TextAwesome + Colour = Color4.White, + Text = @"Nothing to play", + Font = @"Exo2.0-BoldItalic" + }, + new ClickableContainer { - TextSize = 15, - Icon = FontAwesome.fa_step_forward, + AutoSizeAxes = Axes.Both, Origin = Anchor.Centre, - Anchor = Anchor.Centre - } - } - }, - new ClickableContainer - { - AutoSizeAxes = Axes.Both, - Origin = Anchor.Centre, - Anchor = Anchor.BottomRight, - Position = new Vector2(20, -30), - Children = new Drawable[] - { - listButton = new TextAwesome + Anchor = Anchor.BottomCentre, + Position = new Vector2(0, -30), + Action = () => + { + if (current?.Track == null) return; + if (current.Track.IsRunning) + current.Track.Stop(); + else + current.Track.Start(); + }, + Children = new Drawable[] + { + playButton = new TextAwesome + { + TextSize = 30, + Icon = FontAwesome.fa_play_circle_o, + Origin = Anchor.Centre, + Anchor = Anchor.Centre + } + } + }, + new ClickableContainer { - TextSize = 15, - Icon = FontAwesome.fa_bars, + AutoSizeAxes = Axes.Both, Origin = Anchor.Centre, - Anchor = Anchor.Centre + Anchor = Anchor.BottomCentre, + Position = new Vector2(-30, -30), + Action = prev, + Children = new Drawable[] + { + new TextAwesome + { + TextSize = 15, + Icon = FontAwesome.fa_step_backward, + Origin = Anchor.Centre, + Anchor = Anchor.Centre + } + } + }, + new ClickableContainer + { + AutoSizeAxes = Axes.Both, + Origin = Anchor.Centre, + Anchor = Anchor.BottomCentre, + Position = new Vector2(30, -30), + Action = next, + Children = new Drawable[] + { + new TextAwesome + { + TextSize = 15, + Icon = FontAwesome.fa_step_forward, + Origin = Anchor.Centre, + Anchor = Anchor.Centre + } + } + }, + new ClickableContainer + { + AutoSizeAxes = Axes.Both, + Origin = Anchor.Centre, + Anchor = Anchor.BottomRight, + Position = new Vector2(20, -30), + Children = new Drawable[] + { + listButton = new TextAwesome + { + TextSize = 15, + Icon = FontAwesome.fa_bars, + Origin = Anchor.Centre, + Anchor = Anchor.Centre + } + } + }, + progress = new DragBar + { + Origin = Anchor.BottomCentre, + Anchor = Anchor.BottomCentre, + Height = 10, + Colour = colours.Yellow, + SeekRequested = seek } } - }, - progress = new DragBar - { - Origin = Anchor.BottomCentre, - Anchor = Anchor.BottomCentre, - Height = 10, - Colour = colours.Yellow, - SeekRequested = seek } }; @@ -210,7 +216,7 @@ private void load(OsuGameBase osuGame, OsuConfigManager config, BeatmapDatabase playList = beatmaps.GetAllWithChildren(); backgroundSprite = new MusicControllerBackground(); - AddInternal(backgroundSprite); + dragContainer.Add(backgroundSprite); } protected override void LoadComplete() @@ -333,7 +339,7 @@ private void updateDisplay(WorkingBeatmap beatmap, TransformDirection direction) (newBackground = new MusicControllerBackground(beatmap)).Preload(game, delegate { - Add(newBackground); + dragContainer.Add(newBackground); switch (direction) { diff --git a/osu.Game/Overlays/Toolbar/Toolbar.cs b/osu.Game/Overlays/Toolbar/Toolbar.cs index 783f7b65da..d6db3282a2 100644 --- a/osu.Game/Overlays/Toolbar/Toolbar.cs +++ b/osu.Game/Overlays/Toolbar/Toolbar.cs @@ -19,7 +19,7 @@ namespace osu.Game.Overlays.Toolbar { public class Toolbar : OverlayContainer { - private const float height = 50; + public const float HEIGHT = 50; public Action OnHome; public Action OnPlayModeChange; @@ -120,7 +120,7 @@ public Toolbar() }; RelativeSizeAxes = Axes.X; - Size = new Vector2(1, height); + Size = new Vector2(1, HEIGHT); } public void SetGameMode(PlayMode mode) => modeSelector.SetGameMode(mode);