protected void ApplyColorToBinding(KeyboardCustom grid, string bindingName, Color color) { if (!Game.BindingPreset.Bindings.TryGetValue(bindingName, out var binding)) { return; } foreach (var bps in new[] { binding.Primary, binding.Secondary }) { if (bps.Device != Device.Keyboard) { continue; } if (!KeyMappings.TryGetKey(bps.Key, Game.BindingPreset.KeyboardLayout, out var key, NativeMethods)) { continue; } if (key == 0) { continue; } if (!bps.Modifiers.Equals(Game.PressedModifiers)) { continue; } grid[key] = color; color = color.Transform(Colors.SecondaryBindingBrightness); } }
private static Key GetKey(BindingPreset binds, string binding) { var bps = binds.Bindings[binding].Primary; return(KeyMappings.TryGetKey(bps.Key, "en-US", false, out var key, new NativeMethodsStub()) ? key : 0); }