Merge pull request #11952 from pchote/spectator-player-list
Include spectators in the player list.
This commit is contained in:
@@ -125,6 +125,37 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
playerPanel.AddChild(item);
|
playerPanel.AddChild(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var spectators = orderManager.LobbyInfo.Clients.Where(c => c.IsObserver).ToList();
|
||||||
|
if (spectators.Any())
|
||||||
|
{
|
||||||
|
var spectatorHeader = ScrollItemWidget.Setup(teamTemplate, () => true, () => { });
|
||||||
|
spectatorHeader.Get<LabelWidget>("TEAM").GetText = () => "Spectators";
|
||||||
|
|
||||||
|
playerPanel.AddChild(spectatorHeader);
|
||||||
|
|
||||||
|
foreach (var client in spectators)
|
||||||
|
{
|
||||||
|
var item = playerTemplate.Clone();
|
||||||
|
LobbyUtils.SetupClientWidget(item, client, orderManager, client != null && client.Bot == null);
|
||||||
|
var nameLabel = item.Get<LabelWidget>("NAME");
|
||||||
|
var nameFont = Game.Renderer.Fonts[nameLabel.Font];
|
||||||
|
|
||||||
|
var suffixLength = new CachedTransform<string, int>(s => nameFont.Measure(s).X);
|
||||||
|
var name = new CachedTransform<Pair<string, int>, string>(c =>
|
||||||
|
WidgetUtils.TruncateText(c.First, nameLabel.Bounds.Width - c.Second, nameFont));
|
||||||
|
|
||||||
|
nameLabel.GetText = () =>
|
||||||
|
{
|
||||||
|
var suffix = client.State == Session.ClientState.Disconnected ? " (Gone)" : "";
|
||||||
|
var sl = suffixLength.Update(suffix);
|
||||||
|
return name.Update(Pair.New(client.Name, sl)) + suffix;
|
||||||
|
};
|
||||||
|
|
||||||
|
item.Get<ImageWidget>("FACTIONFLAG").IsVisible = () => false;
|
||||||
|
playerPanel.AddChild(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user