31 lines
976 B
C#
31 lines
976 B
C#
using MfGames.Gallium;
|
|
|
|
namespace MfGames.Nitride.Temporal.Schedules;
|
|
|
|
/// <summary>
|
|
/// A schedule is a specific schedule that can be applied to an entity to make
|
|
/// changes based on components.
|
|
/// </summary>
|
|
public interface ISchedule
|
|
{
|
|
/// <summary>
|
|
/// Applies the schedule changes to the entity and returns the results.
|
|
/// </summary>
|
|
/// <param name="entity">The entity to update.</param>
|
|
/// <param name="timeService">The service to use for time.</param>
|
|
/// <returns>
|
|
/// The modified entity, if the changes can be applied, otherwise the same
|
|
/// entity.
|
|
/// </returns>
|
|
Entity Apply(
|
|
Entity entity,
|
|
TimeService timeService);
|
|
|
|
/// <summary>
|
|
/// Determines if a schedule applies to a given entity.
|
|
/// </summary>
|
|
/// <param name="entity">The entity to test.</param>
|
|
/// <returns>True if the schedule applies to the given entity, otherwise false.</returns>
|
|
bool CanApply(Entity entity);
|
|
}
|