batch-process INotifyIdle, and add PerfSample wrappers for tick_idle and tick_activities
This commit is contained in:
@@ -89,10 +89,6 @@ namespace OpenRA
|
|||||||
|
|
||||||
public void Tick()
|
public void Tick()
|
||||||
{
|
{
|
||||||
if (currentActivity == null)
|
|
||||||
foreach (var ni in TraitsImplementing<INotifyIdle>())
|
|
||||||
ni.TickIdle(this);
|
|
||||||
|
|
||||||
currentActivity = Util.RunActivity( this, currentActivity );
|
currentActivity = Util.RunActivity( this, currentActivity );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ using OpenRA.FileFormats;
|
|||||||
using OpenRA.Network;
|
using OpenRA.Network;
|
||||||
using OpenRA.Orders;
|
using OpenRA.Orders;
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
|
using OpenRA.Support;
|
||||||
using XRandom = OpenRA.Thirdparty.Random;
|
using XRandom = OpenRA.Thirdparty.Random;
|
||||||
|
|
||||||
namespace OpenRA
|
namespace OpenRA
|
||||||
@@ -157,7 +158,15 @@ namespace OpenRA
|
|||||||
// Todo: Expose this as an order so it can be synced
|
// Todo: Expose this as an order so it can be synced
|
||||||
if (!DisableTick)
|
if (!DisableTick)
|
||||||
{
|
{
|
||||||
actors.Do( x => x.Tick() );
|
using( new PerfSample("tick_idle") )
|
||||||
|
foreach( var ni in ActorsWithTrait<INotifyIdle>() )
|
||||||
|
if (ni.Actor.IsIdle)
|
||||||
|
ni.Trait.TickIdle(ni.Actor);
|
||||||
|
|
||||||
|
using( new PerfSample("tick_activities") )
|
||||||
|
foreach( var a in actors )
|
||||||
|
a.Tick();
|
||||||
|
|
||||||
ActorsWithTrait<ITick>().DoTimed( x =>
|
ActorsWithTrait<ITick>().DoTimed( x =>
|
||||||
{
|
{
|
||||||
x.Trait.Tick( x.Actor );
|
x.Trait.Tick( x.Actor );
|
||||||
|
|||||||
Reference in New Issue
Block a user