コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }