Merge remote-tracking branch 'refs/remotes/ppy/master' into mods_refactor

This commit is contained in:
EVAST9919 2017-05-03 08:26:54 +03:00
commit f49cc124ed
14 changed files with 85 additions and 51 deletions

@ -1 +1 @@
Subproject commit 58c108309f72462d8dc45aa488ab78cd6db08cf1
Subproject commit 72525837cf68aa9967cfede6fbe95489ed3b05ec

View File

@ -5,7 +5,6 @@
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 @@ public override void Reset()
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",

View File

@ -72,7 +72,7 @@ public class TaikoModAutoplay : ModAutoplay<TaikoHitObject>
protected override Score CreateReplayScore(Beatmap<TaikoHitObject> beatmap) => new Score
{
User = new User { Username = "mekkadosu!" },
Replay = new TaikoAutoReplay(beatmap).Generate(),
Replay = new TaikoAutoGenerator(beatmap).Generate(),
};
}
}

View File

@ -7,16 +7,24 @@
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;

View File

@ -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" />

View File

@ -21,7 +21,7 @@
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 @@ public class Drawings : OsuScreen
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 @@ public class Drawings : OsuScreen
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 @@ private void load(TextureStore textures, Storage storage)
reset(true);
}
private void onTeamSelected(Country team)
private void onTeamSelected(DrawingsTeam team)
{
groupsContainer.AddTeam(team);
@ -276,7 +286,7 @@ private void reloadTeams()
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 @@ private void reset(bool loadLastResults = false)
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;

View File

@ -13,7 +13,7 @@
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 @@ public Group(string name)
};
}
public void AddTeam(Country team)
public void AddTeam(DrawingsTeam team)
{
GroupTeam gt = new GroupTeam(team);
@ -91,7 +91,7 @@ public bool ContainsTeam(string fullName)
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 @@ public string GetStringRepresentation()
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;

View File

@ -8,7 +8,7 @@
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 @@ public GroupContainer(int numGroups, int teamsPerGroup)
}
}
public void AddTeam(Country team)
public void AddTeam(DrawingsTeam team)
{
if (groups[currentGroup].TeamsCount == maxTeams)
return;

View File

@ -15,16 +15,16 @@
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 @@ private ScrollState scrollState
}
}
public void AddTeam(Country team)
public void AddTeam(DrawingsTeam team)
{
if (availableTeams.Contains(team))
return;
@ -169,12 +169,12 @@ public void AddTeam(Country team)
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 @@ public void ClearTeams()
scrollState = ScrollState.Idle;
}
public void RemoveTeam(Country team)
public void RemoveTeam(DrawingsTeam team)
{
availableTeams.Remove(team);
@ -270,7 +270,7 @@ protected override void UpdateAfterChildren()
private void addFlags()
{
foreach (Country t in availableTeams)
foreach (DrawingsTeam t in availableTeams)
{
Add(new ScrollingTeam(t)
{
@ -320,7 +320,7 @@ public class ScrollingTeam : Container
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 @@ public bool Selected
}
}
public ScrollingTeam(Country team)
public ScrollingTeam(DrawingsTeam team)
{
Team = team;

View 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;
}
}

View File

@ -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; }
}
}

View File

@ -6,7 +6,6 @@
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 @@ public StorageBackedTeamList(Storage storage)
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 @@ public IEnumerable<Country> 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,

View File

@ -18,11 +18,6 @@ public class Country
[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>

View File

@ -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" />