Make control group hotkeys configurable
- Split control groups management to its own interface - Add hotkeys for selecting, creating, adding to and combining with control groups - Add a ControlGroups widget to manage the player interaction
This commit is contained in:
committed by
abcdefg30
parent
04b456d6c2
commit
7a93b9ea8c
@@ -477,10 +477,25 @@ namespace OpenRA.Traits
|
||||
void Clear();
|
||||
bool RolloverContains(Actor a);
|
||||
void SetRollover(IEnumerable<Actor> actors);
|
||||
void DoControlGroup(World world, WorldRenderer worldRenderer, int group, Modifiers mods, int multiTapCount);
|
||||
}
|
||||
|
||||
public interface IControlGroupsInfo : ITraitInfoInterface
|
||||
{
|
||||
string[] Groups { get; }
|
||||
}
|
||||
|
||||
public interface IControlGroups
|
||||
{
|
||||
string[] Groups { get; }
|
||||
|
||||
void SelectControlGroup(int group);
|
||||
void CreateControlGroup(int group);
|
||||
void AddSelectionToControlGroup(int group);
|
||||
void CombineSelectionWithControlGroup(int group);
|
||||
void AddToControlGroup(Actor a, int group);
|
||||
void RemoveFromControlGroup(Actor a);
|
||||
int? GetControlGroupForActor(Actor a);
|
||||
IEnumerable<Actor> GetActorsInControlGroup(int group);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -158,6 +158,7 @@ namespace OpenRA
|
||||
}
|
||||
|
||||
public readonly ISelection Selection;
|
||||
public readonly IControlGroups ControlGroups;
|
||||
|
||||
public void CancelInputMode() { OrderGenerator = new UnitOrderGenerator(); }
|
||||
|
||||
@@ -201,6 +202,7 @@ namespace OpenRA
|
||||
ActorMap = WorldActor.Trait<IActorMap>();
|
||||
ScreenMap = WorldActor.Trait<ScreenMap>();
|
||||
Selection = WorldActor.Trait<ISelection>();
|
||||
ControlGroups = WorldActor.Trait<IControlGroups>();
|
||||
OrderValidators = WorldActor.TraitsImplementing<IValidateOrder>().ToArray();
|
||||
notifyDisconnected = WorldActor.TraitsImplementing<INotifyPlayerDisconnected>().ToArray();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user