private void DistanceTest()
 {
     if (CurrentObjectClicked != null)
     {
         if (CurrentObjectClicked == manager.GetComponentInChildren <ClickTrigger>())
         {
             CurrentObjectClicked = null;
             return;
         }
         FieldOfView fieldViewManager = Camera.main.GetComponent <CameraManager>().FieldOfView;
         if (!fieldViewManager.IsObjectVisibleFromPlayer(manager.gameObject, CurrentObjectClicked.transform.parent.gameObject))
         {
             CurrentObjectClicked.OnMouseExitTrigger();
             ActivateUIFeedback(false);
             CurrentObjectClicked = null;
         }
         else
         {
             interactionUI.EnableButton(this.CanDoAction());
             CurrentObjectClicked?.PlayerInActionRange(isObjectClickedInActionRange);
         }
     }
     else if (CurrentObjectOver != null)
     {
         FieldOfView fieldViewManager = Camera.main.GetComponent <CameraManager>().FieldOfView;
         if (!fieldViewManager.IsObjectVisibleFromPlayer(manager.gameObject, CurrentObjectOver.transform.parent.gameObject))
         {
             CurrentObjectOver.OnMouseExitTrigger();
             CurrentObjectOver = null;
         }
     }
 }
    private void ClickHoverGameObject()
    {
        if (CurrentObjectOver == CurrentObjectClicked || CurrentObjectOver == managerClickTrigger)
        {
            return;
        }

        if (CurrentObjectClicked != null)
        {
            CurrentObjectClicked.OnMouseExitTrigger();
        }

        CurrentObjectClicked = CurrentObjectOver;
        CurrentObjectOver    = null;

        bool canInteract = CurrentObjectClicked.OnClickObject(manager);

        if (canInteract)
        {
            ActivateUIFeedback(true);
        }
        else
        {
            CurrentObjectClicked = null;
            ActivateUIFeedback(false);
        }
    }
    private bool CanDoAction()
    {
        if (CurrentObjectClicked.CurrentInteractionAvailable == null)
        {
            CurrentObjectClicked = null;
            return(false);
        }
        isObjectClickedInActionRange = Vector2.Distance(manager.transform.position, CurrentObjectClicked.transform.parent.position) <= CLICK_DISTANCE;
        bool canDoAction = this.actionsConfiguration.CanDoAction(CurrentObjectClicked.CurrentInteractionAvailable.Activatable.ActionType);

        return(isObjectClickedInActionRange && canDoAction);
    }
 private void OnMouseClick()
 {
     if (CurrentObjectOver != null)
     {
         this.ClickHoverGameObject();
     }
     else if (CurrentObjectClicked != null)
     {
         CurrentObjectClicked.OnMouseExitTrigger();
         ActivateUIFeedback(false);
         CurrentObjectClicked = null;
     }
 }
Beispiel #5
0
        private void WireComponents()
        {
            ActionFactory.SelectionHandler  += statusController.OnSelection;
            ActionFactory.GridSwitchHandler += OnGridSwitch;
            ActionFactory.ConnectionPool     = connectionPool;
            ActionFactory.StartScanner       = StartScannerByScannerAction;
            ActionFactory.StopScanner        = StopScannerByScannerAction;

            Form.FormClosing += OnFormClosing;

            keyTrigger          = KeyTrigger.CreateSpaceBarTrigger();
            Form.KeyDown       += keyTrigger.OnKeyDown;
            Form.KeyUp         += keyTrigger.OnKeyUp;
            keyTrigger.Trigger += OnTrigger;

            if (Config.Global.ClickTriggerActive)
            {
                clickTrigger          = new ClickTrigger();
                clickTrigger.Trigger += OnTrigger;
            }
        }
Beispiel #6
0
        /// <summary>
        /// Sets the action associated with the specified Button.
        /// </summary>
        /// <param name="button">The Button to associate the action with.</param>
        /// <param name="action">The action to associate with the button.</param>
        public static void SetAction(ButtonBase button, TriggerAction action)
        {
            if (action == null) {
                return;
            }

            TriggerCollection triggers = GetTriggers(button);

            foreach (Trigger trigger in triggers) {
                ClickTrigger clickTrigger = trigger as ClickTrigger;
                clickTrigger.Action = action;
            }

            ClickTrigger newTrigger = new ClickTrigger();
            newTrigger.Action = action;

            triggers.Add(newTrigger);
        }
Beispiel #7
0
 protected virtual void OnClickTrigger(TriggerEventArgs e)
 {
     ClickTrigger?.Invoke(this, e);
 }
Beispiel #8
0
 void Start()
 {
     clickTrigger = this.gameObject.GetComponent <ClickTrigger>();
     clickTrigger.signalOnClick.AddListener(this.whenClickOccured);
 }
 private void Start()
 {
     manager = this.GetComponent <PlayerManager>();
     this.managerClickTrigger = manager.GetComponentInChildren <ClickTrigger>();
     cursor = Camera.main.GetComponent <CursorManager>();
 }