public void Unsubscribe(int hash, Action <object> handler)
    {
        int num = 0;

        while (true)
        {
            if (num >= entries.size)
            {
                return;
            }
            Entry entry = entries[num];
            if (entry.hash == hash)
            {
                Entry entry2 = entries[num];
                if (entry2.handler == handler)
                {
                    break;
                }
            }
            num++;
        }
        if (currentlyTriggering == 0)
        {
            entries.RemoveAt(num);
        }
        else
        {
            dirty = true;
            Entry value = entries[num];
            value.handler = null;
            entries[num]  = value;
        }
    }
    public void UnregisterEvent(GameObject target, int eventName, Action <object> handler)
    {
        int num = 0;

        while (true)
        {
            if (num >= subscribedEvents.size)
            {
                return;
            }
            SubscribedEntry subscribedEntry = subscribedEvents[num];
            if (subscribedEntry.hash == eventName)
            {
                SubscribedEntry subscribedEntry2 = subscribedEvents[num];
                if (subscribedEntry2.handler == handler)
                {
                    SubscribedEntry subscribedEntry3 = subscribedEvents[num];
                    if ((UnityEngine.Object)subscribedEntry3.go == (UnityEngine.Object)target)
                    {
                        break;
                    }
                }
            }
            num++;
        }
        subscribedEvents.RemoveAt(num);
    }
Beispiel #3
0
        public void Remove(AttributeModifier modifier)
        {
            int num = 0;

            while (true)
            {
                if (num >= Modifiers.Count)
                {
                    return;
                }
                if (Modifiers[num] == modifier)
                {
                    break;
                }
                num++;
            }
            Modifiers.RemoveAt(num);
            if (OnDirty != null)
            {
                OnDirty();
            }
        }