using System; using EcsRx.Entities; using EcsRx.Groups.Observable; using EcsRx.Systems; namespace EcsRx.Plugins.ReactiveSystems.Systems { /// /// React To LookupGroup systems are the more common ECS style system, /// as they batch handle all applicable entities at once. This means /// you do not react to individual entities and instead react at the /// group level, be it every frame or time period. /// /// /// This is the most common use case system, as it aligns with common /// ECS paradigms, i.e a system which triggers every update and runs /// on all applicable entities. If you need more control over individual /// entity reactions etc then look at ReactToEntity/Data systems. /// public interface IReactToGroupSystem : ISystem { /// /// Dictates when the group should be processed /// /// The observable group to process /// The observable chain containing the group /// /// In most use cases you probably want to run this every update/interval /// IObservable ReactToGroup(IObservableGroup observableGroup); /// /// The processor for the entity /// /// The entity to process void Process(IEntity entity); } }