harvester Deliver order works with queues

This commit is contained in:
tovl
2019-02-01 23:39:07 +01:00
committed by reaperrr
parent f64c8f1ee8
commit 307a87cd9e
4 changed files with 49 additions and 15 deletions

View File

@@ -144,12 +144,12 @@ namespace OpenRA.Mods.Common.Traits
{
if (!preventDock)
{
dockOrder.Queue(self, new CallFunc(() => dockedHarv = harv, false));
dockOrder.Queue(self, DockSequence(harv, self));
dockOrder.Queue(self, new CallFunc(() => dockedHarv = null, false));
dockOrder.QueueChild(self, new CallFunc(() => dockedHarv = harv, false));
dockOrder.QueueChild(self, DockSequence(harv, self));
dockOrder.QueueChild(self, new CallFunc(() => dockedHarv = null, false));
}
dockOrder.Queue(self, new CallFunc(() => harv.Trait<Harvester>().ContinueHarvesting(harv)));
dockOrder.QueueChild(self, new CallFunc(() => harv.Trait<Harvester>().ContinueHarvesting(harv)));
}
void INotifyOwnerChanged.OnOwnerChanged(Actor self, Player oldOwner, Player newOwner)

View File

@@ -397,7 +397,8 @@ namespace OpenRA.Mods.Common.Traits
LinkProc(self, OwnerLinkedProc = null);
idleSmart = true;
self.CancelActivity();
if (!order.Queued)
self.CancelActivity();
CPos loc;
if (order.Target.Type != TargetType.Invalid)
@@ -442,7 +443,9 @@ namespace OpenRA.Mods.Common.Traits
self.SetTargetLine(order.Target, Color.Green);
self.CancelActivity();
if (!order.Queued)
self.CancelActivity();
self.QueueActivity(new DeliverResources(self));
foreach (var n in notifyHarvesterAction)