Remove Order.TargetLocation from Harvester.
This commit is contained in:
@@ -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]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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));
|
||||||
|
|||||||
Reference in New Issue
Block a user