Move control group logic into its own logic class.
This commit is contained in:
@@ -198,13 +198,7 @@ namespace OpenRA.Widgets
|
|||||||
{
|
{
|
||||||
if (e.Event == KeyInputEvent.Down)
|
if (e.Event == KeyInputEvent.Down)
|
||||||
{
|
{
|
||||||
if (e.Key >= Keycode.NUMBER_0 && e.Key <= Keycode.NUMBER_9)
|
if (Hotkey.FromKeyInput(e) == Game.Settings.Keys.PauseKey && World.LocalPlayer != null) // Disable pausing for spectators
|
||||||
{
|
|
||||||
var group = (int)e.Key - (int)Keycode.NUMBER_0;
|
|
||||||
World.Selection.DoControlGroup(World, worldRenderer, group, e.Modifiers, e.MultiTapCount);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else if (Hotkey.FromKeyInput(e) == Game.Settings.Keys.PauseKey && World.LocalPlayer != null) // Disable pausing for spectators
|
|
||||||
World.SetPauseState(!World.Paused);
|
World.SetPauseState(!World.Paused);
|
||||||
else if (Hotkey.FromKeyInput(e) == Game.Settings.Keys.SelectAllUnitsKey)
|
else if (Hotkey.FromKeyInput(e) == Game.Settings.Keys.SelectAllUnitsKey)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -490,6 +490,7 @@
|
|||||||
<Compile Include="Widgets\Logic\ButtonTooltipLogic.cs" />
|
<Compile Include="Widgets\Logic\ButtonTooltipLogic.cs" />
|
||||||
<Compile Include="Orders\BeaconOrderGenerator.cs" />
|
<Compile Include="Orders\BeaconOrderGenerator.cs" />
|
||||||
<Compile Include="Widgets\LogicKeyListenerWidget.cs" />
|
<Compile Include="Widgets\LogicKeyListenerWidget.cs" />
|
||||||
|
<Compile Include="Widgets\Logic\ControlGroupLogic.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\OpenRA.FileFormats\OpenRA.FileFormats.csproj">
|
<ProjectReference Include="..\OpenRA.FileFormats\OpenRA.FileFormats.csproj">
|
||||||
|
|||||||
35
OpenRA.Mods.RA/Widgets/Logic/ControlGroupLogic.cs
Normal file
35
OpenRA.Mods.RA/Widgets/Logic/ControlGroupLogic.cs
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
#region Copyright & License Information
|
||||||
|
/*
|
||||||
|
* Copyright 2007-2014 The OpenRA Developers (see AUTHORS)
|
||||||
|
* This file is part of OpenRA, which is free software. It is made
|
||||||
|
* available to you under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation. For more information,
|
||||||
|
* see COPYING.
|
||||||
|
*/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using OpenRA.Graphics;
|
||||||
|
using OpenRA.Widgets;
|
||||||
|
|
||||||
|
namespace OpenRA.Mods.RA.Widgets.Logic
|
||||||
|
{
|
||||||
|
public class ControlGroupLogic
|
||||||
|
{
|
||||||
|
[ObjectCreator.UseCtor]
|
||||||
|
public ControlGroupLogic(Widget widget, World world, WorldRenderer worldRenderer)
|
||||||
|
{
|
||||||
|
var keyhandler = widget.Get<LogicKeyListenerWidget>("CONTROLGROUP_KEYHANDLER");
|
||||||
|
keyhandler.OnKeyPress = e =>
|
||||||
|
{
|
||||||
|
if (e.Key >= Keycode.NUMBER_0 && e.Key <= Keycode.NUMBER_9)
|
||||||
|
{
|
||||||
|
var group = (int)e.Key - (int)Keycode.NUMBER_0;
|
||||||
|
world.Selection.DoControlGroup(world, worldRenderer, group, e.Modifiers, e.MultiTapCount);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -175,6 +175,8 @@ Container@OBSERVER_WIDGETS:
|
|||||||
|
|
||||||
Container@PLAYER_WIDGETS:
|
Container@PLAYER_WIDGETS:
|
||||||
Children:
|
Children:
|
||||||
|
LogicKeyListener@CONTROLGROUP_KEYHANDLER:
|
||||||
|
Logic:ControlGroupLogic
|
||||||
LogicTicker@SIDEBAR_TICKER:
|
LogicTicker@SIDEBAR_TICKER:
|
||||||
WorldCommand:
|
WorldCommand:
|
||||||
Width:WINDOW_RIGHT
|
Width:WINDOW_RIGHT
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
Container@PLAYER_WIDGETS:
|
Container@PLAYER_WIDGETS:
|
||||||
Children:
|
Children:
|
||||||
|
LogicKeyListener@CONTROLGROUP_KEYHANDLER:
|
||||||
|
Logic:ControlGroupLogic
|
||||||
LogicTicker@SIDEBAR_TICKER:
|
LogicTicker@SIDEBAR_TICKER:
|
||||||
Button@INGAME_DIPLOMACY_BUTTON:
|
Button@INGAME_DIPLOMACY_BUTTON:
|
||||||
X:162
|
X:162
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
Container@PLAYER_WIDGETS:
|
Container@PLAYER_WIDGETS:
|
||||||
Children:
|
Children:
|
||||||
|
LogicKeyListener@CONTROLGROUP_KEYHANDLER:
|
||||||
|
Logic:ControlGroupLogic
|
||||||
LogicTicker@SIDEBAR_TICKER:
|
LogicTicker@SIDEBAR_TICKER:
|
||||||
Button@INGAME_DIPLOMACY_BUTTON:
|
Button@INGAME_DIPLOMACY_BUTTON:
|
||||||
X:162
|
X:162
|
||||||
|
|||||||
Reference in New Issue
Block a user