mirror of
https://github.com/ppy/osu.git
synced 2024-12-15 10:42:54 +08:00
Merge remote-tracking branch 'upstream/master' into options-implementation
This commit is contained in:
commit
19f6d58723
@ -5,7 +5,6 @@ using System.Collections.Generic;
|
||||
using osu.Framework.Testing;
|
||||
using osu.Game.Screens.Tournament;
|
||||
using osu.Game.Screens.Tournament.Teams;
|
||||
using osu.Game.Users;
|
||||
|
||||
namespace osu.Desktop.VisualTests.Tests
|
||||
{
|
||||
@ -25,57 +24,57 @@ namespace osu.Desktop.VisualTests.Tests
|
||||
|
||||
private class TestTeamList : ITeamList
|
||||
{
|
||||
public IEnumerable<Country> Teams { get; } = new[]
|
||||
public IEnumerable<DrawingsTeam> Teams { get; } = new[]
|
||||
{
|
||||
new Country
|
||||
new DrawingsTeam
|
||||
{
|
||||
FlagName = "GB",
|
||||
FullName = "United Kingdom",
|
||||
Acronym = "UK"
|
||||
},
|
||||
new Country
|
||||
new DrawingsTeam
|
||||
{
|
||||
FlagName = "FR",
|
||||
FullName = "France",
|
||||
Acronym = "FRA"
|
||||
},
|
||||
new Country
|
||||
new DrawingsTeam
|
||||
{
|
||||
FlagName = "CN",
|
||||
FullName = "China",
|
||||
Acronym = "CHN"
|
||||
},
|
||||
new Country
|
||||
new DrawingsTeam
|
||||
{
|
||||
FlagName = "AU",
|
||||
FullName = "Australia",
|
||||
Acronym = "AUS"
|
||||
},
|
||||
new Country
|
||||
new DrawingsTeam
|
||||
{
|
||||
FlagName = "JP",
|
||||
FullName = "Japan",
|
||||
Acronym = "JPN"
|
||||
},
|
||||
new Country
|
||||
new DrawingsTeam
|
||||
{
|
||||
FlagName = "RO",
|
||||
FullName = "Romania",
|
||||
Acronym = "ROM"
|
||||
},
|
||||
new Country
|
||||
new DrawingsTeam
|
||||
{
|
||||
FlagName = "IT",
|
||||
FullName = "Italy",
|
||||
Acronym = "PIZZA"
|
||||
},
|
||||
new Country
|
||||
new DrawingsTeam
|
||||
{
|
||||
FlagName = "VE",
|
||||
FullName = "Venezuela",
|
||||
Acronym = "VNZ"
|
||||
},
|
||||
new Country
|
||||
new DrawingsTeam
|
||||
{
|
||||
FlagName = "US",
|
||||
FullName = "United States of America",
|
||||
|
@ -72,7 +72,7 @@ namespace osu.Game.Rulesets.Taiko.Mods
|
||||
protected override Score CreateReplayScore(Beatmap<TaikoHitObject> beatmap) => new Score
|
||||
{
|
||||
User = new User { Username = "mekkadosu!" },
|
||||
Replay = new TaikoAutoReplay(beatmap).Generate(),
|
||||
Replay = new TaikoAutoGenerator(beatmap).Generate(),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -7,16 +7,24 @@ using osu.Game.Beatmaps;
|
||||
using osu.Game.Rulesets.Objects.Types;
|
||||
using osu.Game.Rulesets.Taiko.Objects;
|
||||
using osu.Game.Rulesets.Replays;
|
||||
using osu.Game.Users;
|
||||
|
||||
namespace osu.Game.Rulesets.Taiko.Replays
|
||||
{
|
||||
public class TaikoAutoReplay : AutoGenerator<TaikoHitObject>
|
||||
public class TaikoAutoGenerator : AutoGenerator<TaikoHitObject>
|
||||
{
|
||||
private const double swell_hit_speed = 50;
|
||||
|
||||
public TaikoAutoReplay(Beatmap<TaikoHitObject> beatmap)
|
||||
public TaikoAutoGenerator(Beatmap<TaikoHitObject> beatmap)
|
||||
: base(beatmap)
|
||||
{
|
||||
Replay = new Replay
|
||||
{
|
||||
User = new User
|
||||
{
|
||||
Username = @"Autoplay",
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
protected Replay Replay;
|
@ -79,7 +79,7 @@
|
||||
<Compile Include="Objects\RimHit.cs" />
|
||||
<Compile Include="Objects\Swell.cs" />
|
||||
<Compile Include="Replays\TaikoFramedReplayInputHandler.cs" />
|
||||
<Compile Include="Replays\TaikoAutoReplay.cs" />
|
||||
<Compile Include="Replays\TaikoAutoGenerator.cs" />
|
||||
<Compile Include="Objects\TaikoHitObject.cs" />
|
||||
<Compile Include="Objects\TaikoHitObjectDifficulty.cs" />
|
||||
<Compile Include="TaikoDifficultyCalculator.cs" />
|
||||
|
@ -1,6 +1,7 @@
|
||||
// Copyright (c) 2007-2017 ppy Pty Ltd <contact@ppy.sh>.
|
||||
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
||||
|
||||
using System.Linq;
|
||||
using SQLite.Net.Attributes;
|
||||
|
||||
namespace osu.Game.Database
|
||||
@ -31,6 +32,6 @@ namespace osu.Game.Database
|
||||
TitleUnicode,
|
||||
Source,
|
||||
Tags
|
||||
};
|
||||
}.Where(s => !string.IsNullOrEmpty(s)).ToArray();
|
||||
}
|
||||
}
|
@ -73,7 +73,14 @@ namespace osu.Game.Overlays.Music
|
||||
private class ItemSearchContainer : FillFlowContainer<PlaylistItem>, IHasFilterableChildren
|
||||
{
|
||||
public string[] FilterTerms => new string[] { };
|
||||
public bool MatchingCurrentFilter { set { } }
|
||||
public bool MatchingCurrentFilter
|
||||
{
|
||||
set
|
||||
{
|
||||
if (value)
|
||||
InvalidateLayout();
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerable<IFilterable> FilterableChildren => Children;
|
||||
|
||||
|
@ -35,7 +35,7 @@ namespace osu.Game.Overlays.Music
|
||||
|
||||
private readonly Bindable<WorkingBeatmap> beatmapBacking = new Bindable<WorkingBeatmap>();
|
||||
|
||||
protected IEnumerable<BeatmapSetInfo> BeatmapSets;
|
||||
public IEnumerable<BeatmapSetInfo> BeatmapSets;
|
||||
|
||||
[BackgroundDependencyLoader]
|
||||
private void load(OsuGameBase game, BeatmapDatabase beatmaps, OsuColour colours)
|
||||
|
@ -3,6 +3,7 @@
|
||||
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using OpenTK;
|
||||
using OpenTK.Graphics;
|
||||
@ -260,17 +261,36 @@ namespace osu.Game.Overlays
|
||||
}
|
||||
|
||||
private WorkingBeatmap current;
|
||||
private TransformDirection queuedDirection = TransformDirection.Next;
|
||||
private TransformDirection? queuedDirection;
|
||||
|
||||
private void beatmapChanged(WorkingBeatmap beatmap)
|
||||
{
|
||||
progressBar.IsEnabled = beatmap != null;
|
||||
|
||||
bool audioEquals = beatmapBacking.Value?.BeatmapInfo?.AudioEquals(current?.BeatmapInfo) ?? false;
|
||||
|
||||
TransformDirection direction;
|
||||
|
||||
if (audioEquals)
|
||||
direction = TransformDirection.None;
|
||||
else if (queuedDirection.HasValue)
|
||||
{
|
||||
direction = queuedDirection.Value;
|
||||
queuedDirection = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
//figure out the best direction based on order in playlist.
|
||||
var last = current == null ? -1 : playlist.BeatmapSets.TakeWhile(b => b.ID != current.BeatmapSetInfo.ID).Count();
|
||||
var next = beatmapBacking.Value == null ? -1 : playlist.BeatmapSets.TakeWhile(b => b.ID != beatmapBacking.Value.BeatmapSetInfo.ID).Count();
|
||||
|
||||
direction = last > next ? TransformDirection.Prev : TransformDirection.Next;
|
||||
}
|
||||
|
||||
current = beatmapBacking.Value;
|
||||
|
||||
updateDisplay(beatmapBacking, audioEquals ? TransformDirection.None : queuedDirection);
|
||||
queuedDirection = TransformDirection.Next;
|
||||
updateDisplay(beatmapBacking, direction);
|
||||
queuedDirection = null;
|
||||
}
|
||||
|
||||
private ScheduledDelegate pendingBeatmapSwitch;
|
||||
|
@ -21,7 +21,7 @@ using osu.Game.Screens.Tournament.Components;
|
||||
using osu.Game.Screens.Tournament.Teams;
|
||||
using OpenTK;
|
||||
using OpenTK.Graphics;
|
||||
using osu.Game.Users;
|
||||
using osu.Framework.IO.Stores;
|
||||
|
||||
namespace osu.Game.Screens.Tournament
|
||||
{
|
||||
@ -37,7 +37,7 @@ namespace osu.Game.Screens.Tournament
|
||||
private GroupContainer groupsContainer;
|
||||
private OsuSpriteText fullTeamNameText;
|
||||
|
||||
private readonly List<Country> allTeams = new List<Country>();
|
||||
private readonly List<DrawingsTeam> allTeams = new List<DrawingsTeam>();
|
||||
|
||||
private DrawingsConfigManager drawingsConfig;
|
||||
|
||||
@ -47,11 +47,21 @@ namespace osu.Game.Screens.Tournament
|
||||
|
||||
public ITeamList TeamList;
|
||||
|
||||
protected override DependencyContainer CreateLocalDependencies(DependencyContainer parent) => new DependencyContainer(parent);
|
||||
|
||||
[BackgroundDependencyLoader]
|
||||
private void load(TextureStore textures, Storage storage)
|
||||
private void load(TextureStore textures, Storage storage, DependencyContainer dependencies)
|
||||
{
|
||||
this.storage = storage;
|
||||
|
||||
TextureStore flagStore = new TextureStore();
|
||||
// Local flag store
|
||||
flagStore.AddStore(new RawTextureLoaderStore(new NamespacedResourceStore<byte[]>(new StorageBackedResourceStore(storage), "Drawings")));
|
||||
// Default texture store
|
||||
flagStore.AddStore(textures);
|
||||
|
||||
dependencies.Cache(flagStore);
|
||||
|
||||
if (TeamList == null)
|
||||
TeamList = new StorageBackedTeamList(storage);
|
||||
|
||||
@ -239,7 +249,7 @@ namespace osu.Game.Screens.Tournament
|
||||
reset(true);
|
||||
}
|
||||
|
||||
private void onTeamSelected(Country team)
|
||||
private void onTeamSelected(DrawingsTeam team)
|
||||
{
|
||||
groupsContainer.AddTeam(team);
|
||||
|
||||
@ -276,7 +286,7 @@ namespace osu.Game.Screens.Tournament
|
||||
teamsContainer.ClearTeams();
|
||||
allTeams.Clear();
|
||||
|
||||
foreach (Country t in TeamList.Teams)
|
||||
foreach (DrawingsTeam t in TeamList.Teams)
|
||||
{
|
||||
if (groupsContainer.ContainsTeam(t.FullName))
|
||||
continue;
|
||||
@ -312,7 +322,7 @@ namespace osu.Game.Screens.Tournament
|
||||
if (line.ToUpper().StartsWith("GROUP"))
|
||||
continue;
|
||||
|
||||
Country teamToAdd = allTeams.FirstOrDefault(t => t.FullName == line);
|
||||
DrawingsTeam teamToAdd = allTeams.FirstOrDefault(t => t.FullName == line);
|
||||
|
||||
if (teamToAdd == null)
|
||||
continue;
|
||||
|
@ -13,7 +13,7 @@ using osu.Framework.Graphics.Textures;
|
||||
using osu.Game.Graphics.Sprites;
|
||||
using OpenTK;
|
||||
using OpenTK.Graphics;
|
||||
using osu.Game.Users;
|
||||
using osu.Game.Screens.Tournament.Teams;
|
||||
|
||||
namespace osu.Game.Screens.Tournament
|
||||
{
|
||||
@ -73,7 +73,7 @@ namespace osu.Game.Screens.Tournament
|
||||
};
|
||||
}
|
||||
|
||||
public void AddTeam(Country team)
|
||||
public void AddTeam(DrawingsTeam team)
|
||||
{
|
||||
GroupTeam gt = new GroupTeam(team);
|
||||
|
||||
@ -91,7 +91,7 @@ namespace osu.Game.Screens.Tournament
|
||||
return allTeams.Any(t => t.Team.FullName == fullName);
|
||||
}
|
||||
|
||||
public bool RemoveTeam(Country team)
|
||||
public bool RemoveTeam(DrawingsTeam team)
|
||||
{
|
||||
allTeams.RemoveAll(gt => gt.Team == team);
|
||||
|
||||
@ -122,12 +122,12 @@ namespace osu.Game.Screens.Tournament
|
||||
|
||||
private class GroupTeam : Container
|
||||
{
|
||||
public readonly Country Team;
|
||||
public readonly DrawingsTeam Team;
|
||||
|
||||
private readonly FillFlowContainer innerContainer;
|
||||
private readonly Sprite flagSprite;
|
||||
|
||||
public GroupTeam(Country team)
|
||||
public GroupTeam(DrawingsTeam team)
|
||||
{
|
||||
Team = team;
|
||||
|
||||
|
@ -8,7 +8,7 @@ using System.Text;
|
||||
using osu.Framework.Graphics;
|
||||
using osu.Framework.Graphics.Containers;
|
||||
using OpenTK;
|
||||
using osu.Game.Users;
|
||||
using osu.Game.Screens.Tournament.Teams;
|
||||
|
||||
namespace osu.Game.Screens.Tournament
|
||||
{
|
||||
@ -64,7 +64,7 @@ namespace osu.Game.Screens.Tournament
|
||||
}
|
||||
}
|
||||
|
||||
public void AddTeam(Country team)
|
||||
public void AddTeam(DrawingsTeam team)
|
||||
{
|
||||
if (groups[currentGroup].TeamsCount == maxTeams)
|
||||
return;
|
||||
|
@ -15,16 +15,16 @@ using osu.Framework.Graphics.Transforms;
|
||||
using osu.Framework.Threading;
|
||||
using OpenTK;
|
||||
using OpenTK.Graphics;
|
||||
using osu.Game.Users;
|
||||
using osu.Game.Screens.Tournament.Teams;
|
||||
|
||||
namespace osu.Game.Screens.Tournament
|
||||
{
|
||||
public class ScrollingTeamContainer : Container
|
||||
{
|
||||
public event Action OnScrollStarted;
|
||||
public event Action<Country> OnSelected;
|
||||
public event Action<DrawingsTeam> OnSelected;
|
||||
|
||||
private readonly List<Country> availableTeams = new List<Country>();
|
||||
private readonly List<DrawingsTeam> availableTeams = new List<DrawingsTeam>();
|
||||
|
||||
private readonly Container tracker;
|
||||
|
||||
@ -158,7 +158,7 @@ namespace osu.Game.Screens.Tournament
|
||||
}
|
||||
}
|
||||
|
||||
public void AddTeam(Country team)
|
||||
public void AddTeam(DrawingsTeam team)
|
||||
{
|
||||
if (availableTeams.Contains(team))
|
||||
return;
|
||||
@ -169,12 +169,12 @@ namespace osu.Game.Screens.Tournament
|
||||
scrollState = ScrollState.Idle;
|
||||
}
|
||||
|
||||
public void AddTeams(IEnumerable<Country> teams)
|
||||
public void AddTeams(IEnumerable<DrawingsTeam> teams)
|
||||
{
|
||||
if (teams == null)
|
||||
return;
|
||||
|
||||
foreach (Country t in teams)
|
||||
foreach (DrawingsTeam t in teams)
|
||||
AddTeam(t);
|
||||
}
|
||||
|
||||
@ -185,7 +185,7 @@ namespace osu.Game.Screens.Tournament
|
||||
scrollState = ScrollState.Idle;
|
||||
}
|
||||
|
||||
public void RemoveTeam(Country team)
|
||||
public void RemoveTeam(DrawingsTeam team)
|
||||
{
|
||||
availableTeams.Remove(team);
|
||||
|
||||
@ -270,7 +270,7 @@ namespace osu.Game.Screens.Tournament
|
||||
|
||||
private void addFlags()
|
||||
{
|
||||
foreach (Country t in availableTeams)
|
||||
foreach (DrawingsTeam t in availableTeams)
|
||||
{
|
||||
Add(new ScrollingTeam(t)
|
||||
{
|
||||
@ -320,7 +320,7 @@ namespace osu.Game.Screens.Tournament
|
||||
public const float WIDTH = 58;
|
||||
public const float HEIGHT = 41;
|
||||
|
||||
public Country Team;
|
||||
public DrawingsTeam Team;
|
||||
|
||||
private readonly Sprite flagSprite;
|
||||
private readonly Box outline;
|
||||
@ -340,7 +340,7 @@ namespace osu.Game.Screens.Tournament
|
||||
}
|
||||
}
|
||||
|
||||
public ScrollingTeam(Country team)
|
||||
public ScrollingTeam(DrawingsTeam team)
|
||||
{
|
||||
Team = team;
|
||||
|
||||
|
23
osu.Game/Screens/Tournament/Teams/DrawingsTeam.cs
Normal file
23
osu.Game/Screens/Tournament/Teams/DrawingsTeam.cs
Normal file
@ -0,0 +1,23 @@
|
||||
// Copyright (c) 2007-2017 ppy Pty Ltd <contact@ppy.sh>.
|
||||
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
||||
|
||||
namespace osu.Game.Screens.Tournament.Teams
|
||||
{
|
||||
public class DrawingsTeam
|
||||
{
|
||||
/// <summary>
|
||||
/// The name of this team.
|
||||
/// </summary>
|
||||
public string FullName;
|
||||
|
||||
/// <summary>
|
||||
/// Short acronym which appears in the group boxes post-selection.
|
||||
/// </summary>
|
||||
public string Acronym;
|
||||
|
||||
/// <summary>
|
||||
/// Name of the file containing the flag.
|
||||
/// </summary>
|
||||
public string FlagName;
|
||||
}
|
||||
}
|
@ -2,12 +2,11 @@
|
||||
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
||||
|
||||
using System.Collections.Generic;
|
||||
using osu.Game.Users;
|
||||
|
||||
namespace osu.Game.Screens.Tournament.Teams
|
||||
{
|
||||
public interface ITeamList
|
||||
{
|
||||
IEnumerable<Country> Teams { get; }
|
||||
IEnumerable<DrawingsTeam> Teams { get; }
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,6 @@ using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using osu.Framework.Logging;
|
||||
using osu.Framework.Platform;
|
||||
using osu.Game.Users;
|
||||
|
||||
namespace osu.Game.Screens.Tournament.Teams
|
||||
{
|
||||
@ -21,16 +20,16 @@ namespace osu.Game.Screens.Tournament.Teams
|
||||
this.storage = storage;
|
||||
}
|
||||
|
||||
public IEnumerable<Country> Teams
|
||||
public IEnumerable<DrawingsTeam> Teams
|
||||
{
|
||||
get
|
||||
{
|
||||
var teams = new List<Country>();
|
||||
var teams = new List<DrawingsTeam>();
|
||||
|
||||
try
|
||||
{
|
||||
using (Stream stream = storage.GetStream(teams_filename, FileAccess.Read, FileMode.Open))
|
||||
using (StreamReader sr = new StreamReader(stream))
|
||||
using (var sr = new StreamReader(stream))
|
||||
{
|
||||
while (sr.Peek() != -1)
|
||||
{
|
||||
@ -53,7 +52,7 @@ namespace osu.Game.Screens.Tournament.Teams
|
||||
string acronym = split.Length >= 3 ? split[2].Trim() : teamName;
|
||||
acronym = acronym.Substring(0, Math.Min(3, acronym.Length));
|
||||
|
||||
teams.Add(new Country
|
||||
teams.Add(new DrawingsTeam
|
||||
{
|
||||
FlagName = flagName,
|
||||
FullName = teamName,
|
||||
|
@ -18,11 +18,6 @@ namespace osu.Game.Users
|
||||
[JsonProperty(@"name")]
|
||||
public string FullName;
|
||||
|
||||
/// <summary>
|
||||
/// Short acronym which appears in the group boxes post-selection.
|
||||
/// </summary>
|
||||
public string Acronym;
|
||||
|
||||
/// <summary>
|
||||
/// Two-letter flag acronym (ISO 3166 standard)
|
||||
/// </summary>
|
||||
|
@ -326,6 +326,7 @@
|
||||
<Compile Include="Screens\Tournament\Teams\ITeamList.cs" />
|
||||
<Compile Include="Screens\Tournament\ScrollingTeamContainer.cs" />
|
||||
<Compile Include="Screens\Tournament\Teams\StorageBackedTeamList.cs" />
|
||||
<Compile Include="Screens\Tournament\Teams\DrawingsTeam.cs" />
|
||||
<Compile Include="Users\UpdateableAvatar.cs" />
|
||||
<Compile Include="Users\User.cs" />
|
||||
<Compile Include="Graphics\UserInterface\Volume\VolumeControl.cs" />
|
||||
|
Loading…
Reference in New Issue
Block a user