Migrate hotkey consumers to HotkeyManager.

This commit is contained in:
Paul Chote
2017-10-28 09:12:54 +01:00
committed by abcdefg30
parent 35a3df3736
commit 2f79173044
21 changed files with 51 additions and 64 deletions

View File

@@ -23,12 +23,12 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class MapEditorLogic : ChromeLogic
{
[ObjectCreator.UseCtor]
public MapEditorLogic(Widget widget, World world, WorldRenderer worldRenderer, Dictionary<string, MiniYaml> logicArgs)
public MapEditorLogic(Widget widget, ModData modData, World world, WorldRenderer worldRenderer, Dictionary<string, MiniYaml> logicArgs)
{
MiniYaml yaml;
var changeZoomKey = new HotkeyReference();
if (logicArgs.TryGetValue("ChangeZoomKey", out yaml))
changeZoomKey = new HotkeyReference(yaml.Value, Game.Settings.Keys);
changeZoomKey = modData.Hotkeys[yaml.Value];
var editorViewport = widget.Get<EditorViewportControllerWidget>("MAP_EDITOR");

View File

@@ -27,8 +27,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic.Ingame
readonly World world;
[ObjectCreator.UseCtor]
public CycleBasesHotkeyLogic(Widget widget, WorldRenderer worldRenderer, World world, Dictionary<string, MiniYaml> logicArgs)
: base(widget, "CycleBasesKey", "WORLD_KEYHANDLER", logicArgs)
public CycleBasesHotkeyLogic(Widget widget, ModData modData, WorldRenderer worldRenderer, World world, Dictionary<string, MiniYaml> logicArgs)
: base(widget, modData, "CycleBasesKey", "WORLD_KEYHANDLER", logicArgs)
{
viewport = worldRenderer.Viewport;
selection = world.Selection;

View File

@@ -26,8 +26,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic.Ingame
readonly World world;
[ObjectCreator.UseCtor]
public CycleProductionActorsHotkeyLogic(Widget widget, WorldRenderer worldRenderer, World world, Dictionary<string, MiniYaml> logicArgs)
: base(widget, "CycleProductionActorsKey", "WORLD_KEYHANDLER", logicArgs)
public CycleProductionActorsHotkeyLogic(Widget widget, ModData modData, WorldRenderer worldRenderer, World world, Dictionary<string, MiniYaml> logicArgs)
: base(widget, modData, "CycleProductionActorsKey", "WORLD_KEYHANDLER", logicArgs)
{
viewport = worldRenderer.Viewport;
selection = world.Selection;

View File

@@ -22,8 +22,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic.Ingame
StatusBarsType[] options = { StatusBarsType.Standard, StatusBarsType.DamageShow, StatusBarsType.AlwaysShow };
[ObjectCreator.UseCtor]
public CycleStatusBarsHotkeyLogic(Widget widget, Dictionary<string, MiniYaml> logicArgs)
: base(widget, "CycleStatusBarsKey", "WORLD_KEYHANDLER", logicArgs) { }
public CycleStatusBarsHotkeyLogic(Widget widget, ModData modData, Dictionary<string, MiniYaml> logicArgs)
: base(widget, modData, "CycleStatusBarsKey", "WORLD_KEYHANDLER", logicArgs) { }
protected override bool OnHotkeyActivated(KeyInput e)
{

View File

@@ -24,8 +24,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic.Ingame
readonly RadarPings radarPings;
[ObjectCreator.UseCtor]
public JumpToLastEventHotkeyLogic(Widget widget, WorldRenderer worldRenderer, World world, Dictionary<string, MiniYaml> logicArgs)
: base(widget, "JumpToLastEventKey", "WORLD_KEYHANDLER", logicArgs)
public JumpToLastEventHotkeyLogic(Widget widget, ModData modData, WorldRenderer worldRenderer, World world, Dictionary<string, MiniYaml> logicArgs)
: base(widget, modData, "JumpToLastEventKey", "WORLD_KEYHANDLER", logicArgs)
{
viewport = worldRenderer.Viewport;
radarPings = world.WorldActor.TraitOrDefault<RadarPings>();

View File

@@ -23,8 +23,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic.Ingame
readonly Selection selection;
[ObjectCreator.UseCtor]
public JumpToSelectedActorsHotkeyLogic(Widget widget, WorldRenderer worldRenderer, World world, Dictionary<string, MiniYaml> logicArgs)
: base(widget, "JumpToSelectedActorsKey", "WORLD_KEYHANDLER", logicArgs)
public JumpToSelectedActorsHotkeyLogic(Widget widget, ModData modData, WorldRenderer worldRenderer, World world, Dictionary<string, MiniYaml> logicArgs)
: base(widget, modData, "JumpToSelectedActorsKey", "WORLD_KEYHANDLER", logicArgs)
{
viewport = worldRenderer.Viewport;
selection = world.Selection;

View File

@@ -22,8 +22,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic.Ingame
readonly World world;
[ObjectCreator.UseCtor]
public PauseHotkeyLogic(Widget widget, World world, Dictionary<string, MiniYaml> logicArgs)
: base(widget, "PauseKey", "WORLD_KEYHANDLER", logicArgs)
public PauseHotkeyLogic(Widget widget, ModData modData, World world, Dictionary<string, MiniYaml> logicArgs)
: base(widget, modData, "PauseKey", "WORLD_KEYHANDLER", logicArgs)
{
this.world = world;
}

View File

@@ -22,8 +22,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic.Ingame
readonly Viewport viewport;
[ObjectCreator.UseCtor]
public TogglePixelDoubleHotkeyLogic(Widget widget, WorldRenderer worldRenderer, Dictionary<string, MiniYaml> logicArgs)
: base(widget, "TogglePixelDoubleKey", "WORLD_KEYHANDLER", logicArgs)
public TogglePixelDoubleHotkeyLogic(Widget widget, ModData modData, WorldRenderer worldRenderer, Dictionary<string, MiniYaml> logicArgs)
: base(widget, modData, "TogglePixelDoubleKey", "WORLD_KEYHANDLER", logicArgs)
{
viewport = worldRenderer.Viewport;
}

View File

@@ -20,8 +20,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic.Ingame
public class TogglePlayerStanceColorHotkeyLogic : SingleHotkeyBaseLogic
{
[ObjectCreator.UseCtor]
public TogglePlayerStanceColorHotkeyLogic(Widget widget, Dictionary<string, MiniYaml> logicArgs)
: base(widget, "TogglePlayerStanceColorKey", "WORLD_KEYHANDLER", logicArgs) { }
public TogglePlayerStanceColorHotkeyLogic(Widget widget, ModData modData, Dictionary<string, MiniYaml> logicArgs)
: base(widget, modData, "TogglePlayerStanceColorKey", "WORLD_KEYHANDLER", logicArgs) { }
protected override bool OnHotkeyActivated(KeyInput e)
{

View File

@@ -28,7 +28,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
Widget currentWidget;
[ObjectCreator.UseCtor]
public MenuButtonsChromeLogic(Widget widget, World world, Dictionary<string, MiniYaml> logicArgs)
public MenuButtonsChromeLogic(Widget widget, ModData modData, World world, Dictionary<string, MiniYaml> logicArgs)
{
this.world = world;
@@ -36,11 +36,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
menuRoot = Ui.Root.Get("MENU_ROOT");
MiniYaml yaml;
var ks = Game.Settings.Keys;
string[] keyNames = Enum.GetNames(typeof(ObserverStatsPanel));
var statsHotkeys = new HotkeyReference[keyNames.Length];
for (var i = 0; i < keyNames.Length; i++)
statsHotkeys[i] = logicArgs.TryGetValue("Statistics" + keyNames[i] + "Key", out yaml) ? new HotkeyReference(yaml.Value, ks) : new HotkeyReference();
statsHotkeys[i] = logicArgs.TryGetValue("Statistics" + keyNames[i] + "Key", out yaml) ? modData.Hotkeys[yaml.Value] : new HotkeyReference();
// System buttons
var options = widget.GetOrNull<MenuButtonWidget>("OPTIONS_BUTTON");

View File

@@ -62,15 +62,14 @@ namespace OpenRA.Mods.Common.Widgets.Logic
}
[ObjectCreator.UseCtor]
public ObserverShroudSelectorLogic(Widget widget, World world, Dictionary<string, MiniYaml> logicArgs)
public ObserverShroudSelectorLogic(Widget widget, ModData modData, World world, Dictionary<string, MiniYaml> logicArgs)
{
MiniYaml yaml;
var ks = Game.Settings.Keys;
if (logicArgs.TryGetValue("CombinedViewKey", out yaml))
combinedViewKey = new HotkeyReference(yaml.Value, ks);
combinedViewKey = modData.Hotkeys[yaml.Value];
if (logicArgs.TryGetValue("WorldViewKey", out yaml))
worldViewKey = new HotkeyReference(yaml.Value, ks);
worldViewKey = modData.Hotkeys[yaml.Value];
limitViews = world.Map.Visibility.HasFlag(MapVisibility.MissionSelector);

View File

@@ -44,17 +44,17 @@ namespace OpenRA.Mods.Common.Widgets.Logic
readonly WorldRenderer worldRenderer;
[ObjectCreator.UseCtor]
public ObserverStatsLogic(World world, WorldRenderer worldRenderer, Widget widget, Action onExit, ObserverStatsPanel activePanel, Dictionary<string, MiniYaml> logicArgs)
public ObserverStatsLogic(World world, ModData modData, WorldRenderer worldRenderer, Widget widget,
Action onExit, ObserverStatsPanel activePanel, Dictionary<string, MiniYaml> logicArgs)
{
this.world = world;
this.worldRenderer = worldRenderer;
MiniYaml yaml;
var ks = Game.Settings.Keys;
string[] keyNames = Enum.GetNames(typeof(ObserverStatsPanel));
var statsHotkeys = new HotkeyReference[keyNames.Length];
for (var i = 0; i < keyNames.Length; i++)
statsHotkeys[i] = logicArgs.TryGetValue("Statistics" + keyNames[i] + "Key", out yaml) ? new HotkeyReference(yaml.Value, ks) : new HotkeyReference();
statsHotkeys[i] = logicArgs.TryGetValue("Statistics" + keyNames[i] + "Key", out yaml) ? modData.Hotkeys[yaml.Value] : new HotkeyReference();
players = world.Players.Where(p => !p.NonCombatant);

View File

@@ -22,28 +22,26 @@ namespace OpenRA.Mods.Common.Widgets.Logic
readonly MusicPlaylist musicPlaylist;
[ObjectCreator.UseCtor]
public MusicHotkeyLogic(Widget widget, World world, Dictionary<string, MiniYaml> logicArgs)
public MusicHotkeyLogic(Widget widget, ModData modData, World world, Dictionary<string, MiniYaml> logicArgs)
{
musicPlaylist = world.WorldActor.Trait<MusicPlaylist>();
var ks = Game.Settings.Keys;
MiniYaml yaml;
var stopKey = new HotkeyReference();
if (logicArgs.TryGetValue("StopMusicKey", out yaml))
stopKey = new HotkeyReference(yaml.Value, ks);
stopKey = modData.Hotkeys[yaml.Value];
var pauseKey = new HotkeyReference();
if (logicArgs.TryGetValue("PauseMusicKey", out yaml))
pauseKey = new HotkeyReference(yaml.Value, ks);
pauseKey = modData.Hotkeys[yaml.Value];
var prevKey = new HotkeyReference();
if (logicArgs.TryGetValue("PrevMusicKey", out yaml))
prevKey = new HotkeyReference(yaml.Value, ks);
prevKey = modData.Hotkeys[yaml.Value];
var nextKey = new HotkeyReference();
if (logicArgs.TryGetValue("NextMusicKey", out yaml))
nextKey = new HotkeyReference(yaml.Value, ks);
nextKey = modData.Hotkeys[yaml.Value];
var keyhandler = widget.Get<LogicKeyListenerWidget>("GLOBAL_KEYHANDLER");
keyhandler.AddHandler(e =>

View File

@@ -20,8 +20,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class MuteHotkeyLogic : SingleHotkeyBaseLogic
{
[ObjectCreator.UseCtor]
public MuteHotkeyLogic(Widget widget, Dictionary<string, MiniYaml> logicArgs)
: base(widget, "MuteAudioKey", "GLOBAL_KEYHANDLER", logicArgs) { }
public MuteHotkeyLogic(Widget widget, ModData modData, Dictionary<string, MiniYaml> logicArgs)
: base(widget, modData, "MuteAudioKey", "GLOBAL_KEYHANDLER", logicArgs) { }
protected override bool OnHotkeyActivated(KeyInput e)
{

View File

@@ -19,8 +19,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class ScreenshotHotkeyLogic : SingleHotkeyBaseLogic
{
[ObjectCreator.UseCtor]
public ScreenshotHotkeyLogic(Widget widget, Dictionary<string, MiniYaml> logicArgs)
: base(widget, "TakeScreenshotKey", "GLOBAL_KEYHANDLER", logicArgs) { }
public ScreenshotHotkeyLogic(Widget widget, ModData modData, Dictionary<string, MiniYaml> logicArgs)
: base(widget, modData, "TakeScreenshotKey", "GLOBAL_KEYHANDLER", logicArgs) { }
protected override bool OnHotkeyActivated(KeyInput e)
{

View File

@@ -17,14 +17,13 @@ namespace OpenRA.Mods.Common.Widgets.Logic
{
public abstract class SingleHotkeyBaseLogic : ChromeLogic
{
protected SingleHotkeyBaseLogic(Widget widget, string argName, string parentName, Dictionary<string, MiniYaml> logicArgs)
protected SingleHotkeyBaseLogic(Widget widget, ModData modData, string argName, string parentName, Dictionary<string, MiniYaml> logicArgs)
{
var ks = Game.Settings.Keys;
MiniYaml yaml;
var namedKey = new HotkeyReference();
if (logicArgs.TryGetValue(argName, out yaml))
namedKey = new HotkeyReference(yaml.Value, ks);
namedKey = modData.Hotkeys[yaml.Value];
var keyhandler = widget.Get<LogicKeyListenerWidget>(parentName);
keyhandler.AddHandler(e =>