Remove Order.TargetLocation from Harvester.

This commit is contained in:
Paul Chote
2018-12-01 11:59:58 +00:00
parent cd92e94d74
commit c7d9d9613e
2 changed files with 9 additions and 8 deletions

View File

@@ -124,7 +124,7 @@ namespace OpenRA.Mods.Common.Traits
// Tell the idle harvester to quit slacking:
var newSafeResourcePatch = FindNextResource(h.Key, h.Value);
AIUtils.BotDebug("AI: Harvester {0} is idle. Ordering to {1} in search for new resources.".F(h.Key, newSafeResourcePatch));
bot.QueueOrder(new Order("Harvest", h.Key, Target.FromCell(world, newSafeResourcePatch), false));
bot.QueueOrder(new Order("Harvest", h.Key, newSafeResourcePatch, false));
}
// Less harvesters than refineries - build a new harvester
@@ -138,7 +138,7 @@ namespace OpenRA.Mods.Common.Traits
}
}
CPos FindNextResource(Actor actor, HarvesterTraitWrapper harv)
Target FindNextResource(Actor actor, HarvesterTraitWrapper harv)
{
Func<CPos, bool> isValidResource = cell =>
domainIndex.IsPassable(actor.Location, cell, harv.LocomotorInfo) &&
@@ -153,9 +153,9 @@ namespace OpenRA.Mods.Common.Traits
.FromPoint(actor.Location));
if (path.Count == 0)
return CPos.Zero;
return Target.Invalid;
return path[0];
return Target.FromCell(world, path[0]);
}
}
}

View File

@@ -391,11 +391,12 @@ namespace OpenRA.Mods.Common.Traits
self.CancelActivity();
CPos? loc;
if (order.TargetLocation != CPos.Zero)
CPos loc;
if (order.Target.Type != TargetType.Invalid)
{
// Find the nearest claimable cell to the order location (useful for group-select harvest):
loc = mobile.NearestCell(order.TargetLocation, p => mobile.CanEnterCell(p) && claimLayer.TryClaimCell(self, p), 1, 6);
var cell = self.World.Map.CellContaining(order.Target.CenterPosition);
loc = mobile.NearestCell(cell, p => mobile.CanEnterCell(p) && claimLayer.TryClaimCell(self, p), 1, 6);
}
else
{
@@ -403,7 +404,7 @@ namespace OpenRA.Mods.Common.Traits
loc = self.Location;
}
self.SetTargetLine(Target.FromCell(self.World, loc.Value), Color.Red);
self.SetTargetLine(Target.FromCell(self.World, loc), Color.Red);
// FindResources takes care of calling INotifyHarvesterAction
self.QueueActivity(new FindResources(self));