Merge pull request #9650 from r34ch/health-bars-on-damage

Display status bars dropdown
This commit is contained in:
Matthias Mailänder
2015-12-05 19:45:20 +01:00
8 changed files with 95 additions and 28 deletions

View File

@@ -78,7 +78,7 @@ namespace OpenRA.Mods.Common.Traits
yield return new SelectionBoxRenderable(self, Info.SelectionBoxColor);
if (Info.RenderSelectionBars)
yield return new SelectionBarsRenderable(self);
yield return new SelectionBarsRenderable(self, true, true);
if (!self.Owner.IsAlliedWith(wr.World.RenderPlayer))
yield break;

View File

@@ -153,7 +153,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic
BindCheckboxPref(panel, "CURSORDOUBLE_CHECKBOX", ds, "CursorDouble");
BindCheckboxPref(panel, "FRAME_LIMIT_CHECKBOX", ds, "CapFramerate");
BindCheckboxPref(panel, "SHOW_SHELLMAP", gs, "ShowShellmap");
BindCheckboxPref(panel, "ALWAYS_SHOW_STATUS_BARS_CHECKBOX", gs, "AlwaysShowStatusBars");
BindCheckboxPref(panel, "DISPLAY_TARGET_LINES_CHECKBOX", gs, "DrawTargetLine");
BindCheckboxPref(panel, "TEAM_HEALTH_COLORS_CHECKBOX", gs, "TeamHealthColors");
@@ -166,6 +165,11 @@ namespace OpenRA.Mods.Common.Widgets.Logic
windowModeDropdown.GetText = () => ds.Mode == WindowMode.Windowed ?
"Windowed" : ds.Mode == WindowMode.Fullscreen ? "Fullscreen" : "Pseudo-Fullscreen";
var statusBarsDropDown = panel.Get<DropDownButtonWidget>("STATUS_BAR_DROPDOWN");
statusBarsDropDown.OnMouseDown = _ => ShowStatusBarsDropdown(statusBarsDropDown, gs);
statusBarsDropDown.GetText = () => gs.StatusBars.ToString() == "Standard" ?
"Standard" : gs.StatusBars.ToString() == "DamageShow" ? "Show On Damage" : "Always Show";
// Update zoom immediately
var pixelDoubleCheckbox = panel.Get<CheckboxWidget>("PIXELDOUBLE_CHECKBOX");
var pixelDoubleOnClick = pixelDoubleCheckbox.OnClick;
@@ -408,7 +412,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
{ "PreviousProductionTabKey", "Previous production tab" },
{ "CycleProductionBuildingsKey", "Cycle production facilities" },
{ "ToggleStatusBarsKey", "Toggle status bars" },
{ "CycleStatusBarsKey", "Cycle status bars display" },
{ "TogglePixelDoubleKey", "Toggle pixel doubling" },
{ "MapScrollUp", "Map scroll up" },
@@ -669,6 +673,29 @@ namespace OpenRA.Mods.Common.Widgets.Logic
return true;
}
static bool ShowStatusBarsDropdown(DropDownButtonWidget dropdown, GameSettings s)
{
var options = new Dictionary<string, StatusBarsType>()
{
{ "Standard", StatusBarsType.Standard },
{ "Show On Damage", StatusBarsType.DamageShow },
{ "Always Show", StatusBarsType.AlwaysShow },
};
Func<string, ScrollItemWidget, ScrollItemWidget> setupItem = (o, itemTemplate) =>
{
var item = ScrollItemWidget.Setup(itemTemplate,
() => s.StatusBars == options[o],
() => s.StatusBars = options[o]);
item.Get<LabelWidget>("LABEL").GetText = () => o;
return item;
};
dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 500, options.Keys, setupItem);
return true;
}
void MakeMouseFocusSettingsLive()
{
var gameSettings = Game.Settings.Game;