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