Update editor sidebar when a player is removed.
This commit is contained in:
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user