Turn Actor.GetCurrentActivity into a property
This commit is contained in:
@@ -46,7 +46,7 @@ namespace OpenRA.Activities
|
|||||||
{
|
{
|
||||||
public static IEnumerable<Target> GetTargetQueue(this Actor self)
|
public static IEnumerable<Target> GetTargetQueue(this Actor self)
|
||||||
{
|
{
|
||||||
return self.GetCurrentActivity()
|
return self.CurrentActivity
|
||||||
.Iterate(u => u.NextActivity)
|
.Iterate(u => u.NextActivity)
|
||||||
.TakeWhile(u => u != null)
|
.TakeWhile(u => u != null)
|
||||||
.SelectMany(u => u.GetTargets(self));
|
.SelectMany(u => u.GetTargets(self));
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ namespace OpenRA
|
|||||||
public bool IsInWorld { get; internal set; }
|
public bool IsInWorld { get; internal set; }
|
||||||
public bool Disposed { get; private set; }
|
public bool Disposed { get; private set; }
|
||||||
|
|
||||||
Activity currentActivity;
|
public Activity CurrentActivity { get; private set; }
|
||||||
|
|
||||||
public Group Group;
|
public Group Group;
|
||||||
public int Generation;
|
public int Generation;
|
||||||
@@ -54,7 +54,7 @@ namespace OpenRA
|
|||||||
public IOccupySpace OccupiesSpace { get; private set; }
|
public IOccupySpace OccupiesSpace { get; private set; }
|
||||||
public ITargetable[] Targetables { get; private set; }
|
public ITargetable[] Targetables { get; private set; }
|
||||||
|
|
||||||
public bool IsIdle { get { return currentActivity == null; } }
|
public bool IsIdle { get { return CurrentActivity == null; } }
|
||||||
public bool IsDead { get { return Disposed || (health != null && health.IsDead); } }
|
public bool IsDead { get { return Disposed || (health != null && health.IsDead); } }
|
||||||
|
|
||||||
public CPos Location { get { return OccupiesSpace.TopLeft; } }
|
public CPos Location { get { return OccupiesSpace.TopLeft; } }
|
||||||
@@ -161,7 +161,7 @@ namespace OpenRA
|
|||||||
public void Tick()
|
public void Tick()
|
||||||
{
|
{
|
||||||
var wasIdle = IsIdle;
|
var wasIdle = IsIdle;
|
||||||
currentActivity = ActivityUtils.RunActivity(this, currentActivity);
|
CurrentActivity = ActivityUtils.RunActivity(this, CurrentActivity);
|
||||||
|
|
||||||
if (!wasIdle && IsIdle)
|
if (!wasIdle && IsIdle)
|
||||||
foreach (var n in TraitsImplementing<INotifyBecomingIdle>())
|
foreach (var n in TraitsImplementing<INotifyBecomingIdle>())
|
||||||
@@ -200,21 +200,16 @@ namespace OpenRA
|
|||||||
|
|
||||||
public void QueueActivity(Activity nextActivity)
|
public void QueueActivity(Activity nextActivity)
|
||||||
{
|
{
|
||||||
if (currentActivity == null)
|
if (CurrentActivity == null)
|
||||||
currentActivity = nextActivity;
|
CurrentActivity = nextActivity;
|
||||||
else
|
else
|
||||||
currentActivity.Queue(nextActivity);
|
CurrentActivity.Queue(nextActivity);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void CancelActivity()
|
public void CancelActivity()
|
||||||
{
|
{
|
||||||
if (currentActivity != null)
|
if (CurrentActivity != null)
|
||||||
currentActivity.Cancel(this);
|
CurrentActivity.Cancel(this);
|
||||||
}
|
|
||||||
|
|
||||||
public Activity GetCurrentActivity()
|
|
||||||
{
|
|
||||||
return currentActivity;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override int GetHashCode()
|
public override int GetHashCode()
|
||||||
|
|||||||
@@ -794,8 +794,7 @@ namespace OpenRA.Mods.Common.AI
|
|||||||
|
|
||||||
if (!harvester.IsIdle)
|
if (!harvester.IsIdle)
|
||||||
{
|
{
|
||||||
var act = harvester.GetCurrentActivity();
|
var act = harvester.CurrentActivity;
|
||||||
|
|
||||||
if (act.NextActivity == null || act.NextActivity.GetType() != typeof(FindResources))
|
if (act.NextActivity == null || act.NextActivity.GetType() != typeof(FindResources))
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -125,10 +125,10 @@ namespace OpenRA.Mods.Common.AI
|
|||||||
|
|
||||||
protected static bool IsRearm(Actor a)
|
protected static bool IsRearm(Actor a)
|
||||||
{
|
{
|
||||||
var activity = a.GetCurrentActivity();
|
if (a.IsIdle)
|
||||||
if (activity == null)
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
var activity = a.CurrentActivity;
|
||||||
var type = activity.GetType();
|
var type = activity.GetType();
|
||||||
if (type == typeof(Rearm) || type == typeof(ResupplyAircraft))
|
if (type == typeof(Rearm) || type == typeof(ResupplyAircraft))
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -44,15 +44,16 @@ namespace OpenRA.Mods.Common.AI
|
|||||||
if (a.IsIdle)
|
if (a.IsIdle)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
var type = a.GetCurrentActivity().GetType();
|
var activity = a.CurrentActivity;
|
||||||
|
var type = activity.GetType();
|
||||||
if (type == typeof(Attack) || type == typeof(FlyAttack))
|
if (type == typeof(Attack) || type == typeof(FlyAttack))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
var next = a.GetCurrentActivity().NextActivity;
|
var next = activity.NextActivity;
|
||||||
if (next == null)
|
if (next == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
var nextType = a.GetCurrentActivity().NextActivity.GetType();
|
var nextType = next.GetType();
|
||||||
if (nextType == typeof(Attack) || nextType == typeof(FlyAttack))
|
if (nextType == typeof(Attack) || nextType == typeof(FlyAttack))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
|||||||
@@ -237,7 +237,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
void INotifyBlockingMove.OnNotifyBlockingMove(Actor self, Actor blocking)
|
void INotifyBlockingMove.OnNotifyBlockingMove(Actor self, Actor blocking)
|
||||||
{
|
{
|
||||||
// I'm blocking someone else from moving to my location:
|
// I'm blocking someone else from moving to my location:
|
||||||
var act = self.GetCurrentActivity();
|
var act = self.CurrentActivity;
|
||||||
|
|
||||||
// If I'm just waiting around then get out of the way:
|
// If I'm just waiting around then get out of the way:
|
||||||
if (act is Wait)
|
if (act is Wait)
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ namespace OpenRA.Mods.Common.Traits.Render
|
|||||||
yield return new TextRenderable(font, self.CenterPosition - offset, 0, color, tagString);
|
yield return new TextRenderable(font, self.CenterPosition - offset, 0, color, tagString);
|
||||||
|
|
||||||
// Get the actor's activity.
|
// Get the actor's activity.
|
||||||
var activity = self.GetCurrentActivity();
|
var activity = self.CurrentActivity;
|
||||||
if (activity != null)
|
if (activity != null)
|
||||||
{
|
{
|
||||||
var activityName = activity.GetType().ToString().Split('.').Last();
|
var activityName = activity.GetType().ToString().Split('.').Last();
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ namespace OpenRA.Mods.Common.Traits.Render
|
|||||||
if (!self.IsInWorld || self.IsDead)
|
if (!self.IsInWorld || self.IsDead)
|
||||||
yield break;
|
yield break;
|
||||||
|
|
||||||
var activity = self.GetCurrentActivity();
|
var activity = self.CurrentActivity;
|
||||||
if (activity != null)
|
if (activity != null)
|
||||||
{
|
{
|
||||||
var targets = activity.GetTargets(self);
|
var targets = activity.GetTargets(self);
|
||||||
|
|||||||
Reference in New Issue
Block a user