@using Sandbox.UI; @using Sandbox; @using MenuProject.Settings; @namespace MenuProject.Settings @inherits Panel @page "/settings/keybinds"
@{ var inputs = Game.InGame ? Input.GetActions() : MenuUtility.Input.GetCommonInputs(); var groups = inputs.GroupBy(x => x.GroupName); } @foreach ( var group in groups ) {

@group.Key

@foreach ( InputAction button in group ) {
@(button.Title ?? button.Name)
} }
@code { public string BindGroup => Game.InGame ? Game.Ident : "common"; public void OnCancel() { foreach ( var kb in Descendants.OfType() ) { kb.Cancel(); } } public void OnRestore() { MenuUtility.Input.ResetBinds( BindGroup ); MenuUtility.Input.SaveBinds( BindGroup ); } public void OnApply() { foreach ( var kb in Descendants.OfType() ) { kb.Apply(); } MenuUtility.Input.SaveBinds( BindGroup ); } protected override int BuildHash() { return HashCode.Combine( BindGroup ); } }