Allow hotkeying completed buildings whose icons are not visible on the production palette
This commit is contained in:
@@ -292,13 +292,16 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
return HandleEvent(icon, mi.Button, mi.Modifiers);
|
return HandleEvent(icon, mi.Button, mi.Modifiers);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected bool PickUpCompletedBuildingIcon(ProductionIcon icon, ProductionItem item)
|
protected bool PickUpCompletedBuildingIcon(ProductionItem item)
|
||||||
{
|
{
|
||||||
var actor = World.Map.Rules.Actors[icon.Name];
|
if (item == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
if (item != null && item.Done && actor.HasTraitInfo<BuildingInfo>())
|
var actor = World.Map.Rules.Actors[item.Item];
|
||||||
|
|
||||||
|
if (item.Done && actor.HasTraitInfo<BuildingInfo>())
|
||||||
{
|
{
|
||||||
World.OrderGenerator = new PlaceBuildingOrderGenerator(CurrentQueue, icon.Name, worldRenderer);
|
World.OrderGenerator = new PlaceBuildingOrderGenerator(CurrentQueue, item.Item, worldRenderer);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -307,17 +310,12 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
|
|
||||||
public void PickUpCompletedBuilding()
|
public void PickUpCompletedBuilding()
|
||||||
{
|
{
|
||||||
foreach (var icon in icons.Values)
|
PickUpCompletedBuildingIcon(CurrentQueue.CurrentItem());
|
||||||
{
|
|
||||||
var item = icon.Queued.FirstOrDefault();
|
|
||||||
if (PickUpCompletedBuildingIcon(icon, item))
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool HandleLeftClick(ProductionItem item, ProductionIcon icon, int handleCount, Modifiers modifiers)
|
bool HandleLeftClick(ProductionItem item, ProductionIcon icon, int handleCount, Modifiers modifiers)
|
||||||
{
|
{
|
||||||
if (PickUpCompletedBuildingIcon(icon, item))
|
if (PickUpCompletedBuildingIcon(item))
|
||||||
{
|
{
|
||||||
Game.Sound.PlayNotification(World.Map.Rules, World.LocalPlayer, "Sounds", ClickSound, null);
|
Game.Sound.PlayNotification(World.Map.Rules, World.LocalPlayer, "Sounds", ClickSound, null);
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user