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; } }
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; } }
/// <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); }
protected virtual void OnClickTrigger(TriggerEventArgs e) { ClickTrigger?.Invoke(this, e); }
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>(); }