mirror of
https://github.com/ppy/osu.git
synced 2024-12-30 23:29:51 +08:00
Merge branch 'master' into ArrangeMod
This commit is contained in:
commit
10d444e3fd
@ -13,8 +13,6 @@ install:
|
|||||||
before_build:
|
before_build:
|
||||||
- cmd: CodeFileSanity.exe
|
- cmd: CodeFileSanity.exe
|
||||||
- cmd: nuget restore -verbosity quiet
|
- cmd: nuget restore -verbosity quiet
|
||||||
environment:
|
|
||||||
TargetFramework: net471
|
|
||||||
build:
|
build:
|
||||||
project: osu.sln
|
project: osu.sln
|
||||||
parallel: true
|
parallel: true
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<Import Project="..\osu.Game.props" />
|
<Import Project="..\osu.Game.props" />
|
||||||
<PropertyGroup Label="Project">
|
<PropertyGroup Label="Project">
|
||||||
<TargetFrameworks>net471;netcoreapp2.1</TargetFrameworks>
|
<TargetFramework>netcoreapp2.1</TargetFramework>
|
||||||
<OutputType>WinExe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
|
@ -1,8 +1,14 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<Import Project="..\osu.TestProject.props" />
|
<Import Project="..\osu.TestProject.props" />
|
||||||
|
<ItemGroup Label="Package References">
|
||||||
|
<PackageReference Include="Appveyor.TestLogger" Version="2.0.0" />
|
||||||
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.7.2" />
|
||||||
|
<PackageReference Include="NUnit" Version="3.10.1" />
|
||||||
|
<PackageReference Include="NUnit3TestAdapter" Version="3.10.0" />
|
||||||
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Project">
|
<PropertyGroup Label="Project">
|
||||||
<OutputType>WinExe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
<TargetFrameworks>netcoreapp2.1;net471</TargetFrameworks>
|
<TargetFramework>netcoreapp2.1</TargetFramework>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Label="Project References">
|
<ItemGroup Label="Project References">
|
||||||
<ProjectReference Include="..\osu.Game.Rulesets.Catch\osu.Game.Rulesets.Catch.csproj" />
|
<ProjectReference Include="..\osu.Game.Rulesets.Catch\osu.Game.Rulesets.Catch.csproj" />
|
||||||
|
@ -52,6 +52,9 @@ namespace osu.Game.Rulesets.Catch.UI
|
|||||||
{
|
{
|
||||||
void runAfterLoaded(Action action)
|
void runAfterLoaded(Action action)
|
||||||
{
|
{
|
||||||
|
if (lastPlateableFruit == null)
|
||||||
|
return;
|
||||||
|
|
||||||
// this is required to make this run after the last caught fruit runs UpdateState at least once.
|
// this is required to make this run after the last caught fruit runs UpdateState at least once.
|
||||||
// TODO: find a better alternative
|
// TODO: find a better alternative
|
||||||
if (lastPlateableFruit.IsLoaded)
|
if (lastPlateableFruit.IsLoaded)
|
||||||
|
@ -62,7 +62,7 @@ namespace osu.Game.Rulesets.Mania.Tests
|
|||||||
return new ScrollingTestContainer(direction)
|
return new ScrollingTestContainer(direction)
|
||||||
{
|
{
|
||||||
AutoSizeAxes = Axes.Both,
|
AutoSizeAxes = Axes.Both,
|
||||||
Child = new NoteContainer(direction, $"note, scrolling {direction.ToString().ToLower()}")
|
Child = new NoteContainer(direction, $"note, scrolling {direction.ToString().ToLowerInvariant()}")
|
||||||
{
|
{
|
||||||
Child = new DrawableNote(note) { AccentColour = Color4.OrangeRed }
|
Child = new DrawableNote(note) { AccentColour = Color4.OrangeRed }
|
||||||
}
|
}
|
||||||
@ -77,7 +77,7 @@ namespace osu.Game.Rulesets.Mania.Tests
|
|||||||
return new ScrollingTestContainer(direction)
|
return new ScrollingTestContainer(direction)
|
||||||
{
|
{
|
||||||
AutoSizeAxes = Axes.Both,
|
AutoSizeAxes = Axes.Both,
|
||||||
Child = new NoteContainer(direction, $"hold note, scrolling {direction.ToString().ToLower()}")
|
Child = new NoteContainer(direction, $"hold note, scrolling {direction.ToString().ToLowerInvariant()}")
|
||||||
{
|
{
|
||||||
Child = new DrawableHoldNote(note)
|
Child = new DrawableHoldNote(note)
|
||||||
{
|
{
|
||||||
|
@ -1,8 +1,14 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<Import Project="..\osu.TestProject.props" />
|
<Import Project="..\osu.TestProject.props" />
|
||||||
|
<ItemGroup Label="Package References">
|
||||||
|
<PackageReference Include="Appveyor.TestLogger" Version="2.0.0" />
|
||||||
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.7.2" />
|
||||||
|
<PackageReference Include="NUnit" Version="3.10.1" />
|
||||||
|
<PackageReference Include="NUnit3TestAdapter" Version="3.10.0" />
|
||||||
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Project">
|
<PropertyGroup Label="Project">
|
||||||
<OutputType>WinExe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
<TargetFrameworks>netcoreapp2.1;net471</TargetFrameworks>
|
<TargetFramework>netcoreapp2.1</TargetFramework>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Label="Project References">
|
<ItemGroup Label="Project References">
|
||||||
<ProjectReference Include="..\osu.Game.Rulesets.Mania\osu.Game.Rulesets.Mania.csproj" />
|
<ProjectReference Include="..\osu.Game.Rulesets.Mania\osu.Game.Rulesets.Mania.csproj" />
|
||||||
|
@ -1,8 +1,14 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<Import Project="..\osu.TestProject.props" />
|
<Import Project="..\osu.TestProject.props" />
|
||||||
|
<ItemGroup Label="Package References">
|
||||||
|
<PackageReference Include="Appveyor.TestLogger" Version="2.0.0" />
|
||||||
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.7.2" />
|
||||||
|
<PackageReference Include="NUnit" Version="3.10.1" />
|
||||||
|
<PackageReference Include="NUnit3TestAdapter" Version="3.10.0" />
|
||||||
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Project">
|
<PropertyGroup Label="Project">
|
||||||
<OutputType>WinExe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
<TargetFrameworks>netcoreapp2.1;net471</TargetFrameworks>
|
<TargetFramework>netcoreapp2.1</TargetFramework>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Label="Project References">
|
<ItemGroup Label="Project References">
|
||||||
<ProjectReference Include="..\osu.Game.Rulesets.Osu\osu.Game.Rulesets.Osu.csproj" />
|
<ProjectReference Include="..\osu.Game.Rulesets.Osu\osu.Game.Rulesets.Osu.csproj" />
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
// Copyright (c) 2007-2018 ppy Pty Ltd <contact@ppy.sh>.
|
// Copyright (c) 2007-2018 ppy Pty Ltd <contact@ppy.sh>.
|
||||||
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
||||||
|
|
||||||
|
using System;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using osu.Game.Rulesets.Objects.Drawables;
|
using osu.Game.Rulesets.Objects.Drawables;
|
||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using osu.Game.Rulesets.Objects.Types;
|
using osu.Game.Rulesets.Objects.Types;
|
||||||
|
using osu.Game.Rulesets.Scoring;
|
||||||
using osu.Game.Skinning;
|
using osu.Game.Skinning;
|
||||||
using OpenTK.Graphics;
|
using OpenTK.Graphics;
|
||||||
|
|
||||||
@ -32,7 +34,9 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
|||||||
{
|
{
|
||||||
UpdatePreemptState();
|
UpdatePreemptState();
|
||||||
|
|
||||||
using (BeginDelayedSequence(HitObject.TimePreempt + (Judgements.FirstOrDefault()?.TimeOffset ?? 0), true))
|
var judgementOffset = Math.Min(HitObject.HitWindows.HalfWindowFor(HitResult.Miss), Judgements.FirstOrDefault()?.TimeOffset ?? 0);
|
||||||
|
|
||||||
|
using (BeginDelayedSequence(HitObject.TimePreempt + judgementOffset, true))
|
||||||
UpdateCurrentState(state);
|
UpdateCurrentState(state);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,14 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<Import Project="..\osu.TestProject.props" />
|
<Import Project="..\osu.TestProject.props" />
|
||||||
|
<ItemGroup Label="Package References">
|
||||||
|
<PackageReference Include="Appveyor.TestLogger" Version="2.0.0" />
|
||||||
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.7.2" />
|
||||||
|
<PackageReference Include="NUnit" Version="3.10.1" />
|
||||||
|
<PackageReference Include="NUnit3TestAdapter" Version="3.10.0" />
|
||||||
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Project">
|
<PropertyGroup Label="Project">
|
||||||
<OutputType>WinExe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
<TargetFrameworks>netcoreapp2.1;net471</TargetFrameworks>
|
<TargetFramework>netcoreapp2.1</TargetFramework>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Label="Project References">
|
<ItemGroup Label="Project References">
|
||||||
<ProjectReference Include="..\osu.Game.Rulesets.Taiko\osu.Game.Rulesets.Taiko.csproj" />
|
<ProjectReference Include="..\osu.Game.Rulesets.Taiko\osu.Game.Rulesets.Taiko.csproj" />
|
||||||
|
41
osu.Game.Tests/Visual/TestCaseLabelledTextBox.cs
Normal file
41
osu.Game.Tests/Visual/TestCaseLabelledTextBox.cs
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
// Copyright (c) 2007-2018 ppy Pty Ltd <contact@ppy.sh>.
|
||||||
|
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
||||||
|
|
||||||
|
using NUnit.Framework;
|
||||||
|
using osu.Framework.Allocation;
|
||||||
|
using osu.Framework.Graphics;
|
||||||
|
using osu.Framework.Graphics.Containers;
|
||||||
|
using osu.Game.Screens.Edit.Screens.Setup.Components.LabelledComponents;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace osu.Game.Tests.Visual
|
||||||
|
{
|
||||||
|
[TestFixture]
|
||||||
|
public class TestCaseLabelledTextBox : OsuTestCase
|
||||||
|
{
|
||||||
|
public override IReadOnlyList<Type> RequiredTypes => new[]
|
||||||
|
{
|
||||||
|
typeof(LabelledTextBox),
|
||||||
|
};
|
||||||
|
|
||||||
|
[BackgroundDependencyLoader]
|
||||||
|
private void load()
|
||||||
|
{
|
||||||
|
Child = new Container
|
||||||
|
{
|
||||||
|
Anchor = Anchor.Centre,
|
||||||
|
Origin = Anchor.Centre,
|
||||||
|
RelativeSizeAxes = Axes.X,
|
||||||
|
Padding = new MarginPadding { Left = 150, Right = 150 },
|
||||||
|
Child = new LabelledTextBox
|
||||||
|
{
|
||||||
|
Anchor = Anchor.Centre,
|
||||||
|
Origin = Anchor.Centre,
|
||||||
|
LabelText = "Testing text",
|
||||||
|
PlaceholderText = "This is definitely working as intended",
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,8 +1,14 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<Import Project="..\osu.TestProject.props" />
|
<Import Project="..\osu.TestProject.props" />
|
||||||
|
<ItemGroup Label="Package References">
|
||||||
|
<PackageReference Include="Appveyor.TestLogger" Version="2.0.0" />
|
||||||
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.7.2" />
|
||||||
|
<PackageReference Include="NUnit" Version="3.10.1" />
|
||||||
|
<PackageReference Include="NUnit3TestAdapter" Version="3.10.0" />
|
||||||
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Project">
|
<PropertyGroup Label="Project">
|
||||||
<OutputType>WinExe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
<TargetFrameworks>netcoreapp2.1;net471</TargetFrameworks>
|
<TargetFramework>netcoreapp2.1</TargetFramework>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup Label="Project References">
|
<ItemGroup Label="Project References">
|
||||||
<ProjectReference Include="..\osu.Game.Rulesets.Osu\osu.Game.Rulesets.Osu.csproj" />
|
<ProjectReference Include="..\osu.Game.Rulesets.Osu\osu.Game.Rulesets.Osu.csproj" />
|
||||||
|
@ -23,7 +23,7 @@ namespace osu.Game.Beatmaps.Drawables
|
|||||||
if (value == status) return;
|
if (value == status) return;
|
||||||
status = value;
|
status = value;
|
||||||
|
|
||||||
statusText.Text = Enum.GetName(typeof(BeatmapSetOnlineStatus), Status)?.ToUpper();
|
statusText.Text = Enum.GetName(typeof(BeatmapSetOnlineStatus), Status)?.ToUpperInvariant();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -312,7 +312,7 @@ namespace osu.Game.Beatmaps.Formats
|
|||||||
omitFirstBarSignature = effectFlags.HasFlag(EffectFlags.OmitFirstBarLine);
|
omitFirstBarSignature = effectFlags.HasFlag(EffectFlags.OmitFirstBarLine);
|
||||||
}
|
}
|
||||||
|
|
||||||
string stringSampleSet = sampleSet.ToString().ToLower();
|
string stringSampleSet = sampleSet.ToString().ToLowerInvariant();
|
||||||
if (stringSampleSet == @"none")
|
if (stringSampleSet == @"none")
|
||||||
stringSampleSet = @"normal";
|
stringSampleSet = @"normal";
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ using System;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using Microsoft.EntityFrameworkCore.Storage;
|
using Microsoft.EntityFrameworkCore.Storage;
|
||||||
|
using osu.Framework.Extensions.IEnumerableExtensions;
|
||||||
using osu.Framework.Platform;
|
using osu.Framework.Platform;
|
||||||
|
|
||||||
namespace osu.Game.Database
|
namespace osu.Game.Database
|
||||||
@ -115,7 +116,11 @@ namespace osu.Game.Database
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void recycleThreadContexts() => threadContexts = new ThreadLocal<OsuDbContext>(CreateContext);
|
private void recycleThreadContexts()
|
||||||
|
{
|
||||||
|
threadContexts?.Values.ForEach(c => c.Dispose());
|
||||||
|
threadContexts = new ThreadLocal<OsuDbContext>(CreateContext, true);
|
||||||
|
}
|
||||||
|
|
||||||
protected virtual OsuDbContext CreateContext() => new OsuDbContext(storage.GetDatabaseConnectionString(database_name))
|
protected virtual OsuDbContext CreateContext() => new OsuDbContext(storage.GetDatabaseConnectionString(database_name))
|
||||||
{
|
{
|
||||||
@ -127,8 +132,6 @@ namespace osu.Game.Database
|
|||||||
lock (writeLock)
|
lock (writeLock)
|
||||||
{
|
{
|
||||||
recycleThreadContexts();
|
recycleThreadContexts();
|
||||||
GC.Collect();
|
|
||||||
GC.WaitForPendingFinalizers();
|
|
||||||
storage.DeleteDatabase(database_name);
|
storage.DeleteDatabase(database_name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -134,7 +134,7 @@ namespace osu.Game.Graphics
|
|||||||
private string getFileName()
|
private string getFileName()
|
||||||
{
|
{
|
||||||
var dt = DateTime.Now;
|
var dt = DateTime.Now;
|
||||||
var fileExt = screenshotFormat.ToString().ToLower();
|
var fileExt = screenshotFormat.ToString().ToLowerInvariant();
|
||||||
|
|
||||||
var withoutIndex = $"osu_{dt:yyyy-MM-dd_HH-mm-ss}.{fileExt}";
|
var withoutIndex = $"osu_{dt:yyyy-MM-dd_HH-mm-ss}.{fileExt}";
|
||||||
if (!storage.Exists(withoutIndex))
|
if (!storage.Exists(withoutIndex))
|
||||||
|
@ -20,7 +20,7 @@ namespace osu.Game.Online.API.Requests
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ReSharper disable once ImpureMethodCallOnReadonlyValueField
|
// ReSharper disable once ImpureMethodCallOnReadonlyValueField
|
||||||
protected override string Target => $@"users/{userId}/scores/{type.ToString().ToLower()}?offset={offset}";
|
protected override string Target => $@"users/{userId}/scores/{type.ToString().ToLowerInvariant()}?offset={offset}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum ScoreType
|
public enum ScoreType
|
||||||
|
@ -23,7 +23,7 @@ namespace osu.Game.Online.API.Requests
|
|||||||
req.Method = HttpMethod.POST;
|
req.Method = HttpMethod.POST;
|
||||||
req.AddParameter(@"target_type", message.TargetType.GetDescription());
|
req.AddParameter(@"target_type", message.TargetType.GetDescription());
|
||||||
req.AddParameter(@"target_id", message.TargetId.ToString());
|
req.AddParameter(@"target_id", message.TargetId.ToString());
|
||||||
req.AddParameter(@"is_action", message.IsAction.ToString().ToLower());
|
req.AddParameter(@"is_action", message.IsAction.ToString().ToLowerInvariant());
|
||||||
req.AddParameter(@"message", message.Content);
|
req.AddParameter(@"message", message.Content);
|
||||||
|
|
||||||
return req;
|
return req;
|
||||||
|
@ -29,7 +29,7 @@ namespace osu.Game.Online.API.Requests
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ReSharper disable once ImpureMethodCallOnReadonlyValueField
|
// ReSharper disable once ImpureMethodCallOnReadonlyValueField
|
||||||
protected override string Target => $@"beatmapsets/search?q={query}&m={ruleset.ID ?? 0}&s={(int)searchCategory}&sort={sortCriteria.ToString().ToLower()}_{directionString}";
|
protected override string Target => $@"beatmapsets/search?q={query}&m={ruleset.ID ?? 0}&s={(int)searchCategory}&sort={sortCriteria.ToString().ToLowerInvariant()}_{directionString}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum BeatmapSearchCategory
|
public enum BeatmapSearchCategory
|
||||||
|
@ -580,10 +580,10 @@ namespace osu.Game
|
|||||||
|
|
||||||
// we only want to apply these restrictions when we are inside a screen stack.
|
// we only want to apply these restrictions when we are inside a screen stack.
|
||||||
// the use case for not applying is in visual/unit tests.
|
// the use case for not applying is in visual/unit tests.
|
||||||
bool applyRestrictions = !currentScreen?.AllowBeatmapRulesetChange ?? false;
|
bool applyBeatmapRulesetRestrictions = !currentScreen?.AllowBeatmapRulesetChange ?? false;
|
||||||
|
|
||||||
ruleset.Disabled = applyRestrictions;
|
ruleset.Disabled = applyBeatmapRulesetRestrictions;
|
||||||
Beatmap.Disabled = applyRestrictions;
|
Beatmap.Disabled = applyBeatmapRulesetRestrictions;
|
||||||
|
|
||||||
mainContent.Padding = new MarginPadding { Top = ToolbarOffset };
|
mainContent.Padding = new MarginPadding { Top = ToolbarOffset };
|
||||||
|
|
||||||
|
@ -224,7 +224,7 @@ namespace osu.Game
|
|||||||
// todo: we probably want a better (non-destructive) migrations/recovery process at a later point than this.
|
// todo: we probably want a better (non-destructive) migrations/recovery process at a later point than this.
|
||||||
contextFactory.ResetDatabase();
|
contextFactory.ResetDatabase();
|
||||||
|
|
||||||
Logger.Log("Database purged successfully.", LoggingTarget.Database, LogLevel.Important);
|
Logger.Log("Database purged successfully.", LoggingTarget.Database);
|
||||||
|
|
||||||
// only run once more, then hard bail.
|
// only run once more, then hard bail.
|
||||||
using (var db = contextFactory.GetForWrite(false))
|
using (var db = contextFactory.GetForWrite(false))
|
||||||
|
@ -30,7 +30,7 @@ namespace osu.Game.Overlays.Chat
|
|||||||
public string Header
|
public string Header
|
||||||
{
|
{
|
||||||
get { return header.Text; }
|
get { return header.Text; }
|
||||||
set { header.Text = value.ToUpper(); }
|
set { header.Text = value.ToUpperInvariant(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<Channel> Channels
|
public IEnumerable<Channel> Channels
|
||||||
|
@ -62,7 +62,7 @@ namespace osu.Game.Overlays.MedalSplash
|
|||||||
{
|
{
|
||||||
Anchor = Anchor.TopCentre,
|
Anchor = Anchor.TopCentre,
|
||||||
Origin = Anchor.TopCentre,
|
Origin = Anchor.TopCentre,
|
||||||
Text = "Medal Unlocked".ToUpper(),
|
Text = "Medal Unlocked".ToUpperInvariant(),
|
||||||
TextSize = 24,
|
TextSize = 24,
|
||||||
Font = @"Exo2.0-Light",
|
Font = @"Exo2.0-Light",
|
||||||
Alpha = 0f,
|
Alpha = 0f,
|
||||||
|
@ -183,7 +183,7 @@ namespace osu.Game.Overlays
|
|||||||
Anchor = Anchor.BottomCentre,
|
Anchor = Anchor.BottomCentre,
|
||||||
Height = progress_height,
|
Height = progress_height,
|
||||||
FillColour = colours.Yellow,
|
FillColour = colours.Yellow,
|
||||||
OnSeek = progress => current?.Track.Seek(progress)
|
OnSeek = attemptSeek
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -198,6 +198,12 @@ namespace osu.Game.Overlays
|
|||||||
playlist.StateChanged += s => playlistButton.FadeColour(s == Visibility.Visible ? colours.Yellow : Color4.White, 200, Easing.OutQuint);
|
playlist.StateChanged += s => playlistButton.FadeColour(s == Visibility.Visible ? colours.Yellow : Color4.White, 200, Easing.OutQuint);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void attemptSeek(double progress)
|
||||||
|
{
|
||||||
|
if (!beatmap.Disabled)
|
||||||
|
current?.Track.Seek(progress);
|
||||||
|
}
|
||||||
|
|
||||||
private void playlistOrderChanged(BeatmapSetInfo beatmapSetInfo, int index)
|
private void playlistOrderChanged(BeatmapSetInfo beatmapSetInfo, int index)
|
||||||
{
|
{
|
||||||
beatmapSets.Remove(beatmapSetInfo);
|
beatmapSets.Remove(beatmapSetInfo);
|
||||||
@ -219,6 +225,7 @@ namespace osu.Game.Overlays
|
|||||||
if (disabled)
|
if (disabled)
|
||||||
playlist.Hide();
|
playlist.Hide();
|
||||||
|
|
||||||
|
playButton.Enabled.Value = !disabled;
|
||||||
prevButton.Enabled.Value = !disabled;
|
prevButton.Enabled.Value = !disabled;
|
||||||
nextButton.Enabled.Value = !disabled;
|
nextButton.Enabled.Value = !disabled;
|
||||||
playlistButton.Enabled.Value = !disabled;
|
playlistButton.Enabled.Value = !disabled;
|
||||||
|
@ -55,7 +55,7 @@ namespace osu.Game.Overlays.Notifications
|
|||||||
set
|
set
|
||||||
{
|
{
|
||||||
title = value;
|
title = value;
|
||||||
if (titleText != null) titleText.Text = title.ToUpper();
|
if (titleText != null) titleText.Text = title.ToUpperInvariant();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -101,7 +101,7 @@ namespace osu.Game.Overlays.Notifications
|
|||||||
{
|
{
|
||||||
titleText = new OsuSpriteText
|
titleText = new OsuSpriteText
|
||||||
{
|
{
|
||||||
Text = title.ToUpper(),
|
Text = title.ToUpperInvariant(),
|
||||||
Font = @"Exo2.0-Black",
|
Font = @"Exo2.0-Black",
|
||||||
},
|
},
|
||||||
countText = new OsuSpriteText
|
countText = new OsuSpriteText
|
||||||
@ -154,7 +154,7 @@ namespace osu.Game.Overlays.Notifications
|
|||||||
public string Text
|
public string Text
|
||||||
{
|
{
|
||||||
get { return text.Text; }
|
get { return text.Text; }
|
||||||
set { text.Text = value.ToUpper(); }
|
set { text.Text = value.ToUpperInvariant(); }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -176,9 +176,9 @@ namespace osu.Game.Overlays
|
|||||||
{
|
{
|
||||||
Schedule(() =>
|
Schedule(() =>
|
||||||
{
|
{
|
||||||
textLine1.Text = description.Name.ToUpper();
|
textLine1.Text = description.Name.ToUpperInvariant();
|
||||||
textLine2.Text = description.Value;
|
textLine2.Text = description.Value;
|
||||||
textLine3.Text = description.Shortcut.ToUpper();
|
textLine3.Text = description.Shortcut.ToUpperInvariant();
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(textLine3.Text))
|
if (string.IsNullOrEmpty(textLine3.Text))
|
||||||
textLine3.Text = "NO KEY BOUND";
|
textLine3.Text = "NO KEY BOUND";
|
||||||
|
@ -51,7 +51,7 @@ namespace osu.Game.Overlays.Settings
|
|||||||
{
|
{
|
||||||
new OsuSpriteText
|
new OsuSpriteText
|
||||||
{
|
{
|
||||||
Text = Header.ToUpper(),
|
Text = Header.ToUpperInvariant(),
|
||||||
Margin = new MarginPadding { Bottom = 10, Left = SettingsOverlay.CONTENT_MARGINS, Right = SettingsOverlay.CONTENT_MARGINS },
|
Margin = new MarginPadding { Bottom = 10, Left = SettingsOverlay.CONTENT_MARGINS, Right = SettingsOverlay.CONTENT_MARGINS },
|
||||||
Font = @"Exo2.0-Black",
|
Font = @"Exo2.0-Black",
|
||||||
},
|
},
|
||||||
|
@ -51,7 +51,7 @@ namespace osu.Game.Rulesets.Judgements
|
|||||||
|
|
||||||
Child = new SkinnableDrawable($"Play/{Judgement.Result}", _ => JudgementText = new OsuSpriteText
|
Child = new SkinnableDrawable($"Play/{Judgement.Result}", _ => JudgementText = new OsuSpriteText
|
||||||
{
|
{
|
||||||
Text = Judgement.Result.GetDescription().ToUpper(),
|
Text = Judgement.Result.GetDescription().ToUpperInvariant(),
|
||||||
Font = @"Venera",
|
Font = @"Venera",
|
||||||
Colour = judgementColour(Judgement.Result),
|
Colour = judgementColour(Judgement.Result),
|
||||||
Scale = new Vector2(0.85f, 1),
|
Scale = new Vector2(0.85f, 1),
|
||||||
|
@ -197,10 +197,10 @@ namespace osu.Game.Rulesets.Objects.Legacy
|
|||||||
var bank = (LegacyBeatmapDecoder.LegacySampleBank)int.Parse(split[0]);
|
var bank = (LegacyBeatmapDecoder.LegacySampleBank)int.Parse(split[0]);
|
||||||
var addbank = (LegacyBeatmapDecoder.LegacySampleBank)int.Parse(split[1]);
|
var addbank = (LegacyBeatmapDecoder.LegacySampleBank)int.Parse(split[1]);
|
||||||
|
|
||||||
string stringBank = bank.ToString().ToLower();
|
string stringBank = bank.ToString().ToLowerInvariant();
|
||||||
if (stringBank == @"none")
|
if (stringBank == @"none")
|
||||||
stringBank = null;
|
stringBank = null;
|
||||||
string stringAddBank = addbank.ToString().ToLower();
|
string stringAddBank = addbank.ToString().ToLowerInvariant();
|
||||||
if (stringAddBank == @"none")
|
if (stringAddBank == @"none")
|
||||||
stringAddBank = null;
|
stringAddBank = null;
|
||||||
|
|
||||||
|
@ -0,0 +1,137 @@
|
|||||||
|
// Copyright (c) 2007-2018 ppy Pty Ltd <contact@ppy.sh>.
|
||||||
|
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
||||||
|
|
||||||
|
using osu.Framework.Allocation;
|
||||||
|
using OpenTK.Graphics;
|
||||||
|
using osu.Framework.Graphics;
|
||||||
|
using osu.Framework.Graphics.Containers;
|
||||||
|
using osu.Framework.Graphics.Shapes;
|
||||||
|
using osu.Framework.Graphics.UserInterface;
|
||||||
|
using osu.Game.Graphics;
|
||||||
|
using osu.Game.Graphics.Sprites;
|
||||||
|
using osu.Game.Graphics.UserInterface;
|
||||||
|
|
||||||
|
namespace osu.Game.Screens.Edit.Screens.Setup.Components.LabelledComponents
|
||||||
|
{
|
||||||
|
public class LabelledTextBox : CompositeDrawable
|
||||||
|
{
|
||||||
|
private const float label_container_width = 150;
|
||||||
|
private const float corner_radius = 15;
|
||||||
|
private const float default_height = 40;
|
||||||
|
private const float default_label_left_padding = 15;
|
||||||
|
private const float default_label_top_padding = 12;
|
||||||
|
private const float default_label_text_size = 16;
|
||||||
|
|
||||||
|
public event TextBox.OnCommitHandler OnCommit;
|
||||||
|
|
||||||
|
public bool ReadOnly
|
||||||
|
{
|
||||||
|
get => textBox.ReadOnly;
|
||||||
|
set => textBox.ReadOnly = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string LabelText
|
||||||
|
{
|
||||||
|
get => label.Text;
|
||||||
|
set => label.Text = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float LabelTextSize
|
||||||
|
{
|
||||||
|
get => label.TextSize;
|
||||||
|
set => label.TextSize = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string PlaceholderText
|
||||||
|
{
|
||||||
|
get => textBox.PlaceholderText;
|
||||||
|
set => textBox.PlaceholderText = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Text
|
||||||
|
{
|
||||||
|
get => textBox.Text;
|
||||||
|
set => textBox.Text = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Color4 LabelTextColour
|
||||||
|
{
|
||||||
|
get => label.Colour;
|
||||||
|
set => label.Colour = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Color4 BackgroundColour
|
||||||
|
{
|
||||||
|
get => content.Colour;
|
||||||
|
set => content.Colour = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
private readonly OsuTextBox textBox;
|
||||||
|
private readonly Container content;
|
||||||
|
private readonly OsuSpriteText label;
|
||||||
|
|
||||||
|
public LabelledTextBox()
|
||||||
|
{
|
||||||
|
RelativeSizeAxes = Axes.X;
|
||||||
|
Height = default_height;
|
||||||
|
CornerRadius = corner_radius;
|
||||||
|
Masking = true;
|
||||||
|
|
||||||
|
InternalChild = new Container
|
||||||
|
{
|
||||||
|
RelativeSizeAxes = Axes.Both,
|
||||||
|
CornerRadius = corner_radius,
|
||||||
|
Masking = true,
|
||||||
|
Children = new Drawable[]
|
||||||
|
{
|
||||||
|
new Box
|
||||||
|
{
|
||||||
|
RelativeSizeAxes = Axes.Both,
|
||||||
|
Colour = OsuColour.FromHex("1c2125"),
|
||||||
|
},
|
||||||
|
new GridContainer
|
||||||
|
{
|
||||||
|
RelativeSizeAxes = Axes.X,
|
||||||
|
Height = default_height,
|
||||||
|
Content = new[]
|
||||||
|
{
|
||||||
|
new Drawable[]
|
||||||
|
{
|
||||||
|
label = new OsuSpriteText
|
||||||
|
{
|
||||||
|
Anchor = Anchor.TopLeft,
|
||||||
|
Origin = Anchor.TopLeft,
|
||||||
|
Padding = new MarginPadding { Left = default_label_left_padding, Top = default_label_top_padding },
|
||||||
|
Colour = Color4.White,
|
||||||
|
TextSize = default_label_text_size,
|
||||||
|
Font = @"Exo2.0-Bold",
|
||||||
|
},
|
||||||
|
textBox = new OsuTextBox
|
||||||
|
{
|
||||||
|
Anchor = Anchor.TopLeft,
|
||||||
|
Origin = Anchor.TopLeft,
|
||||||
|
RelativeSizeAxes = Axes.Both,
|
||||||
|
Height = 1,
|
||||||
|
CornerRadius = corner_radius,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
ColumnDimensions = new[]
|
||||||
|
{
|
||||||
|
new Dimension(GridSizeMode.Absolute, label_container_width),
|
||||||
|
new Dimension()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
textBox.OnCommit += OnCommit;
|
||||||
|
}
|
||||||
|
|
||||||
|
[BackgroundDependencyLoader]
|
||||||
|
private void load(OsuColour colours)
|
||||||
|
{
|
||||||
|
textBox.BorderColour = colours.Blue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -86,7 +86,7 @@ namespace osu.Game.Screens.Multi
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
breadcrumbs.Current.ValueChanged += s => screenType.Text = ((MultiplayerScreen)s).Type.ToLower();
|
breadcrumbs.Current.ValueChanged += s => screenType.Text = ((MultiplayerScreen)s).Type.ToLowerInvariant();
|
||||||
breadcrumbs.Current.TriggerChange();
|
breadcrumbs.Current.TriggerChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ namespace osu.Game.Screens.Play.Break
|
|||||||
{
|
{
|
||||||
Anchor = Anchor.TopCentre,
|
Anchor = Anchor.TopCentre,
|
||||||
Origin = Anchor.TopCentre,
|
Origin = Anchor.TopCentre,
|
||||||
Text = "current progress".ToUpper(),
|
Text = "current progress".ToUpperInvariant(),
|
||||||
TextSize = 15,
|
TextSize = 15,
|
||||||
Font = "Exo2.0-Black",
|
Font = "Exo2.0-Black",
|
||||||
},
|
},
|
||||||
|
@ -139,7 +139,7 @@ namespace osu.Game.Screens.Play
|
|||||||
adjustableClock = new DecoupleableInterpolatingFramedClock { IsCoupled = false };
|
adjustableClock = new DecoupleableInterpolatingFramedClock { IsCoupled = false };
|
||||||
|
|
||||||
adjustableClock.Seek(AllowLeadIn
|
adjustableClock.Seek(AllowLeadIn
|
||||||
? Math.Min(RulesetContainer.GameplayStartTime, beatmap.HitObjects.First().StartTime - beatmap.BeatmapInfo.AudioLeadIn)
|
? Math.Min(0, RulesetContainer.GameplayStartTime - beatmap.BeatmapInfo.AudioLeadIn)
|
||||||
: RulesetContainer.GameplayStartTime);
|
: RulesetContainer.GameplayStartTime);
|
||||||
|
|
||||||
adjustableClock.ProcessFrame();
|
adjustableClock.ProcessFrame();
|
||||||
@ -278,6 +278,8 @@ namespace osu.Game.Screens.Play
|
|||||||
ScoreProcessor.PopulateScore(score);
|
ScoreProcessor.PopulateScore(score);
|
||||||
score.User = RulesetContainer.Replay?.User ?? api.LocalUser.Value;
|
score.User = RulesetContainer.Replay?.User ?? api.LocalUser.Value;
|
||||||
Push(new Results(score));
|
Push(new Results(score));
|
||||||
|
|
||||||
|
onCompletionEvent = null;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -340,6 +342,13 @@ namespace osu.Game.Screens.Play
|
|||||||
|
|
||||||
protected override bool OnExiting(Screen next)
|
protected override bool OnExiting(Screen next)
|
||||||
{
|
{
|
||||||
|
if (onCompletionEvent != null)
|
||||||
|
{
|
||||||
|
// Proceed to result screen if beatmap already finished playing
|
||||||
|
onCompletionEvent.RunTask();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if ((!AllowPause || HasFailed || !ValidForResume || pauseContainer?.IsPaused != false || RulesetContainer?.HasReplayLoaded != false) && (!pauseContainer?.IsResuming ?? true))
|
if ((!AllowPause || HasFailed || !ValidForResume || pauseContainer?.IsPaused != false || RulesetContainer?.HasReplayLoaded != false) && (!pauseContainer?.IsResuming ?? true))
|
||||||
{
|
{
|
||||||
// In the case of replays, we may have changed the playback rate.
|
// In the case of replays, we may have changed the playback rate.
|
||||||
|
@ -94,7 +94,7 @@ namespace osu.Game.Screens.Play.PlayerSettings
|
|||||||
{
|
{
|
||||||
Origin = Anchor.CentreLeft,
|
Origin = Anchor.CentreLeft,
|
||||||
Anchor = Anchor.CentreLeft,
|
Anchor = Anchor.CentreLeft,
|
||||||
Text = Title.ToUpper(),
|
Text = Title.ToUpperInvariant(),
|
||||||
TextSize = 17,
|
TextSize = 17,
|
||||||
Font = @"Exo2.0-Bold",
|
Font = @"Exo2.0-Bold",
|
||||||
Margin = new MarginPadding { Left = 10 },
|
Margin = new MarginPadding { Left = 10 },
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
using System;
|
using System;
|
||||||
using osu.Framework;
|
using osu.Framework;
|
||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
|
using osu.Framework.Audio;
|
||||||
|
using osu.Framework.Audio.Sample;
|
||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
using osu.Framework.Graphics.Containers;
|
using osu.Framework.Graphics.Containers;
|
||||||
using osu.Framework.Threading;
|
using osu.Framework.Threading;
|
||||||
@ -214,17 +216,21 @@ namespace osu.Game.Screens.Play
|
|||||||
private Box background;
|
private Box background;
|
||||||
private AspectContainer aspect;
|
private AspectContainer aspect;
|
||||||
|
|
||||||
|
private SampleChannel sampleConfirm;
|
||||||
|
|
||||||
public Button()
|
public Button()
|
||||||
{
|
{
|
||||||
RelativeSizeAxes = Axes.Both;
|
RelativeSizeAxes = Axes.Both;
|
||||||
}
|
}
|
||||||
|
|
||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load(OsuColour colours)
|
private void load(OsuColour colours, AudioManager audio)
|
||||||
{
|
{
|
||||||
colourNormal = colours.Yellow;
|
colourNormal = colours.Yellow;
|
||||||
colourHover = colours.YellowDark;
|
colourHover = colours.YellowDark;
|
||||||
|
|
||||||
|
sampleConfirm = audio.Sample.Get(@"SongSelect/confirm-selection");
|
||||||
|
|
||||||
Children = new Drawable[]
|
Children = new Drawable[]
|
||||||
{
|
{
|
||||||
background = new Box
|
background = new Box
|
||||||
@ -311,6 +317,8 @@ namespace osu.Game.Screens.Play
|
|||||||
if (!Enabled)
|
if (!Enabled)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
sampleConfirm.Play();
|
||||||
|
|
||||||
box.FlashColour(Color4.White, 500, Easing.OutQuint);
|
box.FlashColour(Color4.White, 500, Easing.OutQuint);
|
||||||
aspect.ScaleTo(1.2f, 2000, Easing.OutQuint);
|
aspect.ScaleTo(1.2f, 2000, Easing.OutQuint);
|
||||||
|
|
||||||
|
@ -79,8 +79,13 @@ namespace osu.Game.Screens.Select.Carousel
|
|||||||
public override void Filter(FilterCriteria criteria)
|
public override void Filter(FilterCriteria criteria)
|
||||||
{
|
{
|
||||||
base.Filter(criteria);
|
base.Filter(criteria);
|
||||||
InternalChildren.Sort((x, y) => x.CompareTo(criteria, y));
|
|
||||||
InternalChildren.ForEach(c => c.Filter(criteria));
|
var children = new List<CarouselItem>(InternalChildren);
|
||||||
|
|
||||||
|
children.Sort((x, y) => x.CompareTo(criteria, y));
|
||||||
|
children.ForEach(c => c.Filter(criteria));
|
||||||
|
|
||||||
|
InternalChildren = children;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual void ChildItemStateChanged(CarouselItem item, CarouselItemState value)
|
protected virtual void ChildItemStateChanged(CarouselItem item, CarouselItemState value)
|
||||||
|
@ -323,7 +323,7 @@ namespace osu.Game.Screens.Tournament
|
|||||||
if (string.IsNullOrEmpty(line))
|
if (string.IsNullOrEmpty(line))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (line.ToUpper().StartsWith("GROUP"))
|
if (line.ToUpperInvariant().StartsWith("GROUP"))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// ReSharper disable once AccessToModifiedClosure
|
// ReSharper disable once AccessToModifiedClosure
|
||||||
|
@ -51,7 +51,7 @@ namespace osu.Game.Screens.Tournament
|
|||||||
|
|
||||||
Position = new Vector2(0, 7f),
|
Position = new Vector2(0, 7f),
|
||||||
|
|
||||||
Text = $"GROUP {name.ToUpper()}",
|
Text = $"GROUP {name.ToUpperInvariant()}",
|
||||||
TextSize = 8f,
|
TextSize = 8f,
|
||||||
Font = @"Exo2.0-Bold",
|
Font = @"Exo2.0-Bold",
|
||||||
Colour = new Color4(255, 204, 34, 255),
|
Colour = new Color4(255, 204, 34, 255),
|
||||||
@ -161,7 +161,7 @@ namespace osu.Game.Screens.Tournament
|
|||||||
Anchor = Anchor.TopCentre,
|
Anchor = Anchor.TopCentre,
|
||||||
Origin = Anchor.TopCentre,
|
Origin = Anchor.TopCentre,
|
||||||
|
|
||||||
Text = team.Acronym.ToUpper(),
|
Text = team.Acronym.ToUpperInvariant(),
|
||||||
TextSize = 10f,
|
TextSize = 10f,
|
||||||
Font = @"Exo2.0-Bold"
|
Font = @"Exo2.0-Bold"
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.1.1" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.1.1" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="2.1.1" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="2.1.1" />
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
|
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
|
||||||
<PackageReference Include="ppy.osu.Framework" Version="2018.721.0" />
|
<PackageReference Include="ppy.osu.Framework" Version="2018.730.0" />
|
||||||
<PackageReference Include="SharpCompress" Version="0.17.1" />
|
<PackageReference Include="SharpCompress" Version="0.17.1" />
|
||||||
<PackageReference Include="NUnit" Version="3.10.1" />
|
<PackageReference Include="NUnit" Version="3.10.1" />
|
||||||
<PackageReference Include="System.ComponentModel.Annotations" Version="4.5.0" />
|
<PackageReference Include="System.ComponentModel.Annotations" Version="4.5.0" />
|
||||||
|
@ -13,9 +13,6 @@
|
|||||||
<ItemGroup Label="Package References">
|
<ItemGroup Label="Package References">
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.1.1" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.1.1" />
|
||||||
<PackageReference Include="DeepEqual" Version="1.6.0" />
|
<PackageReference Include="DeepEqual" Version="1.6.0" />
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.7.2" />
|
|
||||||
<PackageReference Include="NUnit" Version="3.10.1" />
|
|
||||||
<PackageReference Include="NUnit3TestAdapter" Version="3.10.0" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="..\osu.Game\Tests\VisualTestRunner.cs">
|
<Compile Include="..\osu.Game\Tests\VisualTestRunner.cs">
|
||||||
|
Loading…
Reference in New Issue
Block a user