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.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;
|
||||
}
|
||||
else if (Hotkey.FromKeyInput(e) == Game.Settings.Keys.PauseKey && World.LocalPlayer != null) // Disable pausing for spectators
|
||||
if (Hotkey.FromKeyInput(e) == Game.Settings.Keys.PauseKey && World.LocalPlayer != null) // Disable pausing for spectators
|
||||
World.SetPauseState(!World.Paused);
|
||||
else if (Hotkey.FromKeyInput(e) == Game.Settings.Keys.SelectAllUnitsKey)
|
||||
{
|
||||
|
||||
@@ -490,6 +490,7 @@
|
||||
<Compile Include="Widgets\Logic\ButtonTooltipLogic.cs" />
|
||||
<Compile Include="Orders\BeaconOrderGenerator.cs" />
|
||||
<Compile Include="Widgets\LogicKeyListenerWidget.cs" />
|
||||
<Compile Include="Widgets\Logic\ControlGroupLogic.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<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:
|
||||
Children:
|
||||
LogicKeyListener@CONTROLGROUP_KEYHANDLER:
|
||||
Logic:ControlGroupLogic
|
||||
LogicTicker@SIDEBAR_TICKER:
|
||||
WorldCommand:
|
||||
Width:WINDOW_RIGHT
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
Container@PLAYER_WIDGETS:
|
||||
Children:
|
||||
LogicKeyListener@CONTROLGROUP_KEYHANDLER:
|
||||
Logic:ControlGroupLogic
|
||||
LogicTicker@SIDEBAR_TICKER:
|
||||
Button@INGAME_DIPLOMACY_BUTTON:
|
||||
X:162
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
Container@PLAYER_WIDGETS:
|
||||
Children:
|
||||
LogicKeyListener@CONTROLGROUP_KEYHANDLER:
|
||||
Logic:ControlGroupLogic
|
||||
LogicTicker@SIDEBAR_TICKER:
|
||||
Button@INGAME_DIPLOMACY_BUTTON:
|
||||
X:162
|
||||
|
||||
Reference in New Issue
Block a user