Example #1
0
    public void UnregisterMovementStateChanged(int instance_id, Action <Transform, bool> callback)
    {
        MovementStateChangedEntry value = default(MovementStateChangedEntry);

        if (movementStateChangedHandlers.TryGetValue(instance_id, out value))
        {
            value.handlers.Remove(callback);
            if (value.handlers.Count == 0)
            {
                movementStateChangedHandlers.Remove(instance_id);
            }
        }
    }
Example #2
0
    public void RegisterMovementStateChanged(Transform transform, Action <Transform, bool> handler)
    {
        int instanceID = transform.GetInstanceID();
        MovementStateChangedEntry value = default(MovementStateChangedEntry);

        if (!movementStateChangedHandlers.TryGetValue(instanceID, out value))
        {
            value           = default(MovementStateChangedEntry);
            value.handlers  = new List <Action <Transform, bool> >();
            value.transform = transform;
        }
        value.handlers.Add(handler);
        movementStateChangedHandlers[instanceID] = value;
    }
Example #3
0
    private void RunMovementStateChangedCallbacks(int instance_id, bool state)
    {
        MovementStateChangedEntry value = default(MovementStateChangedEntry);

        if (movementStateChangedHandlers.TryGetValue(instance_id, out value))
        {
            moveChangedCallbacksToRun.Clear();
            moveChangedCallbacksToRun.AddRange(value.handlers);
            foreach (Action <Transform, bool> item in moveChangedCallbacksToRun)
            {
                if (value.handlers.Contains(item))
                {
                    item(value.transform, state);
                }
            }
        }
    }