internal DataEventListener Whenever <T>(string entityName, Action <T> onAdded, Action <T> onRemoved) where T : BaseData { DataEventListenerImpl dataEventListenerImpl = (DataEventListenerImpl)When(entityName, onAdded); ListenerKey listenerKey = default(ListenerKey); listenerKey.EntityName = entityName; listenerKey.Type = typeof(T); ListenerKey key = listenerKey; if (dataEventListenerImpl.AddedHandler == null) { dataEventListenerImpl.AddedHandler = createComponentAddedHandler(key, onAdded, onlyOnce: false); } else { dataEventListenerImpl.AddedHandler.onlyOnce = false; } dataEventListenerImpl.RemovedHandler = createComponentRemovedHandler(key, onRemoved); return(dataEventListenerImpl); }
internal DataEventListener When <T>(string entityName, Action <T> onAdded) where T : BaseData { DataEventListenerImpl dataEventListenerImpl = new DataEventListenerImpl(); dataEventListenerImpl.ListenerCollection = this; dataEventListenerImpl.Key.EntityName = entityName; dataEventListenerImpl.Key.Type = typeof(T); DataEventListenerImpl dataEventListenerImpl2 = dataEventListenerImpl; DataEntityHandle dataEntityHandle = dataEntityCollection.FindEntityByName(entityName); if (!dataEntityHandle.IsNull && dataEntityCollection.HasComponent <T>(dataEntityHandle)) { onAdded(dataEntityCollection.GetComponent <T>(dataEntityHandle)); } else { ListenerKey listenerKey = default(ListenerKey); listenerKey.EntityName = entityName; listenerKey.Type = typeof(T); ListenerKey key = listenerKey; dataEventListenerImpl2.AddedHandler = createComponentAddedHandler(key, onAdded, onlyOnce: true); } return(dataEventListenerImpl2); }