Merge remote-tracking branch 'upstream/master' into counters-a

This commit is contained in:
Adonais Romero González
2016-10-17 20:36:04 -05:00
20 changed files with 55 additions and 141 deletions

View File

@ -6,7 +6,6 @@ using System.Collections.Generic;
using osu.Framework.GameModes; using osu.Framework.GameModes;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.Transformations; using osu.Framework.Graphics.Transformations;
using osu.Framework.Graphics.UserInterface; using osu.Framework.Graphics.UserInterface;

View File

@ -4,7 +4,6 @@ using OpenTK.Input;
using osu.Framework; using osu.Framework;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Primitives; using osu.Framework.Graphics.Primitives;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.Transformations; using osu.Framework.Graphics.Transformations;
@ -21,7 +20,7 @@ namespace osu.Game.GameModes.Menu
public class Button : AutoSizeContainer, IStateful<ButtonState> public class Button : AutoSizeContainer, IStateful<ButtonState>
{ {
private Container iconText; private Container iconText;
private WedgedBox box; private Box box;
private Color4 colour; private Color4 colour;
private TextAwesome icon; private TextAwesome icon;
private string internalName; private string internalName;
@ -31,7 +30,10 @@ namespace osu.Game.GameModes.Menu
private Key triggerKey; private Key triggerKey;
private string text; private string text;
public override Quad ScreenSpaceInputQuad => box.ScreenSpaceInputQuad; public override bool Contains(Vector2 screenSpacePos)
{
return box.Contains(screenSpacePos);
}
public Button(string text, string internalName, FontAwesome symbol, Color4 colour, Action clickAction = null, float extraWidth = 0, Key triggerKey = Key.Unknown) public Button(string text, string internalName, FontAwesome symbol, Color4 colour, Action clickAction = null, float extraWidth = 0, Key triggerKey = Key.Unknown)
{ {
@ -49,14 +51,18 @@ namespace osu.Game.GameModes.Menu
base.Load(game); base.Load(game);
Alpha = 0; Alpha = 0;
Vector2 boxSize = new Vector2(ButtonSystem.button_width + Math.Abs(extraWidth), ButtonSystem.button_area_height);
Children = new Drawable[] Children = new Drawable[]
{ {
box = new WedgedBox(new Vector2(ButtonSystem.button_width + Math.Abs(extraWidth), ButtonSystem.button_area_height), ButtonSystem.wedge_width) box = new Box
{ {
Anchor = Anchor.Centre, Anchor = Anchor.Centre,
Origin = Anchor.Centre, Origin = Anchor.Centre,
Colour = colour, Colour = colour,
Scale = new Vector2(0, 1) Scale = new Vector2(0, 1),
Size = boxSize,
Shear = new Vector2(ButtonSystem.wedge_width / boxSize.Y, 0),
}, },
iconText = new AutoSizeContainer iconText = new AutoSizeContainer
{ {
@ -267,42 +273,6 @@ namespace osu.Game.GameModes.Menu
} }
} }
} }
/// <summary>
/// ________
/// / /
/// / /
/// /_______/
/// </summary>
class WedgedBox : Box
{
float wedgeWidth;
public WedgedBox(Vector2 boxSize, float wedgeWidth)
{
Size = boxSize;
this.wedgeWidth = wedgeWidth;
}
/// <summary>
/// Custom DrawQuad used to create the slanted effect.
/// </summary>
protected override Quad DrawQuad
{
get
{
Quad q = base.DrawQuad;
//Will become infinite if we don't limit its maximum size.
float wedge = Math.Min(q.Width, wedgeWidth / Scale.X);
q.TopLeft.X += wedge;
q.BottomRight.X -= wedge;
return q;
}
}
}
} }
public enum ButtonState public enum ButtonState

View File

@ -6,13 +6,10 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Primitives;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.Transformations; using osu.Framework.Graphics.Transformations;
using osu.Framework.Input; using osu.Framework.Input;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Game.Graphics.Containers;
using OpenTK; using OpenTK;
using OpenTK.Graphics; using OpenTK.Graphics;
using OpenTK.Input; using OpenTK.Input;

View File

