From f4ae9799486b42fb4048afcff1e46cfbb44ceca7 Mon Sep 17 00:00:00 2001 From: Cooper Knaak Date: Sat, 25 Nov 2023 20:36:51 -0800 Subject: [PATCH] Add support for clickable joysticks on game controllers, L3 and R3. --- .../Game Controllers/MFi/MFiGameController.swift | 13 +++++++++---- .../Model/Inputs/StandardGameControllerInput.swift | 6 ++++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/DeltaCore/Game Controllers/MFi/MFiGameController.swift b/DeltaCore/Game Controllers/MFi/MFiGameController.swift index 07be168..b47996d 100644 --- a/DeltaCore/Game Controllers/MFi/MFiGameController.swift +++ b/DeltaCore/Game Controllers/MFi/MFiGameController.swift @@ -44,12 +44,14 @@ extension MFiGameController case leftThumbstickDown case leftThumbstickLeft case leftThumbstickRight - + case leftThumbstickButton + case rightThumbstickUp case rightThumbstickDown case rightThumbstickLeft case rightThumbstickRight - + case rightThumbstickButton + case a case b case x @@ -177,12 +179,15 @@ public class MFiGameController: NSObject, GameController profile.buttons[GCInputButtonB]?.pressedChangedHandler = { (button, value, pressed) in inputChangedHandler(.b, pressed) } profile.buttons[GCInputButtonX]?.pressedChangedHandler = { (button, value, pressed) in inputChangedHandler(.x, pressed) } profile.buttons[GCInputButtonY]?.pressedChangedHandler = { (button, value, pressed) in inputChangedHandler(.y, pressed) } - + profile.buttons[GCInputLeftShoulder]?.pressedChangedHandler = { (button, value, pressed) in inputChangedHandler(.leftShoulder, pressed) } profile.buttons[GCInputLeftTrigger]?.pressedChangedHandler = { (button, value, pressed) in inputChangedHandler(.leftTrigger, pressed) } profile.buttons[GCInputRightShoulder]?.pressedChangedHandler = { (button, value, pressed) in inputChangedHandler(.rightShoulder, pressed) } profile.buttons[GCInputRightTrigger]?.pressedChangedHandler = { (button, value, pressed) in inputChangedHandler(.rightTrigger, pressed) } - + + profile.buttons[GCInputLeftThumbstickButton]?.pressedChangedHandler = { (button, value, pressed) in inputChangedHandler(.leftThumbstickButton, pressed) } + profile.buttons[GCInputRightThumbstickButton]?.pressedChangedHandler = { (button, value, pressed) in inputChangedHandler(.rightThumbstickButton, pressed) } + // Menu = Primary menu button (Start/+/Menu) let menuButton = profile.buttons[GCInputButtonMenu] menuButton?.pressedChangedHandler = { (button, value, pressed) in inputChangedHandler(.menu, pressed) } diff --git a/DeltaCore/Model/Inputs/StandardGameControllerInput.swift b/DeltaCore/Model/Inputs/StandardGameControllerInput.swift index 0fb0a97..edf1d6c 100644 --- a/DeltaCore/Model/Inputs/StandardGameControllerInput.swift +++ b/DeltaCore/Model/Inputs/StandardGameControllerInput.swift @@ -26,12 +26,14 @@ public enum StandardGameControllerInput: String, Codable case leftThumbstickDown case leftThumbstickLeft case leftThumbstickRight - + case leftThumbstickButton + case rightThumbstickUp case rightThumbstickDown case rightThumbstickLeft case rightThumbstickRight - + case rightThumbstickButton + case a case b case x