Beispiel #1
0
        public void AddInputEventListener(int nPlayerID, int nButtonID
                                          , GetInputType eInput, UnityAction hAction, EventOrder eOrder = EventOrder.Normal)
        {
            if (!HasPlayerID(nPlayerID))
            {
                return;
            }

            var hInputData = m_lstPlayerInput[nPlayerID];

            if (hInputData.m_dicButton.TryGetValue(nButtonID, out ButtonData hButtonData))
            {
                hButtonData.m_hInputEvent ??= new EventCallback <GetInputType>();
                hButtonData.m_hInputEvent.Add(eInput, hAction, eOrder);
            }
            else
            {
                var hNewEvent = new EventCallback <GetInputType>();
                hNewEvent.Add(eInput, hAction, eOrder);
                hInputData.m_dicButton.Add(nButtonID, new ButtonData
                {
                    m_eGetType    = GetInputType.None,
                    m_hInputEvent = hNewEvent
                });
            }
        }
Beispiel #2
0
        protected override void SetHoldingInputData(InputEventType eEventType, GetInputType eGetType)
        {
            if (actorData == null)
            {
                return;
            }

            var hInputData = m_hActorData.m_hInputData;

            InputEventType eHoldingInput = hInputData.m_eHoldingInput;

            if (eGetType == GetInputType.Down)
            {
                if (!FlagUtility.HasFlagUnsafe(eHoldingInput, eEventType))
                {
                    eHoldingInput |= eEventType;
                }
            }
            else if (eGetType == GetInputType.HoldEnd || eGetType == GetInputType.Up)
            {
                if (FlagUtility.HasFlagUnsafe(eHoldingInput, eEventType))
                {
                    eHoldingInput &= ~eEventType;
                }
            }

            hInputData.m_eHoldingInput = eHoldingInput;
            m_hActorData.m_hInputData  = hInputData;
        }
Beispiel #3
0
        protected override void RunEventInput(InputEventType eEventType, GetInputType eGetType)
        {
            if (actorData == null)
            {
                return;
            }

            m_hActorData.m_hInputData.m_hInputCallback?.Run((eEventType, eGetType), m_hActorData, m_hActorController.listBehaviourData);
        }
Beispiel #4
0
        public static void SetButtonInput(int nPlayerID, int nButtonID, GetInputType eInput)
        {
            if (!HasBaseInstance())
            {
                return;
            }

            m_hBaseInstance.gameInputData.SetButtonInput(nPlayerID, nButtonID, eInput);
        }
        protected override void OnRunEventInput(InputButtonType eButtonType, GetInputType eGetType)
        {
            if (!TryGetIActorData(out IActorData_Input hDataInput))
            {
                return;
            }

            hDataInput.inputButtonCallback.Run((eButtonType, eGetType), this);
        }
Beispiel #6
0
        static void MainAddInputEventListener(int nPlayerID, int nButtonID
                                              , GetInputType eInput, UnityAction hAction, EventOrder eOrder = EventOrder.Normal)
        {
            if (!HasBaseInstance())
            {
                return;
            }

            m_hBaseInstance.gameInputData.AddInputEventListener(nPlayerID, nButtonID, eInput, hAction, eOrder);
        }
Beispiel #7
0
        static void MainRemoveInputEventListener(int nPlayerID, int nButtonID
                                                 , GetInputType eInput, UnityAction hAction, EventOrder eOrder = EventOrder.Normal)
        {
            if (m_hBaseInstance == null)
            {
                return;
            }

            m_hBaseInstance.gameInputData.RemoveInputEventListener(nPlayerID, nButtonID, eInput, hAction);
        }
