From aff9e3617da0c8fe252169fae287e39b44575b5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Fri, 3 Mar 2017 20:42:03 +0100 Subject: [PATCH 01/18] Massively improves fill-rate of mod select screen This is done by masking away the parts of WaveOverlayContainer that are behind the content. --- osu.Game/Overlays/WaveOverlayContainer.cs | 29 +++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/osu.Game/Overlays/WaveOverlayContainer.cs b/osu.Game/Overlays/WaveOverlayContainer.cs index 37a939005bc4..62c2489dd565 100644 --- a/osu.Game/Overlays/WaveOverlayContainer.cs +++ b/osu.Game/Overlays/WaveOverlayContainer.cs @@ -9,6 +9,8 @@ using osu.Framework.Graphics.Sprites; using OpenTK; using osu.Framework.Graphics.Transforms; +using osu.Framework.Graphics.Primitives; +using System; namespace osu.Game.Overlays { @@ -86,9 +88,10 @@ protected WaveOverlayContainer() AddInternal(wavesContainer = new Container { - RelativeSizeAxes = Axes.Both, + RelativeSizeAxes = Axes.X, Origin = Anchor.TopCentre, Anchor = Anchor.TopCentre, + Masking = true, Children = new[] { firstWave = new Wave @@ -152,14 +155,23 @@ protected override void PopOut() w.State = Visibility.Hidden; } + protected override void UpdateAfterChildren() + { + base.UpdateAfterChildren(); + + // This is done as an optimization, such that invisible parts of the waves + // are masked away, and thus do not consume fill rate. + wavesContainer.Height = Math.Max(0, DrawHeight - (contentContainer.DrawHeight - contentContainer.Y)); + } + private class Wave : Container, IStateful { public float FinalPosition; public Wave() { - RelativeSizeAxes = Axes.Both; - Size = new Vector2(1.5f); + RelativeSizeAxes = Axes.X; + Width = 1.5f; Masking = true; EdgeEffect = new EdgeEffect { @@ -177,6 +189,15 @@ public Wave() }; } + protected override void Update() + { + base.Update(); + + // We can not use RelativeSizeAxes for Height, because the height + // of our parent diminishes as the content moves up. + Height = Parent.Parent.DrawSize.Y * 1.5f; + } + private Visibility state; public Visibility State { @@ -188,7 +209,7 @@ public Visibility State switch (value) { case Visibility.Hidden: - MoveToY(DrawHeight / Height, DISAPPEAR_DURATION, easing_hide); + MoveToY(Parent.Parent.DrawSize.Y, DISAPPEAR_DURATION, easing_hide); break; case Visibility.Visible: MoveToY(FinalPosition, APPEAR_DURATION, easing_show); From b9e4c920c54b99d7323a560f25b680066b5ed492 Mon Sep 17 00:00:00 2001 From: Jorolf Date: Fri, 3 Mar 2017 21:11:38 +0100 Subject: [PATCH 02/18] SelectRandom doesnt select hidden groups now --- osu.Game/Screens/Select/CarouselContainer.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/osu.Game/Screens/Select/CarouselContainer.cs b/osu.Game/Screens/Select/CarouselContainer.cs index 5d8c11d22357..f63c31f98078 100644 --- a/osu.Game/Screens/Select/CarouselContainer.cs +++ b/osu.Game/Screens/Select/CarouselContainer.cs @@ -376,6 +376,7 @@ public void SelectNext(int direction = 1, bool skipDifficulties = true) public void SelectRandom() { + List groups = this.groups.Where( (BeatmapGroup selectGroup) => selectGroup.State != BeatmapGroupState.Hidden).ToList(); if (groups.Count < 1) return; BeatmapGroup group = groups[RNG.Next(groups.Count)]; From 5a83687a27c8c581ee0665e068374733ac99b9be Mon Sep 17 00:00:00 2001 From: DrabWeb Date: Fri, 3 Mar 2017 18:02:31 -0400 Subject: [PATCH 03/18] Small cleanups --- osu.Game/Overlays/Mods/ModSelectOverlay.cs | 6 +----- osu.Game/Overlays/WaveOverlayContainer.cs | 8 -------- 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/osu.Game/Overlays/Mods/ModSelectOverlay.cs b/osu.Game/Overlays/Mods/ModSelectOverlay.cs index 0a5d0e49e1d4..a969d7134785 100644 --- a/osu.Game/Overlays/Mods/ModSelectOverlay.cs +++ b/osu.Game/Overlays/Mods/ModSelectOverlay.cs @@ -33,7 +33,7 @@ public class ModSelectOverlay : WaveOverlayContainer private FillFlowContainer modSectionsContainer; - public Bindable SelectedMods = new Bindable(); + public readonly Bindable SelectedMods = new Bindable(); public readonly Bindable PlayMode = new Bindable(); @@ -95,8 +95,6 @@ protected override void PopOut() section.ButtonsContainer.MoveToX(100f, APPEAR_DURATION, EasingTypes.InSine); section.ButtonsContainer.FadeOut(APPEAR_DURATION, EasingTypes.InSine); } - - TriggerFocusLost(); } protected override void PopIn() @@ -112,8 +110,6 @@ protected override void PopIn() section.ButtonsContainer.MoveToX(0, button_duration, EasingTypes.OutQuint); section.ButtonsContainer.FadeIn(button_duration, EasingTypes.OutQuint); } - - Schedule(TriggerFocusContention); } public void DeselectAll() diff --git a/osu.Game/Overlays/WaveOverlayContainer.cs b/osu.Game/Overlays/WaveOverlayContainer.cs index 37a939005bc4..203f678e6116 100644 --- a/osu.Game/Overlays/WaveOverlayContainer.cs +++ b/osu.Game/Overlays/WaveOverlayContainer.cs @@ -123,14 +123,6 @@ protected WaveOverlayContainer() RelativeSizeAxes = Axes.Both, Anchor = Anchor.BottomCentre, Origin = Anchor.BottomCentre, - Children = new Drawable[] - { - new Box - { - RelativeSizeAxes = Axes.Both, - Colour = Color4.White.Opacity(50), - }, - }, }); } From 9141d244bf2c75412b3f27a91fdff34b65174c84 Mon Sep 17 00:00:00 2001 From: DrabWeb Date: Fri, 3 Mar 2017 18:05:43 -0400 Subject: [PATCH 04/18] Focus trigger in WaveOverlayContainer --- osu.Game/Overlays/WaveOverlayContainer.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/osu.Game/Overlays/WaveOverlayContainer.cs b/osu.Game/Overlays/WaveOverlayContainer.cs index 203f678e6116..fba6244d153c 100644 --- a/osu.Game/Overlays/WaveOverlayContainer.cs +++ b/osu.Game/Overlays/WaveOverlayContainer.cs @@ -128,6 +128,8 @@ protected WaveOverlayContainer() protected override void PopIn() { + base.PopIn(); + foreach (var w in wavesContainer.Children) w.State = Visibility.Visible; @@ -137,6 +139,8 @@ protected override void PopIn() protected override void PopOut() { + base.PopOut(); + contentContainer.FadeOut(DISAPPEAR_DURATION, EasingTypes.In); contentContainer.MoveToY(DrawHeight * 2f, DISAPPEAR_DURATION, EasingTypes.In); From e3c38067594df79d7b76193ceaa65965e11264cf Mon Sep 17 00:00:00 2001 From: TheGui Date: Sat, 4 Mar 2017 04:48:32 -0300 Subject: [PATCH 05/18] Fixed accuracy's counter first value change. --- osu.Game.Modes.Osu/OsuScoreProcessor.cs | 1 + osu.Game/Graphics/UserInterface/PercentageCounter.cs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/osu.Game.Modes.Osu/OsuScoreProcessor.cs b/osu.Game.Modes.Osu/OsuScoreProcessor.cs index 949325955832..e73db8d9010c 100644 --- a/osu.Game.Modes.Osu/OsuScoreProcessor.cs +++ b/osu.Game.Modes.Osu/OsuScoreProcessor.cs @@ -12,6 +12,7 @@ public OsuScoreProcessor(int hitObjectCount) : base(hitObjectCount) { Health.Value = 1; + Accuracy.Value = 1; } protected override void UpdateCalculations(JudgementInfo judgement) diff --git a/osu.Game/Graphics/UserInterface/PercentageCounter.cs b/osu.Game/Graphics/UserInterface/PercentageCounter.cs index ee4066b33655..1b29fcc88ffc 100644 --- a/osu.Game/Graphics/UserInterface/PercentageCounter.cs +++ b/osu.Game/Graphics/UserInterface/PercentageCounter.cs @@ -26,7 +26,7 @@ public void SetFraction(float numerator, float denominator) public PercentageCounter() { DisplayedCountSpriteText.FixedWidth = true; - Count = 1.0f; + Count = DisplayedCount = 1.0f; } protected override string FormatCount(float count) From a97a7f1024ae204306b21640184a8a0d29253e3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Sat, 4 Mar 2017 08:54:14 +0100 Subject: [PATCH 06/18] No more custom lifetimelist in CarouselContainer --- osu.Game/Beatmaps/Drawables/Panel.cs | 4 - osu.Game/Screens/Select/CarouselContainer.cs | 118 +++++++------------ 2 files changed, 41 insertions(+), 81 deletions(-) diff --git a/osu.Game/Beatmaps/Drawables/Panel.cs b/osu.Game/Beatmaps/Drawables/Panel.cs index 891e86164cfa..7a37f9cd7f94 100644 --- a/osu.Game/Beatmaps/Drawables/Panel.cs +++ b/osu.Game/Beatmaps/Drawables/Panel.cs @@ -18,10 +18,6 @@ class Panel : Container, IStateful public override bool RemoveWhenNotAlive => false; - public bool IsOnScreen; - - public override bool IsAlive => IsOnScreen && base.IsAlive; - private Container nestedContainer; protected override Container Content => nestedContainer; diff --git a/osu.Game/Screens/Select/CarouselContainer.cs b/osu.Game/Screens/Select/CarouselContainer.cs index 5d8c11d22357..cbf6e1f86070 100644 --- a/osu.Game/Screens/Select/CarouselContainer.cs +++ b/osu.Game/Screens/Select/CarouselContainer.cs @@ -16,6 +16,7 @@ using OpenTK.Input; using System.Collections; using osu.Framework.MathUtils; +using System.Diagnostics; namespace osu.Game.Screens.Select { @@ -23,73 +24,34 @@ class CarouselContainer : ScrollContainer, IEnumerable { private Container scrollableContent; private List groups = new List(); + private List panels = new List(); public BeatmapGroup SelectedGroup { get; private set; } public BeatmapPanel SelectedPanel { get; private set; } private List yPositions = new List(); - private CarouselLifetimeList lifetime; public CarouselContainer() { DistanceDecayJump = 0.01; - Add(scrollableContent = new Container(lifetime = new CarouselLifetimeList(DepthComparer)) + Add(scrollableContent = new Container { RelativeSizeAxes = Axes.X, }); } - internal class CarouselLifetimeList : LifetimeList - { - public CarouselLifetimeList(IComparer comparer) - : base(comparer) - { - } - - public int StartIndex; - public int EndIndex; - - public override bool Update(FrameTimeInfo time) - { - bool anyAliveChanged = false; - - //check existing items to make sure they haven't died. - foreach (var item in AliveItems.ToArray()) - { - item.UpdateTime(time); - if (!item.IsAlive) - { - //todo: make this more efficient - int i = IndexOf(item); - anyAliveChanged |= CheckItem(item, ref i); - } - } - - //handle custom range - for (int i = StartIndex; i < EndIndex; i++) - { - var item = this[i]; - item.UpdateTime(time); - anyAliveChanged |= CheckItem(item, ref i); - } - - return anyAliveChanged; - } - } - public void AddGroup(BeatmapGroup group) { group.State = BeatmapGroupState.Collapsed; groups.Add(group); - group.Header.Depth = -scrollableContent.Children.Count(); - scrollableContent.Add(group.Header); - + panels.Add(group.Header); + group.Header.Clock = Clock; foreach (BeatmapPanel panel in group.BeatmapPanels) { - panel.Depth = -scrollableContent.Children.Count(); - scrollableContent.Add(panel); + panels.Add(panel); + panel.Clock = Clock; } computeYPositions(); @@ -107,7 +69,7 @@ public void RemoveGroup(BeatmapGroup group) private void movePanel(Panel panel, bool advance, bool animated, ref float currentY) { yPositions.Add(currentY); - panel.MoveToY(currentY, animated && (panel.IsOnScreen || panel.State != PanelSelectedState.Hidden) ? 750 : 0, EasingTypes.OutExpo); + panel.MoveToY(currentY, animated && (panel.State != PanelSelectedState.Hidden) ? 750 : 0, EasingTypes.OutExpo); if (advance) currentY += panel.DrawHeight + 5; @@ -194,19 +156,20 @@ public void SelectGroup(BeatmapGroup group, BeatmapPanel panel, bool animated = public void Sort(FilterControl.SortMode mode) { + List sortedGroups = new List(groups); switch (mode) { case FilterControl.SortMode.Artist: - groups.Sort((x, y) => string.Compare(x.BeatmapSet.Metadata.Artist, y.BeatmapSet.Metadata.Artist)); + sortedGroups.Sort((x, y) => string.Compare(x.BeatmapSet.Metadata.Artist, y.BeatmapSet.Metadata.Artist)); break; case FilterControl.SortMode.Title: - groups.Sort((x, y) => string.Compare(x.BeatmapSet.Metadata.Title, y.BeatmapSet.Metadata.Title)); + sortedGroups.Sort((x, y) => string.Compare(x.BeatmapSet.Metadata.Title, y.BeatmapSet.Metadata.Title)); break; case FilterControl.SortMode.Author: - groups.Sort((x, y) => string.Compare(x.BeatmapSet.Metadata.Author, y.BeatmapSet.Metadata.Author)); + sortedGroups.Sort((x, y) => string.Compare(x.BeatmapSet.Metadata.Author, y.BeatmapSet.Metadata.Author)); break; case FilterControl.SortMode.Difficulty: - groups.Sort((x, y) => + sortedGroups.Sort((x, y) => { float xAverage = 0, yAverage = 0; int counter = 0; @@ -232,20 +195,13 @@ public void Sort(FilterControl.SortMode mode) default: throw new NotImplementedException(); } - scrollableContent.Clear(false); - lifetime.Clear(); - foreach (BeatmapGroup group in groups) - { - group.Header.Depth = -scrollableContent.Children.Count(); - scrollableContent.Add(group.Header); - foreach (BeatmapPanel panel in group.BeatmapPanels) - { - panel.Depth = -scrollableContent.Children.Count(); - scrollableContent.Add(panel); - } - } + scrollableContent.Clear(false); + panels.Clear(); + groups.Clear(); + foreach (BeatmapGroup group in sortedGroups) + AddGroup(group); } private static float offsetX(float dist, float halfHeight) @@ -286,34 +242,42 @@ protected override void Update() { base.Update(); - // Determine which items stopped being on screen for future removal from the lifetimelist. float drawHeight = DrawHeight; - float halfHeight = drawHeight / 2; - foreach (Panel p in lifetime.AliveItems) + // Remove all panels that should no longer be on-screen + scrollableContent.RemoveAll(delegate (Panel p) { float panelPosY = p.Position.Y; - p.IsOnScreen = panelPosY >= Current - p.DrawHeight && panelPosY <= Current + drawHeight; - updatePanel(p, halfHeight); - } + bool remove = panelPosY < Current - p.DrawHeight || panelPosY > Current + drawHeight || !p.IsPresent; + return remove; + }); + + // Find index range of all panels that should be on-screen + Trace.Assert(panels.Count == yPositions.Count); - // Determine range of indices for items that are now definitely on screen to be added - // to the lifetimelist in the future. int firstIndex = yPositions.BinarySearch(Current - Panel.MAX_HEIGHT); if (firstIndex < 0) firstIndex = ~firstIndex; int lastIndex = yPositions.BinarySearch(Current + drawHeight); if (lastIndex < 0) lastIndex = ~lastIndex; - lifetime.StartIndex = firstIndex; - lifetime.EndIndex = lastIndex; - + // Add those panels within the previously found index range that should be displayed. for (int i = firstIndex; i < lastIndex; ++i) { - Panel p = lifetime[i]; - if (p.State != PanelSelectedState.Hidden) - p.IsOnScreen = true; //we don't want to update the on-screen state of hidden pannels as they have incorrect (stacked) y values. - updatePanel(p, halfHeight); + Panel panel = panels[i]; + if (panel.State == PanelSelectedState.Hidden) + continue; + + if (!scrollableContent.Contains(panel)) + { + panel.Depth = i + (panel is BeatmapSetHeader ? 0 : panels.Count); + scrollableContent.Add(panel); + } } + + // Update currently visible panels + float halfHeight = drawHeight / 2; + foreach (Panel p in scrollableContent.Children) + updatePanel(p, halfHeight); } protected override bool OnKeyDown(InputState state, KeyDownEventArgs args) From 9bddd1ed4b5c66265f446a7d5acaf5a640e64a7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Sat, 4 Mar 2017 09:32:39 +0100 Subject: [PATCH 07/18] Fix broken CarouselContainer animations The previous commit broke animations of difficulty panels when selecting beatmaps. This commit fixes these. --- osu-framework | 2 +- osu.Game/Screens/Select/CarouselContainer.cs | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/osu-framework b/osu-framework index 798409058a42..25e6193625fb 160000 --- a/osu-framework +++ b/osu-framework @@ -1 +1 @@ -Subproject commit 798409058a421307b5a92aeea4cd60a065f5a0d4 +Subproject commit 25e6193625fbffb4d6fde3f91d85eeb9f85c4504 diff --git a/osu.Game/Screens/Select/CarouselContainer.cs b/osu.Game/Screens/Select/CarouselContainer.cs index cbf6e1f86070..4c3914c1d265 100644 --- a/osu.Game/Screens/Select/CarouselContainer.cs +++ b/osu.Game/Screens/Select/CarouselContainer.cs @@ -47,11 +47,11 @@ public void AddGroup(BeatmapGroup group) groups.Add(group); panels.Add(group.Header); - group.Header.Clock = Clock; + group.Header.UpdateClock(Clock); foreach (BeatmapPanel panel in group.BeatmapPanels) { panels.Add(panel); - panel.Clock = Clock; + panel.UpdateClock(Clock); } computeYPositions(); @@ -69,7 +69,7 @@ public void RemoveGroup(BeatmapGroup group) private void movePanel(Panel panel, bool advance, bool animated, ref float currentY) { yPositions.Add(currentY); - panel.MoveToY(currentY, animated && (panel.State != PanelSelectedState.Hidden) ? 750 : 0, EasingTypes.OutExpo); + panel.MoveToY(currentY, animated ? 750 : 0, EasingTypes.OutExpo); if (advance) currentY += panel.DrawHeight + 5; From aaa1f766af3ab75102c389504c3f9677d263214e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Sat, 4 Mar 2017 09:34:28 +0100 Subject: [PATCH 08/18] Fix beatmap removal --- osu.Game/Screens/Select/CarouselContainer.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/osu.Game/Screens/Select/CarouselContainer.cs b/osu.Game/Screens/Select/CarouselContainer.cs index 4c3914c1d265..5ed3b4d9047d 100644 --- a/osu.Game/Screens/Select/CarouselContainer.cs +++ b/osu.Game/Screens/Select/CarouselContainer.cs @@ -60,6 +60,9 @@ public void AddGroup(BeatmapGroup group) public void RemoveGroup(BeatmapGroup group) { groups.Remove(group); + foreach (var p in group.BeatmapPanels) + panels.Remove(p); + scrollableContent.Remove(group.Header); scrollableContent.Remove(group.BeatmapPanels); From a2b79de672fe52d8649fa15b0b281430acfbcdbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Sat, 4 Mar 2017 09:34:39 +0100 Subject: [PATCH 09/18] Add comments to CarouselContainer --- osu.Game/Screens/Select/CarouselContainer.cs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/osu.Game/Screens/Select/CarouselContainer.cs b/osu.Game/Screens/Select/CarouselContainer.cs index 5ed3b4d9047d..f86ee480fde7 100644 --- a/osu.Game/Screens/Select/CarouselContainer.cs +++ b/osu.Game/Screens/Select/CarouselContainer.cs @@ -207,6 +207,14 @@ public void Sort(FilterControl.SortMode mode) AddGroup(group); } + /// + /// Computes the x-offset of currently visible panels. Makes the carousel appear round. + /// + /// + /// Vertical distance from the center of the carousel container + /// ranging from -1 to 1. + /// + /// Half the height of the carousel container. private static float offsetX(float dist, float halfHeight) { // The radius of the circle the carousel moves on. @@ -270,14 +278,18 @@ protected override void Update() if (panel.State == PanelSelectedState.Hidden) continue; + // Only add if we're not already part of the content. if (!scrollableContent.Contains(panel)) { - panel.Depth = i + (panel is BeatmapSetHeader ? 0 : panels.Count); + // Makes sure headers are always _below_ panels, + // and depth flows downward. + panel.Depth = i + (panel is BeatmapSetHeader ? panels.Count : 0); scrollableContent.Add(panel); } } - // Update currently visible panels + // Update externally controlled state of currently visible panels + // (e.g. x-offset and opacity). float halfHeight = drawHeight / 2; foreach (Panel p in scrollableContent.Children) updatePanel(p, halfHeight); From a2317e5a1e18820fa40289b0409aa4381858cd2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Sat, 4 Mar 2017 11:00:17 +0100 Subject: [PATCH 10/18] Update usage of FillDirection --- osu-framework | 2 +- osu.Desktop/Overlays/VersionManager.cs | 4 ++-- osu.Game.Modes.Osu/Objects/Drawables/HitExplosion.cs | 2 +- osu.Game/Beatmaps/Drawables/BeatmapPanel.cs | 6 +++--- osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs | 4 ++-- osu.Game/Graphics/UserInterface/OsuDropDownMenuItem.cs | 2 +- osu.Game/Graphics/UserInterface/StarCounter.cs | 2 +- osu.Game/Online/Chat/Drawables/DrawableChannel.cs | 2 +- osu.Game/Overlays/Dialog/PopupDialog.cs | 4 ++-- osu.Game/Overlays/Mods/ModButton.cs | 2 +- osu.Game/Overlays/Mods/ModSelectOverlay.cs | 6 +++--- osu.Game/Overlays/NotificationManager.cs | 2 +- osu.Game/Overlays/Notifications/NotificationSection.cs | 2 +- osu.Game/Overlays/Options/OptionDropDown.cs | 2 +- osu.Game/Overlays/Options/OptionsSection.cs | 2 +- osu.Game/Overlays/Options/OptionsSubsection.cs | 4 ++-- osu.Game/Overlays/Options/Sections/General/LoginOptions.cs | 2 +- osu.Game/Overlays/Options/Sidebar.cs | 2 +- osu.Game/Overlays/OptionsOverlay.cs | 4 ++-- osu.Game/Overlays/Toolbar/Toolbar.cs | 4 ++-- osu.Game/Overlays/Toolbar/ToolbarButton.cs | 4 ++-- osu.Game/Overlays/Toolbar/ToolbarModeSelector.cs | 2 +- osu.Game/Screens/GameScreenWhiteBox.cs | 2 +- osu.Game/Screens/Menu/ButtonSystem.cs | 2 +- osu.Game/Screens/Menu/Disclaimer.cs | 2 +- osu.Game/Screens/Play/KeyCounterCollection.cs | 2 +- osu.Game/Screens/Play/PauseOverlay.cs | 4 ++-- osu.Game/Screens/Play/PlayerLoader.cs | 2 +- osu.Game/Screens/Ranking/Results.cs | 2 +- osu.Game/Screens/Select/BeatmapInfoWedge.cs | 4 ++-- osu.Game/Screens/Select/FilterControl.cs | 6 +++--- osu.Game/Screens/Select/Footer.cs | 4 ++-- osu.Game/Screens/Select/Options/BeatmapOptionsButton.cs | 2 +- osu.Game/Screens/Select/Options/BeatmapOptionsOverlay.cs | 2 +- osu.Game/Screens/Tournament/Drawings.cs | 6 +++--- osu.Game/Screens/Tournament/Group.cs | 2 +- 36 files changed, 54 insertions(+), 54 deletions(-) diff --git a/osu-framework b/osu-framework index 798409058a42..a0be700a68bf 160000 --- a/osu-framework +++ b/osu-framework @@ -1 +1 @@ -Subproject commit 798409058a421307b5a92aeea4cd60a065f5a0d4 +Subproject commit a0be700a68bfb75bb27350cc7fe2e7e758b8645c diff --git a/osu.Desktop/Overlays/VersionManager.cs b/osu.Desktop/Overlays/VersionManager.cs index 08bf6d15a76c..789fbb6af362 100644 --- a/osu.Desktop/Overlays/VersionManager.cs +++ b/osu.Desktop/Overlays/VersionManager.cs @@ -61,13 +61,13 @@ private void load(NotificationManager notification, OsuColour colours, TextureSt new FillFlowContainer { AutoSizeAxes = Axes.Both, - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, Children = new Drawable[] { new FillFlowContainer { AutoSizeAxes = Axes.Both, - Direction = FillDirection.Right, + Direction = FillDirection.Horizontal, Spacing = new Vector2(5), Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, diff --git a/osu.Game.Modes.Osu/Objects/Drawables/HitExplosion.cs b/osu.Game.Modes.Osu/Objects/Drawables/HitExplosion.cs index 95bc0954de3b..39a7862db603 100644 --- a/osu.Game.Modes.Osu/Objects/Drawables/HitExplosion.cs +++ b/osu.Game.Modes.Osu/Objects/Drawables/HitExplosion.cs @@ -25,7 +25,7 @@ public HitExplosion(OsuJudgementInfo judgement, OsuHitObject h = null) AutoSizeAxes = Axes.Both; Origin = Anchor.Centre; - Direction = FillDirection.Down; + Direction = FillDirection.Vertical; Spacing = new Vector2(0, 2); Position = (h?.StackedEndPosition ?? Vector2.Zero) + judgement.PositionOffset; diff --git a/osu.Game/Beatmaps/Drawables/BeatmapPanel.cs b/osu.Game/Beatmaps/Drawables/BeatmapPanel.cs index 1db339a5b6ca..a4447fb57c1e 100644 --- a/osu.Game/Beatmaps/Drawables/BeatmapPanel.cs +++ b/osu.Game/Beatmaps/Drawables/BeatmapPanel.cs @@ -86,7 +86,7 @@ public BeatmapPanel(BeatmapInfo beatmap) new FillFlowContainer { Padding = new MarginPadding(5), - Direction = FillDirection.Right, + Direction = FillDirection.Horizontal, AutoSizeAxes = Axes.Both, Anchor = Anchor.CentreLeft, Origin = Anchor.CentreLeft, @@ -101,13 +101,13 @@ public BeatmapPanel(BeatmapInfo beatmap) new FillFlowContainer { Padding = new MarginPadding { Left = 5 }, - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, AutoSizeAxes = Axes.Both, Children = new Drawable[] { new FillFlowContainer { - Direction = FillDirection.Right, + Direction = FillDirection.Horizontal, Spacing = new Vector2(4, 0), AutoSizeAxes = Axes.Both, Children = new[] diff --git a/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs b/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs index 0a1fc5f33180..bbdc22e30d76 100644 --- a/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs +++ b/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs @@ -38,7 +38,7 @@ public BeatmapSetHeader(WorkingBeatmap beatmap) }, new FillFlowContainer { - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, Padding = new MarginPadding { Top = 5, Left = 18, Right = 10, Bottom = 10 }, AutoSizeAxes = Axes.Both, Children = new[] @@ -111,7 +111,7 @@ public PanelBackground(WorkingBeatmap working) new FillFlowContainer { Depth = -1, - Direction = FillDirection.Right, + Direction = FillDirection.Horizontal, RelativeSizeAxes = Axes.Both, // This makes the gradient not be perfectly horizontal, but diagonal at a ~40° angle Shear = new Vector2(0.8f, 0), diff --git a/osu.Game/Graphics/UserInterface/OsuDropDownMenuItem.cs b/osu.Game/Graphics/UserInterface/OsuDropDownMenuItem.cs index d65429927990..9b30418c6a40 100644 --- a/osu.Game/Graphics/UserInterface/OsuDropDownMenuItem.cs +++ b/osu.Game/Graphics/UserInterface/OsuDropDownMenuItem.cs @@ -21,7 +21,7 @@ public OsuDropDownMenuItem(string text, U value) : base(text, value) { new FillFlowContainer { - Direction = FillDirection.Right, + Direction = FillDirection.Horizontal, RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, Children = new Drawable[] diff --git a/osu.Game/Graphics/UserInterface/StarCounter.cs b/osu.Game/Graphics/UserInterface/StarCounter.cs index 10ffcffa7f03..d603493d38df 100644 --- a/osu.Game/Graphics/UserInterface/StarCounter.cs +++ b/osu.Game/Graphics/UserInterface/StarCounter.cs @@ -71,7 +71,7 @@ public StarCounter(int starCount = 10) stars = new FillFlowContainer { AutoSizeAxes = Axes.Both, - Direction = FillDirection.Right, + Direction = FillDirection.Horizontal, Spacing = new Vector2(star_spacing), } }; diff --git a/osu.Game/Online/Chat/Drawables/DrawableChannel.cs b/osu.Game/Online/Chat/Drawables/DrawableChannel.cs index b8eb1e466a13..f5fac3d4c527 100644 --- a/osu.Game/Online/Chat/Drawables/DrawableChannel.cs +++ b/osu.Game/Online/Chat/Drawables/DrawableChannel.cs @@ -41,7 +41,7 @@ public DrawableChannel(Channel channel) { flow = new FillFlowContainer { - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, Padding = new MarginPadding { Left = 20, Right = 20 } diff --git a/osu.Game/Overlays/Dialog/PopupDialog.cs b/osu.Game/Overlays/Dialog/PopupDialog.cs index e307b44bb1d9..0e92b4d0aff5 100644 --- a/osu.Game/Overlays/Dialog/PopupDialog.cs +++ b/osu.Game/Overlays/Dialog/PopupDialog.cs @@ -173,7 +173,7 @@ public PopupDialog() RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, Position = new Vector2(0f, -50f), - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, Spacing = new Vector2(0f, 10f), Children = new Drawable[] { @@ -236,7 +236,7 @@ public PopupDialog() Origin = Anchor.TopCentre, RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, }, }, }, diff --git a/osu.Game/Overlays/Mods/ModButton.cs b/osu.Game/Overlays/Mods/ModButton.cs index 811e9606fe27..3cec80465334 100644 --- a/osu.Game/Overlays/Mods/ModButton.cs +++ b/osu.Game/Overlays/Mods/ModButton.cs @@ -236,7 +236,7 @@ private void createIcons() public ModButton(Mod m) { - Direction = FillDirection.Down; + Direction = FillDirection.Vertical; Spacing = new Vector2(0f, -5f); Size = new Vector2(100f); diff --git a/osu.Game/Overlays/Mods/ModSelectOverlay.cs b/osu.Game/Overlays/Mods/ModSelectOverlay.cs index 0a5d0e49e1d4..13802c3e85b0 100644 --- a/osu.Game/Overlays/Mods/ModSelectOverlay.cs +++ b/osu.Game/Overlays/Mods/ModSelectOverlay.cs @@ -244,7 +244,7 @@ public ModSelectOverlay() AutoSizeAxes = Axes.Y, Anchor = Anchor.BottomCentre, Origin = Anchor.BottomCentre, - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, Spacing = new Vector2(0f, 10f), Children = new Drawable[] { @@ -268,7 +268,7 @@ public ModSelectOverlay() Anchor = Anchor.TopCentre, RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, Width = content_width, Padding = new MarginPadding { @@ -336,7 +336,7 @@ public ModSelectOverlay() AutoSizeAxes = Axes.Y, RelativeSizeAxes = Axes.X, Width = content_width, - Direction = FillDirection.Right, + Direction = FillDirection.Horizontal, Padding = new MarginPadding { Top = 20, diff --git a/osu.Game/Overlays/NotificationManager.cs b/osu.Game/Overlays/NotificationManager.cs index 5c666da8aee8..2c499e108432 100644 --- a/osu.Game/Overlays/NotificationManager.cs +++ b/osu.Game/Overlays/NotificationManager.cs @@ -46,7 +46,7 @@ private void load() { sections = new FillFlowContainer { - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, AutoSizeAxes = Axes.Y, RelativeSizeAxes = Axes.X, Children = new [] diff --git a/osu.Game/Overlays/Notifications/NotificationSection.cs b/osu.Game/Overlays/Notifications/NotificationSection.cs index 91c89d41be56..8366c83527a8 100644 --- a/osu.Game/Overlays/Notifications/NotificationSection.cs +++ b/osu.Game/Overlays/Notifications/NotificationSection.cs @@ -60,7 +60,7 @@ private void load(OsuColour colours) { RelativeSizeAxes = Axes.X; AutoSizeAxes = Axes.Y; - Direction = FillDirection.Down; + Direction = FillDirection.Vertical; Padding = new MarginPadding { diff --git a/osu.Game/Overlays/Options/OptionDropDown.cs b/osu.Game/Overlays/Options/OptionDropDown.cs index 7e2cab2a6135..41e59e63a6c6 100644 --- a/osu.Game/Overlays/Options/OptionDropDown.cs +++ b/osu.Game/Overlays/Options/OptionDropDown.cs @@ -89,7 +89,7 @@ public OptionDropDown() { Items = new KeyValuePair[0]; - Direction = FillDirection.Down; + Direction = FillDirection.Vertical; RelativeSizeAxes = Axes.X; AutoSizeAxes = Axes.Y; Children = new Drawable[] diff --git a/osu.Game/Overlays/Options/OptionsSection.cs b/osu.Game/Overlays/Options/OptionsSection.cs index f87e69e30763..fc61128a0d64 100644 --- a/osu.Game/Overlays/Options/OptionsSection.cs +++ b/osu.Game/Overlays/Options/OptionsSection.cs @@ -61,7 +61,7 @@ public OptionsSection() FlowContent = new FillFlowContainer { Margin = new MarginPadding { Top = header_size + header_margin }, - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, Spacing = new Vector2(0, 30), AutoSizeAxes = Axes.Y, RelativeSizeAxes = Axes.X, diff --git a/osu.Game/Overlays/Options/OptionsSubsection.cs b/osu.Game/Overlays/Options/OptionsSubsection.cs index ef10e15abf01..7d501ad68c1a 100644 --- a/osu.Game/Overlays/Options/OptionsSubsection.cs +++ b/osu.Game/Overlays/Options/OptionsSubsection.cs @@ -20,7 +20,7 @@ public OptionsSubsection() { RelativeSizeAxes = Axes.X; AutoSizeAxes = Axes.Y; - Direction = FillDirection.Down; + Direction = FillDirection.Vertical; AddInternal(new Drawable[] { new OsuSpriteText @@ -31,7 +31,7 @@ public OptionsSubsection() }, content = new FillFlowContainer { - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, Spacing = new Vector2(0, 5), RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, diff --git a/osu.Game/Overlays/Options/Sections/General/LoginOptions.cs b/osu.Game/Overlays/Options/Sections/General/LoginOptions.cs index db799ccae2a9..45f7ac3d3eba 100644 --- a/osu.Game/Overlays/Options/Sections/General/LoginOptions.cs +++ b/osu.Game/Overlays/Options/Sections/General/LoginOptions.cs @@ -100,7 +100,7 @@ private void performLogin() private void load(APIAccess api, OsuConfigManager config) { this.api = api; - Direction = FillDirection.Down; + Direction = FillDirection.Vertical; Spacing = new Vector2(0, 5); AutoSizeAxes = Axes.Y; RelativeSizeAxes = Axes.X; diff --git a/osu.Game/Overlays/Options/Sidebar.cs b/osu.Game/Overlays/Options/Sidebar.cs index 5a1128749c77..b0618ed3a6be 100644 --- a/osu.Game/Overlays/Options/Sidebar.cs +++ b/osu.Game/Overlays/Options/Sidebar.cs @@ -40,7 +40,7 @@ public Sidebar() Anchor = Anchor.CentreLeft, AutoSizeAxes = Axes.Y, RelativeSizeAxes = Axes.X, - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, } } }, diff --git a/osu.Game/Overlays/OptionsOverlay.cs b/osu.Game/Overlays/OptionsOverlay.cs index 968914c6c089..89a2d029f6ba 100644 --- a/osu.Game/Overlays/OptionsOverlay.cs +++ b/osu.Game/Overlays/OptionsOverlay.cs @@ -77,7 +77,7 @@ private void load(OsuGame game, OsuColour colours) { AutoSizeAxes = Axes.Y, RelativeSizeAxes = Axes.X, - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, Children = new Drawable[] { @@ -98,7 +98,7 @@ private void load(OsuGame game, OsuColour colours) { AutoSizeAxes = Axes.Y, RelativeSizeAxes = Axes.X, - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, Children = sections, } } diff --git a/osu.Game/Overlays/Toolbar/Toolbar.cs b/osu.Game/Overlays/Toolbar/Toolbar.cs index 948b9c96fcb6..59b738367915 100644 --- a/osu.Game/Overlays/Toolbar/Toolbar.cs +++ b/osu.Game/Overlays/Toolbar/Toolbar.cs @@ -43,7 +43,7 @@ public Toolbar() new ToolbarBackground(), new FillFlowContainer { - Direction = FillDirection.Right, + Direction = FillDirection.Horizontal, RelativeSizeAxes = Axes.Y, AutoSizeAxes = Axes.X, Children = new Drawable[] @@ -66,7 +66,7 @@ public Toolbar() { Anchor = Anchor.TopRight, Origin = Anchor.TopRight, - Direction = FillDirection.Right, + Direction = FillDirection.Horizontal, RelativeSizeAxes = Axes.Y, AutoSizeAxes = Axes.X, Children = new Drawable[] diff --git a/osu.Game/Overlays/Toolbar/ToolbarButton.cs b/osu.Game/Overlays/Toolbar/ToolbarButton.cs index 0e8165283e04..ac80a9f40594 100644 --- a/osu.Game/Overlays/Toolbar/ToolbarButton.cs +++ b/osu.Game/Overlays/Toolbar/ToolbarButton.cs @@ -84,7 +84,7 @@ public ToolbarButton() }, Flow = new FillFlowContainer { - Direction = FillDirection.Right, + Direction = FillDirection.Horizontal, Spacing = new Vector2(5), Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, @@ -107,7 +107,7 @@ public ToolbarButton() }, tooltipContainer = new FillFlowContainer { - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, RelativeSizeAxes = Axes.Both, //stops us being considered in parent's autosize Anchor = (TooltipAnchor & Anchor.x0) > 0 ? Anchor.BottomLeft : Anchor.BottomRight, Origin = TooltipAnchor, diff --git a/osu.Game/Overlays/Toolbar/ToolbarModeSelector.cs b/osu.Game/Overlays/Toolbar/ToolbarModeSelector.cs index 31b8500155dd..b2086b1c2d69 100644 --- a/osu.Game/Overlays/Toolbar/ToolbarModeSelector.cs +++ b/osu.Game/Overlays/Toolbar/ToolbarModeSelector.cs @@ -36,7 +36,7 @@ public ToolbarModeSelector() { RelativeSizeAxes = Axes.Y, AutoSizeAxes = Axes.X, - Direction = FillDirection.Right, + Direction = FillDirection.Horizontal, Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, Padding = new MarginPadding { Left = padding, Right = padding }, diff --git a/osu.Game/Screens/GameScreenWhiteBox.cs b/osu.Game/Screens/GameScreenWhiteBox.cs index 623b411e351b..ec5ae137131c 100644 --- a/osu.Game/Screens/GameScreenWhiteBox.cs +++ b/osu.Game/Screens/GameScreenWhiteBox.cs @@ -126,7 +126,7 @@ public ScreenWhiteBox() }, childModeButtons = new FillFlowContainer { - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, Anchor = Anchor.TopRight, Origin = Anchor.TopRight, RelativeSizeAxes = Axes.Both, diff --git a/osu.Game/Screens/Menu/ButtonSystem.cs b/osu.Game/Screens/Menu/ButtonSystem.cs index f26fded19d1b..b29898c2a43a 100644 --- a/osu.Game/Screens/Menu/ButtonSystem.cs +++ b/osu.Game/Screens/Menu/ButtonSystem.cs @@ -78,7 +78,7 @@ public ButtonSystem() }, buttonFlow = new FlowContainerWithOrigin { - Direction = FillDirection.Right, + Direction = FillDirection.Horizontal, Spacing = new Vector2(-WEDGE_WIDTH, 0), Anchor = Anchor.Centre, AutoSizeAxes = Axes.Both, diff --git a/osu.Game/Screens/Menu/Disclaimer.cs b/osu.Game/Screens/Menu/Disclaimer.cs index deb9a4dbf8d4..493d9d9b0996 100644 --- a/osu.Game/Screens/Menu/Disclaimer.cs +++ b/osu.Game/Screens/Menu/Disclaimer.cs @@ -32,7 +32,7 @@ public Disclaimer() AutoSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, Spacing = new Vector2(0, 2), Children = new Drawable[] { diff --git a/osu.Game/Screens/Play/KeyCounterCollection.cs b/osu.Game/Screens/Play/KeyCounterCollection.cs index 0a93032a20cb..7e0519d972ff 100644 --- a/osu.Game/Screens/Play/KeyCounterCollection.cs +++ b/osu.Game/Screens/Play/KeyCounterCollection.cs @@ -12,7 +12,7 @@ public class KeyCounterCollection : FillFlowContainer { public KeyCounterCollection() { - Direction = FillDirection.Right; + Direction = FillDirection.Horizontal; AutoSizeAxes = Axes.Both; } diff --git a/osu.Game/Screens/Play/PauseOverlay.cs b/osu.Game/Screens/Play/PauseOverlay.cs index 8004f967ad79..970d82561286 100644 --- a/osu.Game/Screens/Play/PauseOverlay.cs +++ b/osu.Game/Screens/Play/PauseOverlay.cs @@ -105,7 +105,7 @@ private void load(OsuColour colours) { RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, Spacing = new Vector2(0, 50), Origin = Anchor.Centre, Anchor = Anchor.Centre, @@ -114,7 +114,7 @@ private void load(OsuColour colours) new FillFlowContainer { AutoSizeAxes = Axes.Both, - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, Spacing = new Vector2(0, 20), Origin = Anchor.TopCentre, Anchor = Anchor.TopCentre, diff --git a/osu.Game/Screens/Play/PlayerLoader.cs b/osu.Game/Screens/Play/PlayerLoader.cs index bc04dbb2f746..77f2e74c9c1c 100644 --- a/osu.Game/Screens/Play/PlayerLoader.cs +++ b/osu.Game/Screens/Play/PlayerLoader.cs @@ -136,7 +136,7 @@ public BeatmapMetadataDisplay(WorkingBeatmap beatmap) AutoSizeAxes = Axes.Both, Origin = Anchor.TopCentre, Anchor = Anchor.TopCentre, - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, Children = new Drawable[] { new OsuSpriteText diff --git a/osu.Game/Screens/Ranking/Results.cs b/osu.Game/Screens/Ranking/Results.cs index 1c8972e4bedd..5cccfe4aa0af 100644 --- a/osu.Game/Screens/Ranking/Results.cs +++ b/osu.Game/Screens/Ranking/Results.cs @@ -68,7 +68,7 @@ public ScoreDisplay(Score s) new FillFlowContainer { AutoSizeAxes = Axes.Both, - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, Children = new Drawable[] { new OsuSpriteText diff --git a/osu.Game/Screens/Select/BeatmapInfoWedge.cs b/osu.Game/Screens/Select/BeatmapInfoWedge.cs index a3493971cb0e..e0374884c9e2 100644 --- a/osu.Game/Screens/Select/BeatmapInfoWedge.cs +++ b/osu.Game/Screens/Select/BeatmapInfoWedge.cs @@ -125,7 +125,7 @@ public void UpdateBeatmap(WorkingBeatmap beatmap) { Anchor = Anchor.BottomLeft, Origin = Anchor.BottomLeft, - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, Margin = new MarginPadding { Top = 10, Left = 25, Right = 10, Bottom = 20 }, AutoSizeAxes = Axes.Both, Children = new Drawable[] @@ -147,7 +147,7 @@ public void UpdateBeatmap(WorkingBeatmap beatmap) new FillFlowContainer { Margin = new MarginPadding { Top = 10 }, - Direction = FillDirection.Right, + Direction = FillDirection.Horizontal, AutoSizeAxes = Axes.Both, Children = new [] { diff --git a/osu.Game/Screens/Select/FilterControl.cs b/osu.Game/Screens/Select/FilterControl.cs index fd7992ba163d..3b8fa4c3c593 100644 --- a/osu.Game/Screens/Select/FilterControl.cs +++ b/osu.Game/Screens/Select/FilterControl.cs @@ -55,7 +55,7 @@ public FilterControl() Anchor = Anchor.TopRight, Origin = Anchor.TopRight, Width = 0.4f, // TODO: InnerWidth property or something - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, Children = new Drawable[] { searchTextBox = new SearchTextBox { @@ -188,7 +188,7 @@ public GroupSortTabs() new FillFlowContainer { AutoSizeAxes = Axes.Both, - Direction = FillDirection.Right, + Direction = FillDirection.Horizontal, Spacing = new Vector2(10, 0), Children = new Drawable[] { @@ -220,7 +220,7 @@ public GroupSortTabs() new FillFlowContainer { AutoSizeAxes = Axes.Both, - Direction = FillDirection.Right, + Direction = FillDirection.Horizontal, Spacing = new Vector2(10, 0), Origin = Anchor.TopRight, Anchor = Anchor.TopRight, diff --git a/osu.Game/Screens/Select/Footer.cs b/osu.Game/Screens/Select/Footer.cs index 2b62e8d452db..48ce098cd792 100644 --- a/osu.Game/Screens/Select/Footer.cs +++ b/osu.Game/Screens/Select/Footer.cs @@ -98,13 +98,13 @@ public Footer() Position = new Vector2(BackButton.SIZE_EXTENDED.X + padding, 0), RelativeSizeAxes = Axes.Y, AutoSizeAxes = Axes.X, - Direction = FillDirection.Right, + Direction = FillDirection.Horizontal, Spacing = new Vector2(padding, 0), Children = new Drawable[] { buttons = new FillFlowContainer { - Direction = FillDirection.Right, + Direction = FillDirection.Horizontal, Spacing = new Vector2(0.2f, 0), AutoSizeAxes = Axes.Both, } diff --git a/osu.Game/Screens/Select/Options/BeatmapOptionsButton.cs b/osu.Game/Screens/Select/Options/BeatmapOptionsButton.cs index 6e68b7917ba4..36f51ed92dfa 100644 --- a/osu.Game/Screens/Select/Options/BeatmapOptionsButton.cs +++ b/osu.Game/Screens/Select/Options/BeatmapOptionsButton.cs @@ -115,7 +115,7 @@ public BeatmapOptionsButton() Origin = Anchor.Centre, RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, Children = new Drawable[] { iconText = new TextAwesome diff --git a/osu.Game/Screens/Select/Options/BeatmapOptionsOverlay.cs b/osu.Game/Screens/Select/Options/BeatmapOptionsOverlay.cs index 47152dc1659d..d1a60d2a2b64 100644 --- a/osu.Game/Screens/Select/Options/BeatmapOptionsOverlay.cs +++ b/osu.Game/Screens/Select/Options/BeatmapOptionsOverlay.cs @@ -132,7 +132,7 @@ class ButtonFlow : FillFlowContainer public ButtonFlow() { - Direction = FillDirection.Right; + Direction = FillDirection.Horizontal; } } } diff --git a/osu.Game/Screens/Tournament/Drawings.cs b/osu.Game/Screens/Tournament/Drawings.cs index 53ebe2606f34..de14fe8d28b6 100644 --- a/osu.Game/Screens/Tournament/Drawings.cs +++ b/osu.Game/Screens/Tournament/Drawings.cs @@ -77,7 +77,7 @@ private void load(TextureStore textures, Storage storage) new FillFlowContainer { RelativeSizeAxes = Axes.Both, - Direction = FillDirection.Right, + Direction = FillDirection.Horizontal, Children = new Drawable[] { @@ -173,7 +173,7 @@ private void load(TextureStore textures, Storage storage) Position = new Vector2(0, 35f), - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, Spacing = new Vector2(0, 5f), Children = new Drawable[] @@ -212,7 +212,7 @@ private void load(TextureStore textures, Storage storage) Position = new Vector2(0, -5f), - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, Spacing = new Vector2(0, 5f), Children = new Drawable[] diff --git a/osu.Game/Screens/Tournament/Group.cs b/osu.Game/Screens/Tournament/Group.cs index c3a911a79101..44af4c81825d 100644 --- a/osu.Game/Screens/Tournament/Group.cs +++ b/osu.Game/Screens/Tournament/Group.cs @@ -144,7 +144,7 @@ public GroupTeam(Team team) RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, - Direction = FillDirection.Down, + Direction = FillDirection.Vertical, Spacing = new Vector2(0, 5f), Children = new Drawable[] From 8f3621ca242019f2a039bb88cc5b68c48694be31 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sat, 4 Mar 2017 22:05:02 +0900 Subject: [PATCH 11/18] Make selectGroup a private method. --- osu.Game/Screens/Select/CarouselContainer.cs | 13 +++++++++---- osu.Game/Screens/Select/PlaySongSelect.cs | 6 +----- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/osu.Game/Screens/Select/CarouselContainer.cs b/osu.Game/Screens/Select/CarouselContainer.cs index f86ee480fde7..e0f2ed89e3e6 100644 --- a/osu.Game/Screens/Select/CarouselContainer.cs +++ b/osu.Game/Screens/Select/CarouselContainer.cs @@ -137,14 +137,16 @@ public void SelectBeatmap(BeatmapInfo beatmap, bool animated = true) var panel = group.BeatmapPanels.FirstOrDefault(p => p.Beatmap.Equals(beatmap)); if (panel != null) { - SelectGroup(group, panel, animated); + selectGroup(group, panel, animated); return; } } } - public void SelectGroup(BeatmapGroup group, BeatmapPanel panel, bool animated = true) + private void selectGroup(BeatmapGroup group, BeatmapPanel panel, bool animated = true) { + Trace.Assert(group.BeatmapPanels.Contains(panel), @"Selected panel must be in provided group"); + if (SelectedGroup != null && SelectedGroup != group && SelectedGroup.State != BeatmapGroupState.Hidden) SelectedGroup.State = BeatmapGroupState.Collapsed; @@ -334,7 +336,7 @@ public void SelectNext(int direction = 1, bool skipDifficulties = true) if (i >= 0 && i < SelectedGroup.BeatmapPanels.Count) { //changing difficulty panel, not set. - SelectGroup(SelectedGroup, SelectedGroup.BeatmapPanels[i]); + selectGroup(SelectedGroup, SelectedGroup.BeatmapPanels[i]); return; } } @@ -357,11 +359,14 @@ public void SelectRandom() { if (groups.Count < 1) return; + BeatmapGroup group = groups[RNG.Next(groups.Count)]; BeatmapPanel panel = group?.BeatmapPanels.First(); + if (panel == null) return; - SelectGroup(group, panel); + + selectGroup(group, panel); } public IEnumerator GetEnumerator() => groups.GetEnumerator(); diff --git a/osu.Game/Screens/Select/PlaySongSelect.cs b/osu.Game/Screens/Select/PlaySongSelect.cs index 68783f33dbb8..49c80552bd0d 100644 --- a/osu.Game/Screens/Select/PlaySongSelect.cs +++ b/osu.Game/Screens/Select/PlaySongSelect.cs @@ -403,11 +403,7 @@ private void addBeatmapSet(BeatmapSetInfo beatmapSet, Framework.Game game, bool if (Beatmap == null || select) carousel.SelectBeatmap(beatmapSet.Beatmaps.First()); else - { - var panel = group.BeatmapPanels.FirstOrDefault(p => p.Beatmap.Equals(Beatmap.BeatmapInfo)); - if (panel != null) - carousel.SelectGroup(group, panel); - } + carousel.SelectBeatmap(Beatmap.BeatmapInfo); })); } From 389635c7ed1da19f4ca61d1cd4e6490788d12eb8 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sat, 4 Mar 2017 22:05:16 +0900 Subject: [PATCH 12/18] Avoid panel state changes when performing a sort. --- osu.Game/Screens/Select/CarouselContainer.cs | 1 - osu.Game/Screens/Select/PlaySongSelect.cs | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game/Screens/Select/CarouselContainer.cs b/osu.Game/Screens/Select/CarouselContainer.cs index e0f2ed89e3e6..20167d137d86 100644 --- a/osu.Game/Screens/Select/CarouselContainer.cs +++ b/osu.Game/Screens/Select/CarouselContainer.cs @@ -43,7 +43,6 @@ public CarouselContainer() public void AddGroup(BeatmapGroup group) { - group.State = BeatmapGroupState.Collapsed; groups.Add(group); panels.Add(group.Header); diff --git a/osu.Game/Screens/Select/PlaySongSelect.cs b/osu.Game/Screens/Select/PlaySongSelect.cs index 49c80552bd0d..316cc50dae7b 100644 --- a/osu.Game/Screens/Select/PlaySongSelect.cs +++ b/osu.Game/Screens/Select/PlaySongSelect.cs @@ -396,6 +396,7 @@ private void addBeatmapSet(BeatmapSetInfo beatmapSet, Framework.Game game, bool { beatmapGroups.Add(group); + group.State = BeatmapGroupState.Collapsed; carousel.AddGroup(group); filterChanged(false, false); From 9fe41fe177ca79dd5ba76bda6d23f0d639cb52e9 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sat, 4 Mar 2017 22:10:56 +0900 Subject: [PATCH 13/18] Update framework. --- osu-framework | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu-framework b/osu-framework index 25e6193625fb..854977e3fa0c 160000 --- a/osu-framework +++ b/osu-framework @@ -1 +1 @@ -Subproject commit 25e6193625fbffb4d6fde3f91d85eeb9f85c4504 +Subproject commit 854977e3fa0c41eec7637641ec5fec9ee65d73b9 From 00fdffe9c8fbb532da942d3d1a486de7214853ea Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sat, 4 Mar 2017 23:24:13 +0900 Subject: [PATCH 14/18] Update framework (and fix non-conforming anchors in FillFlowContainers). --- osu-framework | 2 +- osu.Game/Beatmaps/Drawables/BeatmapPanel.cs | 2 -- .../Options/Sections/MaintenanceSection.cs | 18 +++++++++++++----- osu.Game/Screens/Play/PauseOverlay.cs | 13 ++++++++----- osu.Game/Screens/Select/FilterControl.cs | 6 ++---- 5 files changed, 24 insertions(+), 17 deletions(-) diff --git a/osu-framework b/osu-framework index a0be700a68bf..288236eaba95 160000 --- a/osu-framework +++ b/osu-framework @@ -1 +1 @@ -Subproject commit a0be700a68bfb75bb27350cc7fe2e7e758b8645c +Subproject commit 288236eaba95dfa15268a55f38c009a97d806f25 diff --git a/osu.Game/Beatmaps/Drawables/BeatmapPanel.cs b/osu.Game/Beatmaps/Drawables/BeatmapPanel.cs index a4447fb57c1e..f110fc37ac5b 100644 --- a/osu.Game/Beatmaps/Drawables/BeatmapPanel.cs +++ b/osu.Game/Beatmaps/Drawables/BeatmapPanel.cs @@ -95,8 +95,6 @@ public BeatmapPanel(BeatmapInfo beatmap) new DifficultyIcon(beatmap) { Scale = new Vector2(1.8f), - Anchor = Anchor.CentreLeft, - Origin = Anchor.CentreLeft, }, new FillFlowContainer { diff --git a/osu.Game/Overlays/Options/Sections/MaintenanceSection.cs b/osu.Game/Overlays/Options/Sections/MaintenanceSection.cs index 5393c42843c8..6aa9b66f5c18 100644 --- a/osu.Game/Overlays/Options/Sections/MaintenanceSection.cs +++ b/osu.Game/Overlays/Options/Sections/MaintenanceSection.cs @@ -39,12 +39,20 @@ public MaintenanceSection() RelativeSizeAxes = Axes.X, Text = "Run osu! updater", }, - new OptionLabel + new Container { - Text = "TODO: osu version here", - Anchor = Anchor.TopCentre, - Origin = Anchor.TopCentre, - }, + RelativeSizeAxes = Axes.X, + AutoSizeAxes = Axes.Y, + Children = new[] + { + new OptionLabel + { + Text = "osu!lazer", + Anchor = Anchor.TopCentre, + Origin = Anchor.TopCentre, + }, + } + } }; } } diff --git a/osu.Game/Screens/Play/PauseOverlay.cs b/osu.Game/Screens/Play/PauseOverlay.cs index 970d82561286..056158167033 100644 --- a/osu.Game/Screens/Play/PauseOverlay.cs +++ b/osu.Game/Screens/Play/PauseOverlay.cs @@ -113,11 +113,12 @@ private void load(OsuColour colours) { new FillFlowContainer { - AutoSizeAxes = Axes.Both, - Direction = FillDirection.Vertical, - Spacing = new Vector2(0, 20), Origin = Anchor.TopCentre, Anchor = Anchor.TopCentre, + RelativeSizeAxes = Axes.X, + AutoSizeAxes = Axes.Y, + Direction = FillDirection.Vertical, + Spacing = new Vector2(0, 20), Children = new Drawable[] { new OsuSpriteText @@ -144,6 +145,8 @@ private void load(OsuColour colours) }, new FillFlowContainer { + Origin = Anchor.TopCentre, + Anchor = Anchor.TopCentre, RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, Masking = true, @@ -188,9 +191,9 @@ private void load(OsuColour colours) }, retryCounterContainer = new FillFlowContainer { - AutoSizeAxes = Axes.Both, Origin = Anchor.TopCentre, - Anchor = Anchor.TopCentre + Anchor = Anchor.TopCentre, + AutoSizeAxes = Axes.Both, } } }, diff --git a/osu.Game/Screens/Select/FilterControl.cs b/osu.Game/Screens/Select/FilterControl.cs index 3b8fa4c3c593..af47e7378825 100644 --- a/osu.Game/Screens/Select/FilterControl.cs +++ b/osu.Game/Screens/Select/FilterControl.cs @@ -210,10 +210,9 @@ public GroupSortTabs() groupsEllipsis = new TextAwesome { Icon = FontAwesome.fa_ellipsis_h, + Origin = Anchor.TopLeft, TextSize = 14, Margin = new MarginPadding { Top = 5, Bottom = 5 }, - Origin = Anchor.BottomLeft, - Anchor = Anchor.BottomLeft, } } }, @@ -241,10 +240,9 @@ public GroupSortTabs() sortEllipsis = new TextAwesome { Icon = FontAwesome.fa_ellipsis_h, + Origin = Anchor.TopLeft, TextSize = 14, Margin = new MarginPadding { Top = 5, Bottom = 5 }, - Origin = Anchor.BottomLeft, - Anchor = Anchor.BottomLeft, } } }, From 112545f135fe2d98536b5a1beb6dcffae832f72e Mon Sep 17 00:00:00 2001 From: smoogipooo Date: Sat, 4 Mar 2017 23:24:32 +0900 Subject: [PATCH 15/18] Fix unnecessarily throwing exception if there's no last drawings results file. --- osu.Game/Screens/Tournament/Drawings.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/osu.Game/Screens/Tournament/Drawings.cs b/osu.Game/Screens/Tournament/Drawings.cs index 53ebe2606f34..1270f6201da5 100644 --- a/osu.Game/Screens/Tournament/Drawings.cs +++ b/osu.Game/Screens/Tournament/Drawings.cs @@ -294,6 +294,9 @@ private void reset(bool loadLastResults = false) reloadTeams(); + if (!storage.Exists(results_filename)) + return; + if (loadLastResults) { try From 5c5066e1ae5327d9a5af10abac3f405cd5141b8b Mon Sep 17 00:00:00 2001 From: Jorolf Date: Sat, 4 Mar 2017 15:30:14 +0100 Subject: [PATCH 16/18] renamed local groups --- osu.Game/Screens/Select/CarouselContainer.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/osu.Game/Screens/Select/CarouselContainer.cs b/osu.Game/Screens/Select/CarouselContainer.cs index f63c31f98078..1930ab2daf74 100644 --- a/osu.Game/Screens/Select/CarouselContainer.cs +++ b/osu.Game/Screens/Select/CarouselContainer.cs @@ -376,10 +376,10 @@ public void SelectNext(int direction = 1, bool skipDifficulties = true) public void SelectRandom() { - List groups = this.groups.Where( (BeatmapGroup selectGroup) => selectGroup.State != BeatmapGroupState.Hidden).ToList(); - if (groups.Count < 1) + List visibleGroups = this.groups.Where((BeatmapGroup selectGroup) => selectGroup.State != BeatmapGroupState.Hidden).ToList(); + if (visibleGroups.Count < 1) return; - BeatmapGroup group = groups[RNG.Next(groups.Count)]; + BeatmapGroup group = visibleGroups[RNG.Next(visibleGroups.Count)]; BeatmapPanel panel = group?.BeatmapPanels.First(); if (panel == null) return; From 65699eb39d5635f1433863626115ee3e895e6f5a Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sun, 5 Mar 2017 02:48:44 +0900 Subject: [PATCH 17/18] Fix missing .config files from nuspec. These are required to correctly redirect dll dependencies. --- osu.Desktop/osu.nuspec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/osu.Desktop/osu.nuspec b/osu.Desktop/osu.nuspec index 2888f7c040ec..4c529f57e5d5 100644 --- a/osu.Desktop/osu.nuspec +++ b/osu.Desktop/osu.nuspec @@ -17,7 +17,8 @@ - + + From 3e0334a7781111e65b743de4df4bd01d913d7f46 Mon Sep 17 00:00:00 2001 From: Jorolf Date: Sun, 5 Mar 2017 00:14:11 +0100 Subject: [PATCH 18/18] Initial vitaru commit --- osu.Desktop/Program.cs | 2 + osu.Desktop/osu.Desktop.csproj | 4 + osu.Game.Modes.Vitaru/Objects/Character.cs | 15 +++ .../Objects/VitaruHitObject.cs | 8 ++ osu.Game.Modes.Vitaru/OpenTK.dll.config | 29 ++++++ .../Properties/AssemblyInfo.cs | 39 ++++++++ .../UI/VitaruComboCounter.cs | 14 +++ .../UI/VitaruHitObjectConverter.cs | 16 ++++ .../UI/VitaruJudgementInfo.cs | 13 +++ .../UI/VitaruObjectRenderer.cs | 27 ++++++ osu.Game.Modes.Vitaru/UI/VitaruPlayfield.cs | 78 ++++++++++++++++ osu.Game.Modes.Vitaru/VitaruHitRenderer.cs | 11 +++ osu.Game.Modes.Vitaru/VitaruObjectParser.cs | 13 +++ osu.Game.Modes.Vitaru/VitaruRuleset.cs | 47 ++++++++++ osu.Game.Modes.Vitaru/VitaruScoreOverlay.cs | 30 ++++++ osu.Game.Modes.Vitaru/VitaruScoreProcessor.cs | 13 +++ .../osu.Game.Modes.Vitaru.csproj | 92 +++++++++++++++++++ osu.Game.Modes.Vitaru/packages.config | 9 ++ osu.Game/Graphics/TextAwesome.cs | 1 + osu.Game/Modes/PlayMode.cs | 4 +- osu.sln | 9 +- 21 files changed, 472 insertions(+), 2 deletions(-) create mode 100644 osu.Game.Modes.Vitaru/Objects/Character.cs create mode 100644 osu.Game.Modes.Vitaru/Objects/VitaruHitObject.cs create mode 100644 osu.Game.Modes.Vitaru/OpenTK.dll.config create mode 100644 osu.Game.Modes.Vitaru/Properties/AssemblyInfo.cs create mode 100644 osu.Game.Modes.Vitaru/UI/VitaruComboCounter.cs create mode 100644 osu.Game.Modes.Vitaru/UI/VitaruHitObjectConverter.cs create mode 100644 osu.Game.Modes.Vitaru/UI/VitaruJudgementInfo.cs create mode 100644 osu.Game.Modes.Vitaru/UI/VitaruObjectRenderer.cs create mode 100644 osu.Game.Modes.Vitaru/UI/VitaruPlayfield.cs create mode 100644 osu.Game.Modes.Vitaru/VitaruHitRenderer.cs create mode 100644 osu.Game.Modes.Vitaru/VitaruObjectParser.cs create mode 100644 osu.Game.Modes.Vitaru/VitaruRuleset.cs create mode 100644 osu.Game.Modes.Vitaru/VitaruScoreOverlay.cs create mode 100644 osu.Game.Modes.Vitaru/VitaruScoreProcessor.cs create mode 100644 osu.Game.Modes.Vitaru/osu.Game.Modes.Vitaru.csproj create mode 100644 osu.Game.Modes.Vitaru/packages.config diff --git a/osu.Desktop/Program.cs b/osu.Desktop/Program.cs index 3171e474dca8..3fd990634b14 100644 --- a/osu.Desktop/Program.cs +++ b/osu.Desktop/Program.cs @@ -12,6 +12,7 @@ using osu.Game.Modes.Mania; using osu.Game.Modes.Osu; using osu.Game.Modes.Taiko; +using osu.Game.Modes.Vitaru; namespace osu.Desktop { @@ -45,6 +46,7 @@ public static int Main(string[] args) Ruleset.Register(new TaikoRuleset()); Ruleset.Register(new ManiaRuleset()); Ruleset.Register(new CatchRuleset()); + Ruleset.Register(new VitaruRuleset()); host.Run(new OsuGameDesktop(args)); } diff --git a/osu.Desktop/osu.Desktop.csproj b/osu.Desktop/osu.Desktop.csproj index 527a027ca2fa..3c380207035c 100644 --- a/osu.Desktop/osu.Desktop.csproj +++ b/osu.Desktop/osu.Desktop.csproj @@ -214,6 +214,10 @@ {f167e17a-7de6-4af5-b920-a5112296c695} osu.Game.Modes.Taiko + + {9a615027-b2ab-435e-b865-0c7209933457} + osu.Game.Modes.Vitaru + {0d3fbf8a-7464-4cf7-8c90-3e7886df2d4d} osu.Game diff --git a/osu.Game.Modes.Vitaru/Objects/Character.cs b/osu.Game.Modes.Vitaru/Objects/Character.cs new file mode 100644 index 000000000000..c83af22158f0 --- /dev/null +++ b/osu.Game.Modes.Vitaru/Objects/Character.cs @@ -0,0 +1,15 @@ +using osu.Framework.Graphics.Containers; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace osu.Game.Modes.Vitaru.UI +{ + class Character : Container + { + + + } +} diff --git a/osu.Game.Modes.Vitaru/Objects/VitaruHitObject.cs b/osu.Game.Modes.Vitaru/Objects/VitaruHitObject.cs new file mode 100644 index 000000000000..b8bb74daff4d --- /dev/null +++ b/osu.Game.Modes.Vitaru/Objects/VitaruHitObject.cs @@ -0,0 +1,8 @@ +using osu.Game.Modes.Objects; + +namespace osu.Game.Modes.Vitaru.UI +{ + public class VitaruHitObject : HitObject + { + } +} \ No newline at end of file diff --git a/osu.Game.Modes.Vitaru/OpenTK.dll.config b/osu.Game.Modes.Vitaru/OpenTK.dll.config new file mode 100644 index 000000000000..e725f6d96af3 --- /dev/null +++ b/osu.Game.Modes.Vitaru/OpenTK.dll.config @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/osu.Game.Modes.Vitaru/Properties/AssemblyInfo.cs b/osu.Game.Modes.Vitaru/Properties/AssemblyInfo.cs new file mode 100644 index 000000000000..85ce8028e928 --- /dev/null +++ b/osu.Game.Modes.Vitaru/Properties/AssemblyInfo.cs @@ -0,0 +1,39 @@ +//Copyright (c) 2007-2016 ppy Pty Ltd . +//Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE + +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("osu.Game.Modes.Vitaru")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("osu.Game.Modes.Vitaru")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("58f6c80c-1253-4a0e-a465-b8c85ebeadf3")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/osu.Game.Modes.Vitaru/UI/VitaruComboCounter.cs b/osu.Game.Modes.Vitaru/UI/VitaruComboCounter.cs new file mode 100644 index 000000000000..44bf2b4e73fc --- /dev/null +++ b/osu.Game.Modes.Vitaru/UI/VitaruComboCounter.cs @@ -0,0 +1,14 @@ +//Copyright (c) 2007-2017 ppy Pty Ltd . +//Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE + + + +using osu.Framework.Graphics.Containers; + +namespace osu.Game.Modes.Vitaru.UI +{ + public class VitaruComboCounter : Container + { + + } +} diff --git a/osu.Game.Modes.Vitaru/UI/VitaruHitObjectConverter.cs b/osu.Game.Modes.Vitaru/UI/VitaruHitObjectConverter.cs new file mode 100644 index 000000000000..c80e7f5364de --- /dev/null +++ b/osu.Game.Modes.Vitaru/UI/VitaruHitObjectConverter.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using osu.Game.Beatmaps; +using osu.Game.Modes.Objects; +using osu.Game.Modes.Vitaru.UI; + +namespace osu.Game.Modes.Vitaru.UI +{ + internal class VitaruHitObjectConverter : HitObjectConverter + { + public override List Convert(Beatmap beatmap) + { + throw new NotImplementedException(); + } + } +} \ No newline at end of file diff --git a/osu.Game.Modes.Vitaru/UI/VitaruJudgementInfo.cs b/osu.Game.Modes.Vitaru/UI/VitaruJudgementInfo.cs new file mode 100644 index 000000000000..fcf8c13059a8 --- /dev/null +++ b/osu.Game.Modes.Vitaru/UI/VitaruJudgementInfo.cs @@ -0,0 +1,13 @@ +using System; +using osu.Game.Modes.Objects.Drawables; + +namespace osu.Game.Modes.Vitaru.UI +{ + internal class VitaruJudgementInfo + { + public static explicit operator VitaruJudgementInfo(JudgementInfo v) + { + throw new NotImplementedException(); + } + } +} \ No newline at end of file diff --git a/osu.Game.Modes.Vitaru/UI/VitaruObjectRenderer.cs b/osu.Game.Modes.Vitaru/UI/VitaruObjectRenderer.cs new file mode 100644 index 000000000000..4c86f905ed05 --- /dev/null +++ b/osu.Game.Modes.Vitaru/UI/VitaruObjectRenderer.cs @@ -0,0 +1,27 @@ +//Copyright (c) 2007-2017 ppy Pty Ltd . +//Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE + +using System; +using osu.Game.Modes.Objects; +using osu.Game.Modes.Objects.Drawables; +using osu.Game.Modes.Vitaru.UI; +using osu.Game.Modes.Vitaru.UI; +using osu.Game.Modes.UI; +using System.Collections.Generic; + +namespace osu.Game.Modes.Vitaru.UI +{ + /*public class VitaruObjectRenderer : HitRenderer + { + public List Character { get; internal set; } + + protected override HitObjectConverter Converter => new VitaruHitObjectConverter(); + + protected override Playfield CreatePlayfield() => new VitaruPlayfield(); + + protected override DrawableHitObject GetVisualRepresentation(VitaruHitObject h) + { + + } + }*/ +} \ No newline at end of file diff --git a/osu.Game.Modes.Vitaru/UI/VitaruPlayfield.cs b/osu.Game.Modes.Vitaru/UI/VitaruPlayfield.cs new file mode 100644 index 000000000000..2f3af73523f4 --- /dev/null +++ b/osu.Game.Modes.Vitaru/UI/VitaruPlayfield.cs @@ -0,0 +1,78 @@ +//Copyright (c) 2007-2017 ppy Pty Ltd . +//Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE + +using osu.Framework.Graphics; +using osu.Framework.Graphics.Containers; +using osu.Game.Modes.Objects.Drawables; +using osu.Game.Modes.Vitaru.UI; +using osu.Game.Modes.UI; +using System; + +namespace osu.Game.Modes.Vitaru.UI +{ + public class VitaruPlayfield + {/* + private Container PlayArea; + private Container EnemyArea; + private Container JudgementLayer; + + public override Vector2 Size + { + get + { + var parentSize = Parent.DrawSize; + var aspectSize = parentSize.X * 0.75f < parentSize.Y ? new Vector2(parentSize.X, parentSize.X * 0.75f) : new Vector2(parentSize.Y * 4f / 3f, parentSize.Y); + + return new Vector2(aspectSize.X / parentSize.X, aspectSize.Y / parentSize.Y) * base.Size; + } + } + + public VitaruPlayfield() + { + Anchor = Anchor.Centre; + Origin = Anchor.Centre; + RelativeSizeAxes = Axes.Both; + Size = new Vector2(0.75f); + + Add(new Drawable[] + { + PlayArea = new Container + { + RelativeSizeAxes = Axes.Both, + Depth = 1, + }, + EnemyArea = new Container + { + RelativeSizeAxes = Axes.Both, + Depth = 1, + }, + JudgementLayer = new Container + { + RelativeSizeAxes = Axes.Both, + Depth = 1 + } + }); + } + + public override void Add(DrawableHitObject h) + { + h.Depth = (float)h.HitObject.StartTime; + DrawableEnemy c = h as DrawableEnemy; + + + h.OnJudgement += judgement; + + base.Add(h); + } + + private void judgement(DrawableHitObject arg1, JudgementInfo arg2) + { + throw new NotImplementedException(); + }*/ + + /*private void judgement(DrawableHitObject h, JudgementInfo j) + { + DeathSprite explosion = new DeathSprite((VitaruJudgementInfo)j, (VitaruHitObject)h.HitObject); + }*/ + } +} \ No newline at end of file diff --git a/osu.Game.Modes.Vitaru/VitaruHitRenderer.cs b/osu.Game.Modes.Vitaru/VitaruHitRenderer.cs new file mode 100644 index 000000000000..9ad841933652 --- /dev/null +++ b/osu.Game.Modes.Vitaru/VitaruHitRenderer.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; +using osu.Game.Modes.Objects; +using osu.Game.Modes.UI; + +namespace osu.Game.Modes.Vitaru +{ + internal class VitaruHitRenderer : HitRenderer + { + public List Enemy { get; set; } + } +} \ No newline at end of file diff --git a/osu.Game.Modes.Vitaru/VitaruObjectParser.cs b/osu.Game.Modes.Vitaru/VitaruObjectParser.cs new file mode 100644 index 000000000000..510755092974 --- /dev/null +++ b/osu.Game.Modes.Vitaru/VitaruObjectParser.cs @@ -0,0 +1,13 @@ +using System; +using osu.Game.Modes.Objects; + +namespace osu.Game.Modes.Vitaru +{ + internal class VitaruObjectParser : HitObjectParser + { + public override HitObject Parse(string text) + { + throw new NotImplementedException(); + } + } +} \ No newline at end of file diff --git a/osu.Game.Modes.Vitaru/VitaruRuleset.cs b/osu.Game.Modes.Vitaru/VitaruRuleset.cs new file mode 100644 index 000000000000..6bfae4f6f352 --- /dev/null +++ b/osu.Game.Modes.Vitaru/VitaruRuleset.cs @@ -0,0 +1,47 @@ +//Copyright (c) 2007-2017 ppy Pty Ltd . +//Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE + +using System.Collections.Generic; +using osu.Game.Modes.Objects; +using osu.Game.Modes.UI; +using osu.Game.Modes.Vitaru.UI; +using System; +using osu.Game.Modes.Vitaru.UI; +using osu.Game.Graphics; +using osu.Game.Beatmaps; + +namespace osu.Game.Modes.Vitaru +{ + public class VitaruRuleset : Ruleset + { + public override ScoreOverlay CreateScoreOverlay() => new VitaruScoreOverlay(); + + public override HitObjectParser CreateHitObjectParser() => new VitaruObjectParser(); + + public ScoreProcessor CreateScoreProcessor() => new VitaruScoreProcessor(); + + public override ScoreProcessor CreateScoreProcessor(int hitObjectCount) + { + throw new NotImplementedException(); + } + + public override HitRenderer CreateHitRendererWith(Beatmap beatmap) + { + throw new NotImplementedException(); + } + + public override DifficultyCalculator CreateDifficultyCalculator(Beatmap beatmap) + { + throw new NotImplementedException(); + } + + public override IEnumerable GetModsFor(ModType type) + { + throw new NotImplementedException(); + } + + public override FontAwesome Icon => FontAwesome.fa_osu_vitaru_o; + + protected override PlayMode PlayMode => PlayMode.Vitaru; + } +} diff --git a/osu.Game.Modes.Vitaru/VitaruScoreOverlay.cs b/osu.Game.Modes.Vitaru/VitaruScoreOverlay.cs new file mode 100644 index 000000000000..f20f921874a9 --- /dev/null +++ b/osu.Game.Modes.Vitaru/VitaruScoreOverlay.cs @@ -0,0 +1,30 @@ +using System; +using osu.Game.Graphics.UserInterface; +using osu.Game.Modes.UI; +using osu.Game.Screens.Play; + +namespace osu.Game.Modes.Vitaru +{ + internal class VitaruScoreOverlay : ScoreOverlay + { + protected override PercentageCounter CreateAccuracyCounter() + { + throw new NotImplementedException(); + } + + protected override ComboCounter CreateComboCounter() + { + throw new NotImplementedException(); + } + + protected override KeyCounterCollection CreateKeyCounter() + { + throw new NotImplementedException(); + } + + protected override ScoreCounter CreateScoreCounter() + { + throw new NotImplementedException(); + } + } +} \ No newline at end of file diff --git a/osu.Game.Modes.Vitaru/VitaruScoreProcessor.cs b/osu.Game.Modes.Vitaru/VitaruScoreProcessor.cs new file mode 100644 index 000000000000..507aa5f56e42 --- /dev/null +++ b/osu.Game.Modes.Vitaru/VitaruScoreProcessor.cs @@ -0,0 +1,13 @@ +using System; +using osu.Game.Modes.Objects.Drawables; + +namespace osu.Game.Modes.Vitaru +{ + internal class VitaruScoreProcessor : ScoreProcessor + { + protected override void UpdateCalculations(JudgementInfo newJudgement) + { + throw new NotImplementedException(); + } + } +} \ No newline at end of file diff --git a/osu.Game.Modes.Vitaru/osu.Game.Modes.Vitaru.csproj b/osu.Game.Modes.Vitaru/osu.Game.Modes.Vitaru.csproj new file mode 100644 index 000000000000..6c33e15a7564 --- /dev/null +++ b/osu.Game.Modes.Vitaru/osu.Game.Modes.Vitaru.csproj @@ -0,0 +1,92 @@ + + + + + Debug + AnyCPU + {9A615027-B2AB-435E-B865-0C7209933457} + Library + Properties + osu.Game.Modes.Vitaru + osu.Game.Modes.Vitaru + v4.5 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\ppy.OpenTK.2.0.50727.1339\lib\net45\OpenTK.dll + True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + osu.licenseheader + + + + + + + {C76BF5B3-985E-4D39-95FE-97C9C879B83A} + osu.Framework + + + {d9a367c9-4c1a-489f-9b05-a0cea2b53b58} + osu.Game.Resources + + + {0D3FBF8A-7464-4CF7-8C90-3E7886DF2D4D} + osu.Game + + + + + + \ No newline at end of file diff --git a/osu.Game.Modes.Vitaru/packages.config b/osu.Game.Modes.Vitaru/packages.config new file mode 100644 index 000000000000..c76124f7dacf --- /dev/null +++ b/osu.Game.Modes.Vitaru/packages.config @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/osu.Game/Graphics/TextAwesome.cs b/osu.Game/Graphics/TextAwesome.cs index 13d3cbc8c380..91010e65c11f 100644 --- a/osu.Game/Graphics/TextAwesome.cs +++ b/osu.Game/Graphics/TextAwesome.cs @@ -827,6 +827,7 @@ public enum FontAwesome fa_osu_mania_o = 0xe001, fa_osu_fruits_o = 0xe002, fa_osu_taiko_o = 0xe003, + fa_osu_vitaru_o = 0xe04b, // gamemode icons without circles fa_osu_filled_circle = 0xe004, diff --git a/osu.Game/Modes/PlayMode.cs b/osu.Game/Modes/PlayMode.cs index 8d1e5158b035..4ecbce905d83 100644 --- a/osu.Game/Modes/PlayMode.cs +++ b/osu.Game/Modes/PlayMode.cs @@ -14,6 +14,8 @@ public enum PlayMode [Description(@"osu!catch")] Catch = 2, [Description(@"osu!mania")] - Mania = 3 + Mania = 3, + [Description(@"osu!vitaru")] + Vitaru = 4 } } diff --git a/osu.sln b/osu.sln index bda60c631831..144c6c86594c 100644 --- a/osu.sln +++ b/osu.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 +VisualStudioVersion = 14.0.24720.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "osu.Desktop", "osu.Desktop\osu.Desktop.csproj", "{2A66DD92-ADB1-4994-89E2-C94E04ACDA0D}" EndProject @@ -35,6 +35,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "osu.Desktop.Deploy", "osu.D EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{6EAD7610-89D8-48A2-8BE0-E348297E4D8B}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "osu.Game.Modes.Vitaru", "osu.Game.Modes.Vitaru\osu.Game.Modes.Vitaru.csproj", "{9A615027-B2AB-435E-B865-0C7209933457}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -91,6 +93,10 @@ Global {230AC4F3-7783-49FB-9AEC-B83CDA3B9F3D}.Release|Any CPU.Build.0 = Release|Any CPU {BAEA2F74-0315-4667-84E0-ACAC0B4BF785}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BAEA2F74-0315-4667-84E0-ACAC0B4BF785}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A615027-B2AB-435E-B865-0C7209933457}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A615027-B2AB-435E-B865-0C7209933457}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A615027-B2AB-435E-B865-0C7209933457}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A615027-B2AB-435E-B865-0C7209933457}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -109,6 +115,7 @@ Global {48F4582B-7687-4621-9CBE-5C24197CB536} = {0D37A2AD-80A4-464F-A1DE-1560B70F1CE3} {230AC4F3-7783-49FB-9AEC-B83CDA3B9F3D} = {0D37A2AD-80A4-464F-A1DE-1560B70F1CE3} {BAEA2F74-0315-4667-84E0-ACAC0B4BF785} = {6EAD7610-89D8-48A2-8BE0-E348297E4D8B} + {9A615027-B2AB-435E-B865-0C7209933457} = {0D37A2AD-80A4-464F-A1DE-1560B70F1CE3} EndGlobalSection GlobalSection(MonoDevelopProperties) = preSolution Policies = $0