Add a hotkey to select the current production facility
This commit is contained in:
committed by
Paul Chote
parent
7ffc689037
commit
1bcad55c1f
@@ -55,6 +55,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
// Note: LinterHotkeyNames assumes that these are disabled by default
|
// Note: LinterHotkeyNames assumes that these are disabled by default
|
||||||
public readonly string HotkeyPrefix = null;
|
public readonly string HotkeyPrefix = null;
|
||||||
public readonly int HotkeyCount = 0;
|
public readonly int HotkeyCount = 0;
|
||||||
|
public readonly HotkeyReference SelectProductionBuildingHotkey = new HotkeyReference();
|
||||||
|
|
||||||
public readonly string ClockAnimation = "clock";
|
public readonly string ClockAnimation = "clock";
|
||||||
public readonly string ClockSequence = "idle";
|
public readonly string ClockSequence = "idle";
|
||||||
@@ -367,6 +368,9 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
if (e.Event == KeyInputEvent.Up || CurrentQueue == null)
|
if (e.Event == KeyInputEvent.Up || CurrentQueue == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if (SelectProductionBuildingHotkey.IsActivatedBy(e))
|
||||||
|
return SelectProductionBuilding();
|
||||||
|
|
||||||
var batchModifiers = e.Modifiers.HasModifier(Modifiers.Shift) ? Modifiers.Shift : Modifiers.None;
|
var batchModifiers = e.Modifiers.HasModifier(Modifiers.Shift) ? Modifiers.Shift : Modifiers.None;
|
||||||
|
|
||||||
// HACK: enable production if the shift key is pressed
|
// HACK: enable production if the shift key is pressed
|
||||||
@@ -375,6 +379,28 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
return toBuild != null ? HandleEvent(toBuild, MouseButton.Left, batchModifiers) : false;
|
return toBuild != null ? HandleEvent(toBuild, MouseButton.Left, batchModifiers) : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool SelectProductionBuilding()
|
||||||
|
{
|
||||||
|
var viewport = worldRenderer.Viewport;
|
||||||
|
var selection = World.Selection;
|
||||||
|
|
||||||
|
if (CurrentQueue == null)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
var facility = CurrentQueue.MostLikelyProducer().Actor;
|
||||||
|
|
||||||
|
if (facility == null)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if (selection.Actors.Count() == 1 && selection.Contains(facility))
|
||||||
|
viewport.Center(selection.Actors);
|
||||||
|
else
|
||||||
|
selection.Combine(World, new[] { facility }, false, true);
|
||||||
|
|
||||||
|
Game.Sound.PlayNotification(World.Map.Rules, null, "Sounds", ClickSound, null);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public void RefreshIcons()
|
public void RefreshIcons()
|
||||||
{
|
{
|
||||||
icons = new Dictionary<Rectangle, ProductionIcon>();
|
icons = new Dictionary<Rectangle, ProductionIcon>();
|
||||||
|
|||||||
@@ -1838,6 +1838,7 @@ Container@PLAYER_WIDGETS:
|
|||||||
HoldText: On Hold
|
HoldText: On Hold
|
||||||
HotkeyPrefix: Production
|
HotkeyPrefix: Production
|
||||||
HotkeyCount: 24
|
HotkeyCount: 24
|
||||||
|
SelectProductionBuildingHotkey: SelectProductionBuilding
|
||||||
ProductionTabs@PRODUCTION_TABS:
|
ProductionTabs@PRODUCTION_TABS:
|
||||||
Logic: AddFactionSuffixLogic, ProductionTabsLogic
|
Logic: AddFactionSuffixLogic, ProductionTabsLogic
|
||||||
PaletteWidget: PRODUCTION_PALETTE
|
PaletteWidget: PRODUCTION_PALETTE
|
||||||
|
|||||||
@@ -2,6 +2,10 @@ CycleProductionBuildings: TAB
|
|||||||
Description: Next facility
|
Description: Next facility
|
||||||
Types: Production, Player, Spectator
|
Types: Production, Player, Spectator
|
||||||
|
|
||||||
|
SelectProductionBuilding:
|
||||||
|
Description: Current facility
|
||||||
|
Types: Production, Player
|
||||||
|
|
||||||
Production01: F1
|
Production01: F1
|
||||||
Description: Slot 01
|
Description: Slot 01
|
||||||
Types: ProductionSlot, Player
|
Types: ProductionSlot, Player
|
||||||
|
|||||||
@@ -492,6 +492,7 @@ Container@PLAYER_WIDGETS:
|
|||||||
MaximumRows: 6
|
MaximumRows: 6
|
||||||
HotkeyPrefix: Production
|
HotkeyPrefix: Production
|
||||||
HotkeyCount: 24
|
HotkeyCount: 24
|
||||||
|
SelectProductionBuildingHotkey: SelectProductionBuilding
|
||||||
ClickSound: TabClick
|
ClickSound: TabClick
|
||||||
Container@PRODUCTION_TYPES:
|
Container@PRODUCTION_TYPES:
|
||||||
X: 6
|
X: 6
|
||||||
|
|||||||
@@ -448,6 +448,7 @@ Container@PLAYER_WIDGETS:
|
|||||||
IconSpriteOffset: -1, -1
|
IconSpriteOffset: -1, -1
|
||||||
HotkeyPrefix: Production
|
HotkeyPrefix: Production
|
||||||
HotkeyCount: 24
|
HotkeyCount: 24
|
||||||
|
SelectProductionBuildingHotkey: SelectProductionBuilding
|
||||||
Container@PALETTE_FOREGROUND:
|
Container@PALETTE_FOREGROUND:
|
||||||
Children:
|
Children:
|
||||||
Image@ROW_TEMPLATE:
|
Image@ROW_TEMPLATE:
|
||||||
|
|||||||
@@ -491,6 +491,7 @@ Container@PLAYER_WIDGETS:
|
|||||||
MaximumRows: 6
|
MaximumRows: 6
|
||||||
HotkeyPrefix: Production
|
HotkeyPrefix: Production
|
||||||
HotkeyCount: 24
|
HotkeyCount: 24
|
||||||
|
SelectProductionBuildingHotkey: SelectProductionBuilding
|
||||||
Container@PRODUCTION_TYPES:
|
Container@PRODUCTION_TYPES:
|
||||||
X: 0
|
X: 0
|
||||||
Y: 0 - 32
|
Y: 0 - 32
|
||||||
|
|||||||
Reference in New Issue
Block a user