using System; using System.Collections.Generic; namespace UnityEngine.EventSystems { // Token: 0x02000027 RID: 39 [RequireComponent(typeof(EventSystem))] public abstract class BaseInputModule : UIBehaviour { // Token: 0x17000042 RID: 66 // (get) Token: 0x060000DB RID: 219 RVA: 0x00003E4C File Offset: 0x0000224C public BaseInput input { get { BaseInput baseInput; if (this.m_InputOverride != null) { baseInput = this.m_InputOverride; } else { if (this.m_DefaultInput == null) { BaseInput[] components = base.GetComponents(); foreach (BaseInput baseInput2 in components) { if (baseInput2 != null && baseInput2.GetType() == typeof(BaseInput)) { this.m_DefaultInput = baseInput2; break; } } if (this.m_DefaultInput == null) { this.m_DefaultInput = base.gameObject.AddComponent(); } } baseInput = this.m_DefaultInput; } return baseInput; } } // Token: 0x17000043 RID: 67 // (get) Token: 0x060000DC RID: 220 RVA: 0x00003F10 File Offset: 0x00002310 protected EventSystem eventSystem { get { return this.m_EventSystem; } } // Token: 0x060000DD RID: 221 RVA: 0x00003F2B File Offset: 0x0000232B protected override void OnEnable() { base.OnEnable(); this.m_EventSystem = base.GetComponent(); this.m_EventSystem.UpdateModules(); } // Token: 0x060000DE RID: 222 RVA: 0x00003F4B File Offset: 0x0000234B protected override void OnDisable() { this.m_EventSystem.UpdateModules(); base.OnDisable(); } // Token: 0x060000DF RID: 223 public abstract void Process(); // Token: 0x060000E0 RID: 224 RVA: 0x00003F60 File Offset: 0x00002360 protected static RaycastResult FindFirstRaycast(List candidates) { for (int i = 0; i < candidates.Count; i++) { if (!(candidates[i].gameObject == null)) { return candidates[i]; } } return default(RaycastResult); } // Token: 0x060000E1 RID: 225 RVA: 0x00003FC4 File Offset: 0x000023C4 protected static MoveDirection DetermineMoveDirection(float x, float y) { return BaseInputModule.DetermineMoveDirection(x, y, 0.6f); } // Token: 0x060000E2 RID: 226 RVA: 0x00003FE8 File Offset: 0x000023E8 protected static MoveDirection DetermineMoveDirection(float x, float y, float deadZone) { Vector2 vector = new Vector2(x, y); MoveDirection moveDirection; if (vector.sqrMagnitude < deadZone * deadZone) { moveDirection = MoveDirection.None; } else if (Mathf.Abs(x) > Mathf.Abs(y)) { if (x > 0f) { moveDirection = MoveDirection.Right; } else { moveDirection = MoveDirection.Left; } } else if (y > 0f) { moveDirection = MoveDirection.Up; } else { moveDirection = MoveDirection.Down; } return moveDirection; } // Token: 0x060000E3 RID: 227 RVA: 0x0000405C File Offset: 0x0000245C protected static GameObject FindCommonRoot(GameObject g1, GameObject g2) { GameObject gameObject; if (g1 == null || g2 == null) { gameObject = null; } else { Transform transform = g1.transform; while (transform != null) { Transform transform2 = g2.transform; while (transform2 != null) { if (transform == transform2) { return transform.gameObject; } transform2 = transform2.parent; } transform = transform.parent; } gameObject = null; } return gameObject; } // Token: 0x060000E4 RID: 228 RVA: 0x000040EC File Offset: 0x000024EC protected void HandlePointerExitAndEnter(PointerEventData currentPointerData, GameObject newEnterTarget) { if (newEnterTarget == null || currentPointerData.pointerEnter == null) { for (int i = 0; i < currentPointerData.hovered.Count; i++) { ExecuteEvents.Execute(currentPointerData.hovered[i], currentPointerData, ExecuteEvents.pointerExitHandler); } currentPointerData.hovered.Clear(); if (newEnterTarget == null) { currentPointerData.pointerEnter = newEnterTarget; return; } } if (!(currentPointerData.pointerEnter == newEnterTarget) || !newEnterTarget) { GameObject gameObject = BaseInputModule.FindCommonRoot(currentPointerData.pointerEnter, newEnterTarget); if (currentPointerData.pointerEnter != null) { Transform transform = currentPointerData.pointerEnter.transform; while (transform != null) { if (gameObject != null && gameObject.transform == transform) { break; } ExecuteEvents.Execute(transform.gameObject, currentPointerData, ExecuteEvents.pointerExitHandler); currentPointerData.hovered.Remove(transform.gameObject); transform = transform.parent; } } currentPointerData.pointerEnter = newEnterTarget; if (newEnterTarget != null) { Transform transform2 = newEnterTarget.transform; while (transform2 != null && transform2.gameObject != gameObject) { ExecuteEvents.Execute(transform2.gameObject, currentPointerData, ExecuteEvents.pointerEnterHandler); currentPointerData.hovered.Add(transform2.gameObject); transform2 = transform2.parent; } } } } // Token: 0x060000E5 RID: 229 RVA: 0x00004288 File Offset: 0x00002688 protected virtual AxisEventData GetAxisEventData(float x, float y, float moveDeadZone) { if (this.m_AxisEventData == null) { this.m_AxisEventData = new AxisEventData(this.eventSystem); } this.m_AxisEventData.Reset(); this.m_AxisEventData.moveVector = new Vector2(x, y); this.m_AxisEventData.moveDir = BaseInputModule.DetermineMoveDirection(x, y, moveDeadZone); return this.m_AxisEventData; } // Token: 0x060000E6 RID: 230 RVA: 0x000042F0 File Offset: 0x000026F0 protected virtual BaseEventData GetBaseEventData() { if (this.m_BaseEventData == null) { this.m_BaseEventData = new BaseEventData(this.eventSystem); } this.m_BaseEventData.Reset(); return this.m_BaseEventData; } // Token: 0x060000E7 RID: 231 RVA: 0x00004334 File Offset: 0x00002734 public virtual bool IsPointerOverGameObject(int pointerId) { return false; } // Token: 0x060000E8 RID: 232 RVA: 0x0000434C File Offset: 0x0000274C public virtual bool ShouldActivateModule() { return base.enabled && base.gameObject.activeInHierarchy; } // Token: 0x060000E9 RID: 233 RVA: 0x0000437A File Offset: 0x0000277A public virtual void DeactivateModule() { } // Token: 0x060000EA RID: 234 RVA: 0x0000437D File Offset: 0x0000277D public virtual void ActivateModule() { } // Token: 0x060000EB RID: 235 RVA: 0x00004380 File Offset: 0x00002780 public virtual void UpdateModule() { } // Token: 0x060000EC RID: 236 RVA: 0x00004384 File Offset: 0x00002784 public virtual bool IsModuleSupported() { return true; } // Token: 0x0400007D RID: 125 [NonSerialized] protected List m_RaycastResultCache = new List(); // Token: 0x0400007E RID: 126 private AxisEventData m_AxisEventData; // Token: 0x0400007F RID: 127 private EventSystem m_EventSystem; // Token: 0x04000080 RID: 128 private BaseEventData m_BaseEventData; // Token: 0x04000081 RID: 129 protected BaseInput m_InputOverride; // Token: 0x04000082 RID: 130 private BaseInput m_DefaultInput; } }