public void Reset() { ContextAction action = GetComponent <ContextAction>(); action.Reset(); GetComponent <TaskBroadcaster>().Activate(); }
// Use this for initialization void Start() { m_action = GetComponent <ContextAction>(); m_action.TriggerFilter = Filter; m_action.OnTrigger = Trigger; m_action.Reset(); }
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); } }
// 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; } } } }