Update editor sidebar when a player is removed.

This commit is contained in:
Noam
2018-10-04 00:12:33 +03:00
committed by abcdefg30
parent 52900f8112
commit c71f97e2c6
2 changed files with 21 additions and 9 deletions

View File

@@ -72,15 +72,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
selectedOwner = editorLayer.Players.Players.Values.First();
Func<PlayerReference, ScrollItemWidget, ScrollItemWidget> setupItem = (option, template) =>
{
var item = ScrollItemWidget.Setup(template, () => selectedOwner == option, () =>
{
selectedOwner = option;
ownersDropDown.Text = selectedOwner.Name;
ownersDropDown.TextColor = selectedOwner.Color.RGB;
InitializeActorPreviews();
});
var item = ScrollItemWidget.Setup(template, () => selectedOwner == option, () => SelectOwner(option));
item.Get<LabelWidget>("LABEL").GetText = () => option.Name;
item.GetColor = () => option.Color.RGB;
@@ -88,6 +80,13 @@ namespace OpenRA.Mods.Common.Widgets.Logic
return item;
};
editorLayer.OnPlayerRemoved = () =>
{
if (editorLayer.Players.Players.Values.Any(p => p.Name == selectedOwner.Name))
return;
SelectOwner(editorLayer.Players.Players.Values.First());
};
ownersDropDown.OnClick = () =>
{
var owners = editorLayer.Players.Players.Values.OrderBy(p => p.Name);
@@ -202,6 +201,14 @@ namespace OpenRA.Mods.Common.Widgets.Logic
InitializeActorPreviews();
}
void SelectOwner(PlayerReference option)
{
selectedOwner = option;
ownersDropDown.Text = option.Name;
ownersDropDown.TextColor = option.Color.RGB;
InitializeActorPreviews();
}
Widget CreateCategoriesPanel()
{
var categoriesPanel = Ui.LoadWidget("ACTOR_CATEGORY_FILTER_PANEL", null, new WidgetArgs());