Merge branch 'master' into add-legacy-star-particles

This commit is contained in:
Opelkuh
2021-09-19 04:34:35 +02:00
170 changed files with 1920 additions and 1237 deletions

View File

@ -13,6 +13,7 @@ using osu.Framework.Graphics.Primitives;
using osu.Framework.Allocation;
using System.Collections.Generic;
using osu.Framework.Graphics.Batches;
using osu.Framework.Graphics.OpenGL.Buffers;
using osu.Framework.Graphics.OpenGL.Vertices;
using osu.Framework.Lists;
@ -181,7 +182,10 @@ namespace osu.Game.Graphics.Backgrounds
private void addTriangles(bool randomY)
{
AimCount = (int)(DrawWidth * DrawHeight * 0.002f / (triangleScale * triangleScale) * SpawnRatio);
// limited by the maximum size of QuadVertexBuffer for safety.
const int max_triangles = QuadVertexBuffer<TexturedVertex2D>.MAX_QUADS;
AimCount = (int)Math.Min(max_triangles, (DrawWidth * DrawHeight * 0.002f / (triangleScale * triangleScale) * SpawnRatio));
for (int i = 0; i < AimCount - parts.Count; i++)
parts.Add(createTriangle(randomY));

View File

@ -88,9 +88,9 @@ namespace osu.Game.Graphics.Containers
base.OnMouseUp(e);
}
public virtual bool OnPressed(GlobalAction action)
public virtual bool OnPressed(KeyBindingPressEvent<GlobalAction> e)
{
switch (action)
switch (e.Action)
{
case GlobalAction.Back:
Hide();
@ -103,7 +103,7 @@ namespace osu.Game.Graphics.Containers
return false;
}
public void OnReleased(GlobalAction action)
public void OnReleased(KeyBindingReleaseEvent<GlobalAction> e)
{
}

View File

@ -1,8 +1,8 @@
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Game.Extensions;
namespace osu.Game.Graphics.Containers
{
@ -16,40 +16,10 @@ namespace osu.Game.Graphics.Containers
/// </summary>
public float ShakeDuration = 80;
/// <summary>
/// Total number of shakes. May be shortened if possible.
/// </summary>
public float TotalShakes = 4;
/// <summary>
/// Pixels of displacement per shake.
/// </summary>
public float ShakeMagnitude = 8;
/// <summary>
/// Shake the contents of this container.
/// </summary>
/// <param name="maximumLength">The maximum length the shake should last.</param>
public void Shake(double? maximumLength = null)
{
const float shake_amount = 8;
// if we don't have enough time, don't bother shaking.
if (maximumLength < ShakeDuration * 2)
return;
var sequence = this.MoveToX(shake_amount, ShakeDuration / 2, Easing.OutSine).Then()
.MoveToX(-shake_amount, ShakeDuration, Easing.InOutSine).Then();
// if we don't have enough time for the second shake, skip it.
if (!maximumLength.HasValue || maximumLength >= ShakeDuration * 4)
{
sequence = sequence
.MoveToX(shake_amount, ShakeDuration, Easing.InOutSine).Then()
.MoveToX(-shake_amount, ShakeDuration, Easing.InOutSine).Then();
}
sequence.MoveToX(0, ShakeDuration / 2, Easing.InSine);
}
public void Shake(double? maximumLength = null) => this.Shake(ShakeDuration, maximumLength: maximumLength);
}
}

View File

@ -12,6 +12,7 @@ using osu.Framework.Bindables;
using osu.Framework.Graphics;
using osu.Framework.Input;
using osu.Framework.Input.Bindings;
using osu.Framework.Input.Events;
using osu.Framework.Platform;
using osu.Framework.Threading;
using osu.Game.Configuration;
@ -57,9 +58,9 @@ namespace osu.Game.Graphics
shutter = audio.Samples.Get("UI/shutter");
}
public bool OnPressed(GlobalAction action)
public bool OnPressed(KeyBindingPressEvent<GlobalAction> e)
{
switch (action)
switch (e.Action)
{
case GlobalAction.TakeScreenshot:
shutter.Play();
@ -70,7 +71,7 @@ namespace osu.Game.Graphics
return false;
}
public void OnReleased(GlobalAction action)
public void OnReleased(KeyBindingReleaseEvent<GlobalAction> e)
{
}

View File

@ -6,6 +6,7 @@ using osu.Framework.Allocation;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Input.Bindings;
using osu.Framework.Input.Events;
using osu.Game.Input.Bindings;
namespace osu.Game.Graphics.UserInterface
@ -61,9 +62,9 @@ namespace osu.Game.Graphics.UserInterface
{
public Action OnBackPressed;
public bool OnPressed(GlobalAction action)
public bool OnPressed(KeyBindingPressEvent<GlobalAction> e)
{
switch (action)
switch (e.Action)
{
case GlobalAction.Back:
OnBackPressed?.Invoke();
@ -73,7 +74,7 @@ namespace osu.Game.Graphics.UserInterface
return false;
}
public void OnReleased(GlobalAction action)
public void OnReleased(KeyBindingReleaseEvent<GlobalAction> e)
{
}
}

View File

@ -70,11 +70,11 @@ namespace osu.Game.Graphics.UserInterface
return base.OnKeyDown(e);
}
public virtual bool OnPressed(GlobalAction action)
public virtual bool OnPressed(KeyBindingPressEvent<GlobalAction> e)
{
if (!HasFocus) return false;
if (action == GlobalAction.Back)
if (e.Action == GlobalAction.Back)
{
if (Text.Length > 0)
{
@ -86,7 +86,7 @@ namespace osu.Game.Graphics.UserInterface
return false;
}
public void OnReleased(GlobalAction action)
public void OnReleased(KeyBindingReleaseEvent<GlobalAction> e)
{
}

View File

@ -30,9 +30,9 @@ namespace osu.Game.Graphics.UserInterface
PlaceholderText = "type to search";
}
public override bool OnPressed(PlatformAction action)
public override bool OnPressed(KeyBindingPressEvent<PlatformAction> e)
{
switch (action)
switch (e.Action)
{
case PlatformAction.MoveBackwardLine:
case PlatformAction.MoveForwardLine:
@ -43,7 +43,7 @@ namespace osu.Game.Graphics.UserInterface
return false;
}
return base.OnPressed(action);
return base.OnPressed(e);
}
protected override bool OnKeyDown(KeyDownEvent e)

View File

@ -8,6 +8,7 @@ using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Effects;
using osu.Framework.Graphics.UserInterface;
using osu.Framework.Input.Bindings;
using osu.Framework.Input.Events;
using osu.Game.Input.Bindings;
using osu.Game.Overlays;
using osuTK;
@ -55,12 +56,12 @@ namespace osu.Game.Graphics.UserInterfaceV2
this.FadeOut(fade_duration, Easing.OutQuint);
}
public bool OnPressed(GlobalAction action)
public bool OnPressed(KeyBindingPressEvent<GlobalAction> e)
{
if (State.Value == Visibility.Hidden)
return false;
if (action == GlobalAction.Back)
if (e.Action == GlobalAction.Back)
{
Hide();
return true;
@ -69,7 +70,7 @@ namespace osu.Game.Graphics.UserInterfaceV2
return false;
}
public void OnReleased(GlobalAction action)
public void OnReleased(KeyBindingReleaseEvent<GlobalAction> e)
{
}
}