public bool IsValueChanged() { bool isAllowed = modifiers == null || modifiers.Length == 0 || KCombo.IsSatisfiedHeld(modifiers); if (!isAllowed) { if (!stickyInput) { cachedValue = 0; } } else { cachedValue = filteredValue ? GetValue() : GetValueRaw(); } return(cachedValue != knownValue); }