public SystemExecutor( IPoolManager poolManager, IEventSystem eventSystem, IEntityReactionSystemHandler entityReactionSystemHandler, IGroupReactionSystemHandler groupReactionSystemHandler, ISetupSystemHandler setupSystemHandler, IInteractReactionSystemHandler interactReactionSystemHandler, IManualSystemHandler manualSystemHandler) { PoolManager = poolManager; EventSystem = eventSystem; EntityReactionSystemHandler = entityReactionSystemHandler; GroupReactionSystemHandler = groupReactionSystemHandler; SetupSystemHandler = setupSystemHandler; InteractReactionSystemHandler = interactReactionSystemHandler; ManualSystemHandler = manualSystemHandler; var addEntitySubscription = EventSystem.Receive <EntityAddedEvent>().Subscribe(OnEntityAddedToPool); var removeEntitySubscription = EventSystem.Receive <EntityRemovedEvent>().Subscribe(OnEntityRemovedFromPool); var addComponentSubscription = EventSystem.Receive <ComponentAddedEvent>().Subscribe(OnEntityComponentAdded); var removeComponentSubscription = EventSystem.Receive <ComponentRemovedEvent>().Subscribe(OnEntityComponentRemoved); _systems = new List <ISystem>(); _entitySubscribtionsOnSystems = new Dictionary <ISystem, Dictionary <IEntity, SubscriptionToken> >(); _nonEntitySubscriptions = new Dictionary <ISystem, SubscriptionToken>(); _eventSubscriptions = new List <IDisposable> { addEntitySubscription, removeEntitySubscription, addComponentSubscription, removeComponentSubscription }; }
public SystemHandlerManager( IEntityReactionSystemHandler entityReactionSystemHandler, IGroupReactionSystemHandler groupReactionSystemHandler, ISetupSystemHandler setupSystemHandler, IInteractReactionSystemHandler interactReactionSystemHandler, IManualSystemHandler manualSystemHandler) { EntityReactionSystemHandler = entityReactionSystemHandler; GroupReactionSystemHandler = groupReactionSystemHandler; SetupSystemHandler = setupSystemHandler; InteractReactionSystemHandler = interactReactionSystemHandler; ManualSystemHandler = manualSystemHandler; }