Update editor sidebar when a player is removed.
This commit is contained in:
@@ -172,7 +172,10 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
var index = int.Parse(name.Substring(5));
|
var index = int.Parse(name.Substring(5));
|
||||||
|
|
||||||
if (index >= newCount)
|
if (index >= newCount)
|
||||||
|
{
|
||||||
Players.Players.Remove(name);
|
Players.Players.Remove(name);
|
||||||
|
OnPlayerRemoved();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var index = 0; index < newCount; index++)
|
for (var index = 0; index < newCount; index++)
|
||||||
@@ -249,6 +252,8 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
return screenMap.At(worldPx);
|
return screenMap.At(worldPx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Action OnPlayerRemoved = () => { };
|
||||||
|
|
||||||
string NextActorName()
|
string NextActorName()
|
||||||
{
|
{
|
||||||
var id = previews.Count();
|
var id = previews.Count();
|
||||||
|
|||||||
@@ -72,15 +72,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
selectedOwner = editorLayer.Players.Players.Values.First();
|
selectedOwner = editorLayer.Players.Players.Values.First();
|
||||||
Func<PlayerReference, ScrollItemWidget, ScrollItemWidget> setupItem = (option, template) =>
|
Func<PlayerReference, ScrollItemWidget, ScrollItemWidget> setupItem = (option, template) =>
|
||||||
{
|
{
|
||||||
var item = ScrollItemWidget.Setup(template, () => selectedOwner == option, () =>
|
var item = ScrollItemWidget.Setup(template, () => selectedOwner == option, () => SelectOwner(option));
|
||||||
{
|
|
||||||
selectedOwner = option;
|
|
||||||
|
|
||||||
ownersDropDown.Text = selectedOwner.Name;
|
|
||||||
ownersDropDown.TextColor = selectedOwner.Color.RGB;
|
|
||||||
|
|
||||||
InitializeActorPreviews();
|
|
||||||
});
|
|
||||||
|
|
||||||
item.Get<LabelWidget>("LABEL").GetText = () => option.Name;
|
item.Get<LabelWidget>("LABEL").GetText = () => option.Name;
|
||||||
item.GetColor = () => option.Color.RGB;
|
item.GetColor = () => option.Color.RGB;
|
||||||
@@ -88,6 +80,13 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
return item;
|
return item;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
editorLayer.OnPlayerRemoved = () =>
|
||||||
|
{
|
||||||
|
if (editorLayer.Players.Players.Values.Any(p => p.Name == selectedOwner.Name))
|
||||||
|
return;
|
||||||
|
SelectOwner(editorLayer.Players.Players.Values.First());
|
||||||
|
};
|
||||||
|
|
||||||
ownersDropDown.OnClick = () =>
|
ownersDropDown.OnClick = () =>
|
||||||
{
|
{
|
||||||
var owners = editorLayer.Players.Players.Values.OrderBy(p => p.Name);
|
var owners = editorLayer.Players.Players.Values.OrderBy(p => p.Name);
|
||||||
@@ -202,6 +201,14 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
InitializeActorPreviews();
|
InitializeActorPreviews();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SelectOwner(PlayerReference option)
|
||||||
|
{
|
||||||
|
selectedOwner = option;
|
||||||
|
ownersDropDown.Text = option.Name;
|
||||||
|
ownersDropDown.TextColor = option.Color.RGB;
|
||||||
|
InitializeActorPreviews();
|
||||||
|
}
|
||||||
|
|
||||||
Widget CreateCategoriesPanel()
|
Widget CreateCategoriesPanel()
|
||||||
{
|
{
|
||||||
var categoriesPanel = Ui.LoadWidget("ACTOR_CATEGORY_FILTER_PANEL", null, new WidgetArgs());
|
var categoriesPanel = Ui.LoadWidget("ACTOR_CATEGORY_FILTER_PANEL", null, new WidgetArgs());
|
||||||
|
|||||||
Reference in New Issue
Block a user