@ -17,7 +17,8 @@ namespace osu.Game.GameModes.Menu
/// </summary> /// </summary>
public partial class OsuLogo : AutoSizeContainer public partial class OsuLogo : AutoSizeContainer
{ {
private SpriteCircular logo; private Sprite logo;
private CircularContainer logoContainer;
private Container logoBounceContainer; private Container logoBounceContainer;
private MenuVisualisation vis; private MenuVisualisation vis;
@ -29,6 +30,11 @@ namespace osu.Game.GameModes.Menu
private Container rippleContainer; private Container rippleContainer;
public override bool Contains(Vector2 screenSpacePos)
{
return logoContainer.Contains(screenSpacePos);
}
public bool Ripple public bool Ripple
{ {
get { return rippleContainer.Alpha > 0; } get { return rippleContainer.Alpha > 0; }
@ -38,11 +44,6 @@ namespace osu.Game.GameModes.Menu
} }
} }
public override bool Contains(Vector2 screenSpacePos)
{
return logo.Contains(screenSpacePos);
}
public bool Interactive = true; public bool Interactive = true;
public OsuLogo() public OsuLogo()
@ -56,10 +57,17 @@ namespace osu.Game.GameModes.Menu
{ {
Children = new Drawable[] Children = new Drawable[]
{ {
logo = new SpriteCircular() logoContainer = new CircularContainer
{ {
Anchor = Anchor.Centre, Anchor = Anchor.Centre,
Origin = Anchor.Centre Children = new[]
{
logo = new Sprite
{
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
},
},
}, },
rippleContainer = new Container rippleContainer = new Container
{ {

View File

@ -3,7 +3,6 @@
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using OpenTK; using OpenTK;
using OpenTK.Graphics; using OpenTK.Graphics;

View File

@ -3,7 +3,6 @@
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using OpenTK; using OpenTK;
using OpenTK.Graphics; using OpenTK.Graphics;

View File

@ -3,9 +3,9 @@
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using OpenTK; using OpenTK;
using osu.Framework; using osu.Framework;
using osu.Framework.Graphics.Sprites;
namespace osu.Game.GameModes.Play.Osu namespace osu.Game.GameModes.Play.Osu
{ {

View File

@ -3,7 +3,6 @@
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using OpenTK; using OpenTK;
using OpenTK.Graphics; using OpenTK.Graphics;

View File

@ -5,7 +5,6 @@ using System;
using osu.Framework.Configuration; using osu.Framework.Configuration;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using OpenTK; using OpenTK;
using OpenTK.Graphics; using OpenTK.Graphics;

View File

@ -25,12 +25,23 @@ namespace osu.Game
public Options Options; public Options Options;
public APIAccess API; public APIAccess API;
protected override Container Content => ratioContainer?.IsLoaded == true ? ratioContainer : base.Content; protected override Container Content => ratioContainer;
private RatioAdjust ratioContainer; private RatioAdjust ratioContainer;
public CursorContainer Cursor; public CursorContainer Cursor;
public OsuGameBase()
{
AddInternal(ratioContainer = new RatioAdjust());
Children = new Drawable[]
{
Options = new Options(),
Cursor = new OsuCursorContainer()
};
}
public override void Load(BaseGame game) public override void Load(BaseGame game)
{ {
base.Load(game); base.Load(game);
@ -50,18 +61,6 @@ namespace osu.Game
Password = Config.Get<string>(OsuConfig.Password), Password = Config.Get<string>(OsuConfig.Password),
Token = Config.Get<string>(OsuConfig.Token) Token = Config.Get<string>(OsuConfig.Token)
}; };
Add(new Drawable[]
{
ratioContainer = new RatioAdjust
{
Children = new Drawable[]
{
Options = new Options(),
Cursor = new OsuCursorContainer()
}
}
});
} }
protected override void Update() protected override void Update()

View File

@ -9,7 +9,6 @@ using OpenTK.Graphics;
using osu.Framework; using osu.Framework;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.Transformations; using osu.Framework.Graphics.Transformations;
using osu.Framework.Threading; using osu.Framework.Threading;
@ -20,7 +19,7 @@ using osu.Game.Online.Chat.Display;
namespace osu.Game.Overlays namespace osu.Game.Overlays
{ {
public class ChatConsole : Overlay public class ChatConsole : OverlayContainer
{ {
private ChannelDisplay channelDisplay; private ChannelDisplay channelDisplay;

View File

@ -6,13 +6,14 @@ using OpenTK.Graphics;
using OpenTK.Input; using OpenTK.Input;
using osu.Framework; using osu.Framework;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Drawables; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.Transformations; using osu.Framework.Graphics.Transformations;
using osu.Framework.Input; using osu.Framework.Input;
namespace osu.Game.Overlays namespace osu.Game.Overlays
{ {
public class Options : Overlay public class Options : OverlayContainer
{ {
private const float width = 300; private const float width = 300;

View File

@ -1,53 +0,0 @@
using osu.Framework;
using osu.Framework.Graphics.Containers;
namespace osu.Game.Overlays
{
/// <summary>
/// An element which starts hidden and can be toggled to visible.
/// </summary>
public abstract class Overlay : Container, IStateful<Visibility>
{
public override void Load(BaseGame game)
{
base.Load(game);
//TODO: init code using Alpha or IsVisible override to ensure we don't call Load on children before we first get unhidden.
PopOut();
Flush();
}
private Visibility state;
public Visibility State
{
get { return state; }
set
{
if (value == state) return;
state = value;
switch (value)
{
case Visibility.Hidden:
PopOut();
break;
case Visibility.Visible:
PopIn();
break;
}
}
}
protected abstract void PopIn();
protected abstract void PopOut();
public void ToggleVisibility() => State = (State == Visibility.Visible ? Visibility.Hidden : Visibility.Visible);
}
public enum Visibility
{
Hidden,
Visible
}
}

View File

@ -7,15 +7,15 @@ using OpenTK.Graphics;
using osu.Framework; using osu.Framework;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Transformations; using osu.Framework.Graphics.Transformations;
using osu.Game.Configuration; using osu.Game.Configuration;
using osu.Game.GameModes.Play; using osu.Game.GameModes.Play;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Framework.Graphics.Sprites;
namespace osu.Game.Overlays namespace osu.Game.Overlays
{ {
public class Toolbar : Overlay public class Toolbar : OverlayContainer
{ {
private const float height = 50; private const float height = 50;
@ -62,9 +62,9 @@ namespace osu.Game.Overlays
new ToolbarButton new ToolbarButton
{ {
Icon = FontAwesome.gear, Icon = FontAwesome.gear,
Action = OnSettings,
TooltipMain = "Settings", TooltipMain = "Settings",
TooltipSub = "Change your settings", TooltipSub = "Change your settings",
Action = OnSettings
}, },
new ToolbarButton new ToolbarButton
{ {

View File

@ -4,7 +4,6 @@
using System; using System;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using osu.Framework.Input; using osu.Framework.Input;
using osu.Game.Graphics; using osu.Game.Graphics;

View File

@ -6,12 +6,12 @@ using System.Linq;
using osu.Framework.Cached; using osu.Framework.Cached;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Transformations; using osu.Framework.Graphics.Transformations;
using osu.Game.GameModes.Play; using osu.Game.GameModes.Play;
using OpenTK; using OpenTK;
using OpenTK.Graphics; using OpenTK.Graphics;
using osu.Framework; using osu.Framework;
using osu.Framework.Graphics.Sprites;
namespace osu.Game.Overlays namespace osu.Game.Overlays
{ {

View File

@ -4,10 +4,11 @@ using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Input; using osu.Framework.Input;
using OpenTK; using OpenTK;
using osu.Framework.Graphics.Primitives;
namespace osu.Game namespace osu.Game
{ {
internal class VolumeControl : Container internal class VolumeControl : AutoSizeContainer
{ {
private FlowContainer volumeMetersContainer; private FlowContainer volumeMetersContainer;
private VolumeMeter volumeMeterMaster; private VolumeMeter volumeMeterMaster;
@ -15,14 +16,14 @@ namespace osu.Game
public BindableDouble VolumeSample { get; set; } public BindableDouble VolumeSample { get; set; }
public BindableDouble VolumeTrack { get; set; } public BindableDouble VolumeTrack { get; set; }
public VolumeControl() public override bool Contains(Vector2 screenSpacePos) => true;
{
RelativeSizeAxes = Axes.Both;
}
private void volumeChanged(object sender, System.EventArgs e) private void volumeChanged(object sender, System.EventArgs e)
{ {
appear(); appear();
Anchor = Anchor.BottomRight;
Origin = Anchor.BottomRight;
} }
public override void Load(BaseGame game) public override void Load(BaseGame game)

View File

@ -1,7 +1,6 @@
using osu.Framework.Configuration; using osu.Framework.Configuration;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Drawables;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.Transformations; using osu.Framework.Graphics.Transformations;
using osu.Framework.Input; using osu.Framework.Input;

View File

@ -166,7 +166,6 @@
<Compile Include="OsuGameBase.cs" /> <Compile Include="OsuGameBase.cs" />
<Compile Include="Overlays\ChatConsole.cs" /> <Compile Include="Overlays\ChatConsole.cs" />
<Compile Include="Overlays\Options.cs" /> <Compile Include="Overlays\Options.cs" />
<Compile Include="Overlays\Overlay.cs" />
<Compile Include="Overlays\Toolbar.cs" /> <Compile Include="Overlays\Toolbar.cs" />
<Compile Include="Overlays\ToolbarButton.cs" /> <Compile Include="Overlays\ToolbarButton.cs" />
<Compile Include="Overlays\ToolbarModeButton.cs" /> <Compile Include="Overlays\ToolbarModeButton.cs" />