Beispiel #8
0
        /// <summary>
        /// Convert raw float value from new input to GetInputType.
        /// </summary>
        /// <param name="ePreviousGetType">Previous get type.</param>
        /// <param name="fRawValue">Raw value from new input.</param>
        /// <returns>Convert GetInputType</returns>
        public static GetInputType ConvertRawValueToGetType(GetInputType ePreviousGetType, float fRawValue)
        {
            var eResult = GetInputType.None;

            switch (ePreviousGetType)
            {
            case GetInputType.None:
                if (fRawValue > 0)
                {
                    eResult = GetInputType.Down;
                }
                break;

            case GetInputType.Down:
            case GetInputType.Hold:
                if (fRawValue > 0)
                {
                    eResult = GetInputType.HoldEnd;
                }
                else
                {
                    eResult = GetInputType.Up;
                }
                break;

            case GetInputType.HoldEnd:
                if (fRawValue > 0)
                {
                    eResult = GetInputType.Down;
                }
                else
                {
                    eResult = GetInputType.None;
                }
                break;

            case GetInputType.Up:
                if (fRawValue > 0)
                {
                    eResult = GetInputType.Down;
                }
                else
                {
                    eResult = GetInputType.None;
                }
                break;
            }

            return(eResult);
        }
Beispiel #9
0
        protected override void SetHoldingInputData(InputButtonType eButtonType, GetInputType eGetType)
        {
            var eHoldingInput = m_hInputData.m_eHoldingInput;

            if (eGetType == GetInputType.Down)
            {
                AddHoldFlag(eButtonType);
            }
            else if (eGetType == GetInputType.Up)
            {
                RemoveHoldFlag(eButtonType);
            }

            m_hInputData.m_eHoldingInput = eHoldingInput;
        }
Beispiel #10
0
        public void RemoveInputEventListener(int nPlayerID, int nButtonID
                                             , GetInputType eInput, UnityAction hAction, EventOrder eOrder = EventOrder.Normal)
        {
            if (!HasPlayerID(nPlayerID))
            {
                return;
            }

            var hInputData = m_lstPlayerInput[nPlayerID];

            if (hInputData.m_dicButton.TryGetValue(nButtonID, out ButtonData hButtonData) &&
                hButtonData.m_hInputEvent != null)
            {
                hButtonData.m_hInputEvent.Remove(eInput, hAction, eOrder);
            }
        }
Beispiel #11
0
        public void PressButton(InputAction.CallbackContext hContext)
        {
            m_ePreviousInput = InputUtility.ConvertRawValueToGetType(m_ePreviousInput, hContext.ReadValueAsButton());

            ProcessRunEvent();
        }
Beispiel #12
0
 protected abstract void RunEventInput(InputEventType eEventType, GetInputType eGetType);
Beispiel #13
0
 protected abstract void SetHoldingInputData(InputEventType eEventType, GetInputType eGetType);
Beispiel #14
0
 public static void RemoveInputEventListener(int nPlayerID, int nButtonID
                                             , GetInputType eInput, UnityAction hAction, EventOrder eOrder)
 {
     MainRemoveInputEventListener(nPlayerID, nButtonID, eInput, hAction, eOrder);
 }
Beispiel #15
0
 /// <summary>
 /// Remove input event listener from player id 0.
 /// </summary>
 /// <param name="nButtonID"></param>
 /// <param name="eInput"></param>
 /// <param name="hAction"></param>
 public static void RemoveInputEventListener(int nButtonID
                                             , GetInputType eInput, UnityAction hAction)
 {
     MainRemoveInputEventListener(0, nButtonID, eInput, hAction);
 }
Beispiel #16
0
 protected abstract void OnRunEventInput(InputButtonType eButtonType, GetInputType eGetType);
Beispiel #17
0
 public static void AddInputEventListener(int nPlayerID, int nButtonID
                                          , GetInputType eInput, UnityAction hAction)
 {
     MainAddInputEventListener(nPlayerID, nButtonID, eInput, hAction);
 }
Beispiel #18
0
 /// <summary>
 /// Add input event listener for player id 0.
 /// </summary>
 /// <param name="nButtonID"></param>
 /// <param name="eInput"></param>
 /// <param name="hAction"></param>
 /// <param name="eOrder"></param>
 public static void AddInputEventListener(int nButtonID
                                          , GetInputType eInput, UnityAction hAction, EventOrder eOrder)
 {
     MainAddInputEventListener(0, nButtonID, eInput, hAction, eOrder);
 }
Beispiel #19
0
 protected abstract void SetHoldingInputData(InputButtonType eButtonType, GetInputType eGetType);
Beispiel #20
0
 protected override void RunEventInput(InputButtonType eEventType, GetInputType eGetType)
 {
     m_hOnRunEventInput?.Invoke(eEventType, eGetType);
 }