public void UpdateGamepad(GamepadPoll gamepad) { SetShading("Mod", IsModKeyActive); if (IsModKeyActive) { SetShading("X", gamepad.GetButton(Gamepad.Button.X)); SetShading("Y", gamepad.GetButton(Gamepad.Button.Y)); SetShading("B", gamepad.GetButton(Gamepad.Button.B)); SetColor("X", Color.white); SetColor("Y", Color.white); SetColor("B", Color.white); } else { SetShading("X", false); SetShading("Y", false); SetShading("B", false); SetColor("X", Color.gray); SetColor("Y", Color.gray); SetColor("B", Color.gray); } }
public void SetSelection(LevelBuilderAsset asset, GamepadPoll gamepad) { foreach (var child in gameObject.GetComponentsInChildren <LevelEditorSpawnButtonGroup>()) { if (child.IsMyModkeyPressed(gamepad)) { child.SetResourceSelection(asset, gamepad); } } }
private void TrySpawn(GamepadPoll gamepad) { if (buttonGroup.ShouldSpawn(gamepad, out var targetToSpawn)) { var newObject = Instantiate(targetToSpawn.gameObject, parent: currentShip.transform); var builderObject = newObject.AddComponent <LevelBuilderObject>(); builderObject.objectName = targetToSpawn.filename; newObject.transform.position = player.transform.position + player.transform.forward * 10f; Grab(newObject); } }
public GamepadPoll(GamePadState currentState, GamepadPoll poll, float leftStickDZ, float leftStickPow, float rightStickDZ, float rightStickPow) { this.currentState = currentState; this.previousState = poll?.currentState ?? new GamePadState(); this.leftTriggerPressedPreviously = poll?.GetButton(Button.LeftTriggerButton) ?? false; this.rightTriggerPressedPreviously = poll?.GetButton(Button.RightTriggerButton) ?? false; this.leftStickDZ = leftStickDZ; this.leftStickPow = leftStickPow; this.rightStickDZ = rightStickDZ; this.rightStickPow = rightStickPow; }
public bool ShouldSpawn(GamepadPoll gamepad, out LevelBuilderAsset targetToSpawn) { targetToSpawn = null; foreach (var child in gameObject.GetComponentsInChildren <LevelEditorSpawnButtonGroup>()) { if (child.ShouldSpawn(gamepad, out targetToSpawn)) { return(true); } } return(false); }
public bool IsMyModkeyPressed(GamepadPoll gamepad) { if (button == Gamepad.Button.None) { return(!gamepad.GetAnyButton( Gamepad.Button.LeftShoulder, Gamepad.Button.RightShoulder, Gamepad.Button.LeftTriggerButton, Gamepad.Button.RightTriggerButton)); } else { return(gamepad.GetButton(button)); } }
public bool ShouldSpawn(GamepadPoll gamepad, out LevelBuilderAsset objectToSpawn) { objectToSpawn = null; if (IsMyModkeyPressed(gamepad)) { if (gamepad.GetButtonDown(Gamepad.Button.X)) { objectToSpawn = xObject; } if (gamepad.GetButtonDown(Gamepad.Button.Y)) { objectToSpawn = yObject; } if (gamepad.GetButtonDown(Gamepad.Button.B)) { objectToSpawn = bObject; } } return(objectToSpawn != null); }
public void SetResourceSelection(LevelBuilderAsset asset, GamepadPoll gamepad) { if (IsMyModkeyPressed(gamepad)) { if (gamepad.GetButtonDown(Gamepad.Button.X)) { xObject = asset; SetThumbnail("X_Thumbnail", asset.icon); } else if (gamepad.GetButtonDown(Gamepad.Button.Y)) { yObject = asset; SetThumbnail("Y_Thumbnail", asset.icon); } else if (gamepad.GetButtonDown(Gamepad.Button.B)) { bObject = asset; SetThumbnail("B_Thumbnail", asset.icon); } } }
private LocalSpaceShipInput GetInput() { GamepadPoll poll = gamepad.Poll(); Vector3 positionInput = Vector3.zero; Vector3 rotationInput = Vector3.zero; positionInput += poll.LeftStick.ToVector3("x0y"); positionInput.y += poll.RightTrigger; positionInput.y -= poll.LeftTrigger; rotationInput += poll.RightStick.ToVector3("-yx0"); if (poll.GetButton(Gamepad.Button.RightShoulder)) { rotationInput.z -= 1f; } if (poll.GetButton(Gamepad.Button.LeftShoulder)) { rotationInput.z += 1f; } if (positionInput.sqrMagnitude > 1f) { positionInput = positionInput.normalized; } if (rotationInput.sqrMagnitude > 1f) { rotationInput = rotationInput.normalized; } bool airbrakes = poll.GetButton(Gamepad.Button.A); LocalSpaceShipInput localInput = new LocalSpaceShipInput(positionInput, rotationInput, airbrakes); return(localInput); }
public GamepadInputEvent(GamepadPoll gamepad) { this.gamepad = gamepad; }
private void OnBindObjectToHotkey(Texture2D texture, object o, GamepadPoll gamepad) { buttonGroup.SetSelection(o as LevelBuilderAsset, gamepad); }
public GamepadPoll Poll() { lastPoll = new GamepadPoll(GamePad.GetState(player), lastPoll, leftStickDZ, leftStickPow, rightStickDZ, rightStickPow); return(lastPoll); }