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: // Tell the idle harvester to quit slacking:
var newSafeResourcePatch = FindNextResource(h.Key, h.Value); 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)); 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 // 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 => Func<CPos, bool> isValidResource = cell =>
domainIndex.IsPassable(actor.Location, cell, harv.LocomotorInfo) && domainIndex.IsPassable(actor.Location, cell, harv.LocomotorInfo) &&
@@ -153,9 +153,9 @@ namespace OpenRA.Mods.Common.Traits
.FromPoint(actor.Location)); .FromPoint(actor.Location));
if (path.Count == 0) 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(); self.CancelActivity();
CPos? loc; CPos loc;
if (order.TargetLocation != CPos.Zero) if (order.Target.Type != TargetType.Invalid)
{ {
// Find the nearest claimable cell to the order location (useful for group-select harvest): // 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 else
{ {
@@ -403,7 +404,7 @@ namespace OpenRA.Mods.Common.Traits
loc = self.Location; 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 // FindResources takes care of calling INotifyHarvesterAction
self.QueueActivity(new FindResources(self)); self.QueueActivity(new FindResources(self));