private void InitializeButtonBindingV2(object settings, PropertyInfo prop) { if (!(prop.GetValue(settings) is ButtonBinding binding)) { binding = new ButtonBinding(); DefaultButtonBindingAttribute defaults = prop.GetCustomAttribute <DefaultButtonBindingAttribute>(); if (defaults != null) { if (defaults.Button != 0) { binding.Binding.Add(defaults.Button); } if (defaults.Key != 0) { binding.Binding.Add(defaults.Key); } } prop.SetValue(settings, binding); } binding.Button = (patch_VirtualButton_InputV1) new VirtualButton(binding.Binding, Input.Gamepad, 0.08f, 0.2f); ((patch_VirtualButton_InputV2)(VirtualButton)binding.Button).AutoConsumeBuffer = true; }
public ButtonBindingEntry(string name, bool supportsMultipleBindings, ButtonBinding binding, DefaultButtonBindingAttribute defaults) { Name = name; SupportsMultipleBindings = supportsMultipleBindings; Binding = binding; Defaults = defaults; }
private void InitializeButtonBindingV1(object settings, PropertyInfo prop) { if (!(prop.GetValue(settings) is ButtonBinding binding)) { binding = new ButtonBinding(); DefaultButtonBindingAttribute defaults = prop.GetCustomAttribute <DefaultButtonBindingAttribute>(); if (defaults != null) { if (defaults.Button != 0) { binding.Buttons.Add(defaults.Button); } if (defaults.Key != 0) { binding.Keys.Add(defaults.Key); } } prop.SetValue(settings, binding); } patch_VirtualButton_InputV1 vbutton = new patch_VirtualButton_InputV1(); foreach (Keys key in binding.Keys) { vbutton.Nodes.Add(new patch_VirtualButton_InputV1.KeyboardKey(key)); } foreach (Buttons button_ in binding.Buttons) { Buttons button = button_; if ((button & Buttons.LeftTrigger) == Buttons.LeftTrigger) { vbutton.Nodes.Add(new patch_VirtualButton_InputV1.PadLeftTrigger(Input.Gamepad, 0.25f)); button &= ~Buttons.LeftTrigger; } if ((button & Buttons.RightTrigger) == Buttons.RightTrigger) { vbutton.Nodes.Add(new patch_VirtualButton_InputV1.PadLeftTrigger(Input.Gamepad, 0.25f)); button &= ~Buttons.RightTrigger; } if (button != 0) { vbutton.Nodes.Add(new patch_VirtualButton_InputV1.PadButton(Input.Gamepad, button)); } } binding.Button = vbutton; }
public ButtonBindingEntry(string name, ButtonBinding binding, DefaultButtonBindingAttribute defaults) { Name = name; Binding = binding; Defaults = defaults; }
public ButtonBindingEntry(ButtonBinding binding, DefaultButtonBindingAttribute defaults) { Binding = binding; Defaults = defaults; }
public virtual void OnInputInitialize() { if (SettingsType == null) { return; } object settings = _Settings; if (settings == null) { return; } foreach (PropertyInfo prop in SettingsType.GetProperties()) { if (!prop.CanRead) { continue; } if (typeof(ButtonBinding).IsAssignableFrom(prop.PropertyType)) { if (!(prop.GetValue(settings) is ButtonBinding binding)) { binding = new ButtonBinding(); DefaultButtonBindingAttribute defaults = prop.GetCustomAttribute <DefaultButtonBindingAttribute>(); if (defaults != null) { if (defaults.Button != 0) { binding.Buttons.Add(defaults.Button); } if (defaults.Key != 0) { binding.Keys.Add(defaults.Key); } } prop.SetValue(settings, binding); } VirtualButton vbutton = new VirtualButton(); foreach (Keys key in binding.Keys) { vbutton.Nodes.Add(new VirtualButton.KeyboardKey(key)); } foreach (Buttons button_ in binding.Buttons) { Buttons button = button_; if ((button & Buttons.LeftTrigger) == Buttons.LeftTrigger) { vbutton.Nodes.Add(new VirtualButton.PadLeftTrigger(Input.Gamepad, 0.25f)); button &= ~Buttons.LeftTrigger; } if ((button & Buttons.RightTrigger) == Buttons.RightTrigger) { vbutton.Nodes.Add(new VirtualButton.PadLeftTrigger(Input.Gamepad, 0.25f)); button &= ~Buttons.RightTrigger; } if (button != 0) { vbutton.Nodes.Add(new VirtualButton.PadButton(Input.Gamepad, button)); } } binding.Button = vbutton; } else if (false) { // TODO: JoystickBindings } } }