Example #1
0
    public void Reset()
    {
        ContextAction action = GetComponent <ContextAction>();

        action.Reset();
        GetComponent <TaskBroadcaster>().Activate();
    }
Example #2
0
    // Use this for initialization
    void Start()
    {
        m_action = GetComponent <ContextAction>();

        m_action.TriggerFilter = Filter;
        m_action.OnTrigger     = Trigger;
        m_action.Reset();
    }
Example #3
0
    public void Trigger(Player player, ContextAction.TriggerPhase phase)
    {
        if ((m_owner == player) && m_owner.CurrentItem == this)
        {
            player.CurrentItem = null;
        }
        else if (m_owner == null && player.CurrentItem == null)
        {
            player.CurrentItem = this;
        }

        m_action.Reset();

        if (m_action.CurrentPhase == ContextAction.TriggerPhase.Ended)
        {
            Debug.LogAssertionFormat("Item in invalid state! {0}", m_action.CurrentPhase);
        }
    }
Example #4
0
    // Update is called once per frame
    void Update()
    {
        if (InputManager.Devices.Count == 1)
        {
            if (m_playerIndex == 0)
            {
                m_contextImage.sprite = m_contextButtonSprites[0];
            }
            else if (m_playerIndex == 1)
            {
                m_contextImage.sprite = m_contextButtonSprites[1];
            }
        }
        else if (InputManager.Devices.Count > m_playerIndex)
        {
            m_contextImage.sprite = m_contextButtonSprites[2];
        }


        InputControl actionButton = ActionControl;

        CheckForContextActions();

        if (actionButton != null && m_closestAction)
        {
            bool shouldTrigger = false;

            if (m_closestAction.Type == ContextAction.TriggerType.Instant)
            {
                if (actionButton.WasPressed)
                {
                    shouldTrigger = true;
                }
            }
            else
            {
                if (actionButton.IsPressed)
                {
                    shouldTrigger = true;
                }
            }

            if (shouldTrigger)
            {
                ContextAction.TriggerPhase phase = m_closestAction.Trigger(this);
                switch (phase)
                {
                case ContextAction.TriggerPhase.Ended:
                    break;

                case ContextAction.TriggerPhase.Began:
                    m_progressImage.fillAmount = 0;
                    break;

                case ContextAction.TriggerPhase.InProgress:
                    m_progressImage.fillAmount = m_closestAction.Progress;
                    break;
                }
            }
            else
            {
                if (m_closestAction.Type == ContextAction.TriggerType.OverTime && m_closestAction.CurrentPhase == ContextAction.TriggerPhase.InProgress)
                {
                    m_closestAction.Reset();
                    m_progressImage.fillAmount = m_closestAction.Progress;
                }
            }
        }
    }