GetTargetQueue -> GetTargets + Exts
This commit is contained in:
@@ -149,5 +149,10 @@ namespace OpenRA
|
|||||||
// this is probably a shockingly-slow way to do this, but it's concise.
|
// this is probably a shockingly-slow way to do this, but it's concise.
|
||||||
return xs.Except(ys).Concat(ys.Except(xs));
|
return xs.Except(ys).Concat(ys.Except(xs));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static IEnumerable<T> Iterate<T>( this T t, Func<T,T> f )
|
||||||
|
{
|
||||||
|
for(;;) { yield return t; t = f(t); }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,10 +32,19 @@ namespace OpenRA.Traits.Activities
|
|||||||
else
|
else
|
||||||
NextActivity = activity;
|
NextActivity = activity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual IEnumerable<Target> GetTargetQueue( Actor self )
|
public virtual IEnumerable<Target> GetTargets( Actor self )
|
||||||
{
|
{
|
||||||
yield break;
|
yield break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class ActivityExts
|
||||||
|
{
|
||||||
|
public static IEnumerable<Target> GetTargetQueue( this Actor self )
|
||||||
|
{
|
||||||
|
return self.GetCurrentActivity().Iterate( u => u.NextActivity ).TakeWhile( u => u != null )
|
||||||
|
.SelectMany( u => u.GetTargets( self ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -237,7 +237,7 @@ namespace OpenRA.Traits
|
|||||||
if (activity != null && mobile != null)
|
if (activity != null && mobile != null)
|
||||||
{
|
{
|
||||||
var alt = new float2(0, -mobile.Altitude);
|
var alt = new float2(0, -mobile.Altitude);
|
||||||
var targets = activity.GetTargetQueue(self);
|
var targets = activity.GetTargets(self);
|
||||||
var start = self.CenterLocation + alt;
|
var start = self.CenterLocation + alt;
|
||||||
|
|
||||||
var c = Color.Green;
|
var c = Color.Green;
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ namespace OpenRA.Mods.Cnc
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override IEnumerable<Target> GetTargetQueue( Actor self )
|
public override IEnumerable<Target> GetTargets( Actor self )
|
||||||
{
|
{
|
||||||
yield return Target.FromActor(proc);
|
yield return Target.FromActor(proc);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,16 +41,5 @@ namespace OpenRA.Mods.RA.Activities
|
|||||||
a = null;
|
a = null;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override IEnumerable<Target> GetTargetQueue( Actor self )
|
|
||||||
{
|
|
||||||
if (NextActivity != null)
|
|
||||||
foreach (var target in NextActivity.GetTargetQueue(self))
|
|
||||||
{
|
|
||||||
yield return target;
|
|
||||||
}
|
|
||||||
|
|
||||||
yield break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,16 +54,5 @@ namespace OpenRA.Mods.RA.Activities
|
|||||||
// TODO: allow canceling of deliver orders?
|
// TODO: allow canceling of deliver orders?
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override IEnumerable<Target> GetTargetQueue( Actor self )
|
|
||||||
{
|
|
||||||
if (NextActivity != null)
|
|
||||||
foreach (var target in NextActivity.GetTargetQueue(self))
|
|
||||||
{
|
|
||||||
yield return target;
|
|
||||||
}
|
|
||||||
|
|
||||||
yield break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ namespace OpenRA.Mods.RA.Activities
|
|||||||
self.QueueActivity(new Harvest());
|
self.QueueActivity(new Harvest());
|
||||||
}
|
}
|
||||||
|
|
||||||
public override IEnumerable<Target> GetTargetQueue( Actor self )
|
public override IEnumerable<Target> GetTargets( Actor self )
|
||||||
{
|
{
|
||||||
yield return Target.FromPos(self.Location);
|
yield return Target.FromPos(self.Location);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,16 +43,5 @@ namespace OpenRA.Mods.RA.Activities
|
|||||||
activity.Queue(NextActivity);
|
activity.Queue(NextActivity);
|
||||||
NextActivity = activity;
|
NextActivity = activity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override IEnumerable<Target> GetTargetQueue( Actor self )
|
|
||||||
{
|
|
||||||
if (NextActivity != null)
|
|
||||||
foreach (var target in NextActivity.GetTargetQueue(self))
|
|
||||||
{
|
|
||||||
yield return target;
|
|
||||||
}
|
|
||||||
|
|
||||||
yield break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ namespace OpenRA.Mods.RA
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override IEnumerable<Target> GetTargetQueue( Actor self )
|
public override IEnumerable<Target> GetTargets( Actor self )
|
||||||
{
|
{
|
||||||
yield return Target.FromActor(proc);
|
yield return Target.FromActor(proc);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ namespace OpenRA.Mods.RA.Air
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override IEnumerable<Target> GetTargetQueue( Actor self )
|
public override IEnumerable<Target> GetTargets( Actor self )
|
||||||
{
|
{
|
||||||
yield return Target.FromPos(Pos);
|
yield return Target.FromPos(Pos);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ namespace OpenRA.Mods.RA.Air
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override IEnumerable<Target> GetTargetQueue( Actor self )
|
public override IEnumerable<Target> GetTargets( Actor self )
|
||||||
{
|
{
|
||||||
yield return Target.FromPos(Dest);
|
yield return Target.FromPos(Dest);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ namespace OpenRA.Mods.RA.Move
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override IEnumerable<Target> GetTargetQueue( Actor self )
|
public override IEnumerable<Target> GetTargets( Actor self )
|
||||||
{
|
{
|
||||||
yield return Target.FromPos(endLocation);
|
yield return Target.FromPos(endLocation);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -239,7 +239,7 @@ namespace OpenRA.Mods.RA.Move
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override IEnumerable<Target> GetTargetQueue( Actor self )
|
public override IEnumerable<Target> GetTargets( Actor self )
|
||||||
{
|
{
|
||||||
if( path != null )
|
if( path != null )
|
||||||
return Enumerable.Reverse(path).Select( c => Target.FromCell(c) );
|
return Enumerable.Reverse(path).Select( c => Target.FromCell(c) );
|
||||||
@@ -315,9 +315,9 @@ namespace OpenRA.Mods.RA.Move
|
|||||||
|
|
||||||
protected abstract MovePart OnComplete( Actor self, Mobile mobile, Move parent );
|
protected abstract MovePart OnComplete( Actor self, Mobile mobile, Move parent );
|
||||||
|
|
||||||
public override IEnumerable<Target> GetTargetQueue( Actor self )
|
public override IEnumerable<Target> GetTargets( Actor self )
|
||||||
{
|
{
|
||||||
return move.GetTargetQueue(self);
|
return move.GetTargets(self);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user