Example #1
0
    private void OnToggleChange(Toggle toggle, int bitIndex)
    {
        if (avoidToggleChange)
        {
            return;
        }

        if (toggle.isOn)
        {
            newFilter.Set(bitIndex);
        }
        else
        {
            newFilter.Remove(bitIndex);
        }

        if (lastToggle == toggle && doubleClickTime >= Time.time)
        {
            avoidToggleChange = true;
            if (newFilter.IsOnlySet(bitIndex))
            {
                foreach (var t in toggles)
                {
                    t.isOn = true;
                }
                newFilter.ResetToDefault();
            }
            else
            {
                foreach (var t in toggles)
                {
                    t.isOn = false;
                }
                toggle.isOn = true;
                newFilter.RemoveAll();
                newFilter.Set(bitIndex);
            }
            avoidToggleChange = false;
        }

        lastToggle      = toggle;
        doubleClickTime = Time.time + 0.25f;

        UpdateSitesMask();
    }