using UnityEngine; using Yarn.Unity.Attributes; namespace Yarn.Unity.LineAdvancerInput { [RequireComponent(typeof(LineAdvancer))] public class LegacyInputAxes : MonoBehaviour, ILineAdvancerInput { [MessageBox(nameof(GetAvailabilityMessage))] [SerializeField] LineAdvancer lineAdvancer; #pragma warning disable CS0162 public MessageBoxAttribute.Message GetAvailabilityMessage() { if (!InputSystemAvailability.enableLegacyInput) { return MessageBoxAttribute.Warning("The legacy Input Manager system is not enabled."); } return MessageBoxAttribute.NoMessage; } #pragma warning restore CS0162 public LineAdvancer LineAdvancer { get => lineAdvancer; set => lineAdvancer = value; } /// /// The legacy Input Axis that triggers a request to advance to the next /// piece of content. /// public string hurryUpLineAxis = "Jump"; /// /// The legacy Input Axis that triggers an instruction to cancel the /// current line. /// [ShowIf(nameof(ShowNextLine))] public string nextLineAxis = "Cancel"; /// /// The legacy Input Axis that triggers an instruction to hurry up presenting the current options /// public string hurryUpOptionsAxis = "Jump"; /// /// The legacy Input Axis that triggers an instruction to cancel the /// entire dialogue. /// public string cancelDialogueAxis = ""; public void OnDialogueStarted() { } public void OnDialogueComplete() { } private bool ShowNextLine => lineAdvancer != null && lineAdvancer.SeparateHurryUpAndAdvanceControls; protected void Update() { if (lineAdvancer == null) { return; } if (InputSystemAvailability.GetButtonDown(hurryUpLineAxis)) { lineAdvancer.OnInputHurryUpLines(); } if (InputSystemAvailability.GetButtonDown(nextLineAxis)) { lineAdvancer.OnInputNextContent(); } if (InputSystemAvailability.GetButtonDown(hurryUpOptionsAxis)) { lineAdvancer.OnInputHurryUpOptions(); } if (InputSystemAvailability.GetButtonDown(cancelDialogueAxis)) { lineAdvancer.OnInputCancelDialogue(); } } } }