public override void Execute(ActionCallback Callback, InputBus actionTarget) { Transform target = FindTarget(actionTarget).positionData; if (target != null) { ((AiActorController)actionTarget).UpdateInput(actionInput, true); float facing = Mathf.Sign(actionTarget.transform.right.x); float dir = Mathf.Sign((target.transform.position - actionTarget.transform.position).x); if (alwaysFaceTarget && facing != dir) { actionTarget.transform.right = -actionTarget.transform.right; } if (Vector3.Distance(actionTarget.transform.position, target.position) > vaildActionRange) { ((AiActorController)actionTarget).UpdateInput(actionInput, false); Callback(); } } else { ((AiActorController)actionTarget).UpdateInput(actionInput, false); Callback(); } }
/// <summary> /// Sends a key Event to the ibus current input context. This method will be called by /// the IbusKeyboardAdapter on some KeyDown and all KeyPress events. /// </summary> /// <param name="keySym">The X11 key symbol (for special keys) or the key code</param> /// <param name="scanCode">The X11 scan code</param> /// <param name="state">The modifier state, i.e. shift key etc.</param> /// <returns><c>true</c> if the key event is handled by ibus.</returns> /// <seealso cref="IBusKeyboardAdaptor.HandleKeyPress"/> public bool ProcessKeyEvent(int keySym, int scanCode, Keys state) { if (m_inputContext == null) { return(false); } try { // m_inputContext.IsEnabled() throws an exception for IBus 1.5. if (!KeyboardController.CombinedKeyboardHandling && !m_inputContext.IsEnabled()) { return(false); } var modifiers = ConvertToIbusModifiers(state, (char)keySym); return(m_inputContext.ProcessKeyEvent(keySym, scanCode, modifiers)); } catch (NDesk.DBus.DBusConectionErrorException e) { Console.WriteLine("IbusCommunicator.ProcessKeyEvent({0},{1},{2}): caught DBusConectionErrorException: {3}", keySym, scanCode, state, e); m_ibus = null; m_inputContext = null; NotifyUserOfIBusConnectionDropped(); } catch (System.NullReferenceException e) { Console.WriteLine("IbusCommunicator.ProcessKeyEvent({0},{1},{2}): caught NullReferenceException: {3}", keySym, scanCode, state, e); } return(false); }
public override void Execute(ActionCallback Callback, InputBus actionTarget) { Transform target = FindTarget(actionTarget).positionData; if (target != null) { Vector3 axis = new Vector3(1, 0, 0); if (target.position.x < actionTarget.transform.position.x) { axis = -axis; } ((AiActorController)actionTarget).UpdateInput(moveInput, axis); if (Vector3.Distance(actionTarget.transform.position, target.position) < targetRange) { ((AiActorController)actionTarget).UpdateInput(moveInput, Vector3.zero); Callback(); } } else { ((AiActorController)actionTarget).UpdateInput(moveInput, Vector3.zero); Callback(); } }
/// <summary> /// Sends a key Event to the ibus current input context. This method will be called by /// the IbusKeyboardAdapter on some KeyDown and all KeyPress events. /// </summary> /// <param name="keySym">The X11 key symbol (for special keys) or the key code</param> /// <param name="scanCode">The X11 scan code</param> /// <param name="state">The modifier state, i.e. shift key etc.</param> /// <returns><c>true</c> if the key event is handled by ibus.</returns> /// <seealso cref="IbusKeyboardSwitchingAdaptor.HandleKeyPress"/> public bool ProcessKeyEvent(int keySym, int scanCode, Keys state) { if (m_inputContext == null) { return(false); } try { // m_inputContext.IsEnabled() is no longer contained in IBus 1.5. However, // ibusdotnet >= 1.9.1 deals with that and always returns true so that we still // can use this method. if (!m_inputContext.IsEnabled()) { return(false); } var modifiers = ConvertToIbusModifiers(state, (char)keySym); return(m_inputContext.ProcessKeyEvent(keySym, scanCode, modifiers)); } catch (NDesk.DBus.DBusConectionErrorException e) { Console.WriteLine("IbusCommunicator.ProcessKeyEvent({0},{1},{2}): caught DBusConectionErrorException: {3}", keySym, scanCode, state, e); m_ibus = null; m_inputContext = null; NotifyUserOfIBusConnectionDropped(); } catch (System.NullReferenceException e) { Console.WriteLine("IbusCommunicator.ProcessKeyEvent({0},{1},{2}): caught NullReferenceException: {3}", keySym, scanCode, state, e); } return(false); }
public bool HasRequirements(InputBus actionTarget) { if (CheckPrerequirements(actionTarget) && CheckRequirements(actionTarget)) { return(true); } return(false); }
internal IBusEngineDesc[] GetAllIBusKeyboards() { if (!IBusCommunicator.Connected) return new IBusEngineDesc[0]; var ibusWrapper = new InputBus(IBusCommunicator.Connection); return ibusWrapper.ListEngines(); }
protected virtual IBusEngineDesc[] GetIBusKeyboards() { if (!IBusCommunicator.Connected) return new IBusEngineDesc[0]; var ibusWrapper = new InputBus(IBusCommunicator.Connection); return ibusWrapper.ListActiveEngines(); }
protected virtual IBusEngineDesc[] GetIBusKeyboards() { if (!_ibusComm.Connected) { return(new IBusEngineDesc[0]); } var ibusWrapper = new InputBus(_ibusComm.Connection); return(ibusWrapper.ListActiveEngines()); }
internal IBusEngineDesc[] GetAllIBusKeyboards() { if (!_ibusComm.Connected) { return(new IBusEngineDesc[0]); } var ibusWrapper = new InputBus(_ibusComm.Connection); return(ibusWrapper.ListEngines()); }
protected bool CheckRequirements(InputBus actionTarget) { foreach (Requirement requirement in requirements) { if (!requirement.Check(actionTarget)) { return(false); } } return(true); }
protected override bool CheckPrerequirements(InputBus actionTarget) { Transform target = FindTarget(actionTarget).positionData; if (target != null) { bool within = Vector3.Distance(actionTarget.transform.position, target.position) > targetRange; bool found = FindTarget(actionTarget).isTriggered; return(within && found); } return(false); }
void Awake() { actions = new InputActions(); bus = GetComponent <InputBus>(); currentStats = (ActorStats)baseStats.Clone(); actions.stats = currentStats; lastHealth = currentStats.health; SubscribeToEvents(); InitializeOnAwake(); }
/// <summary> /// Wrap an ibus with protection incase DBus connection is dropped. /// </summary> protected void ProtectedIBusInvoke(Action action) { try { action(); } catch (NDesk.DBus.DBusConectionErrorException) { m_ibus = null; m_inputContext = null; NotifyUserOfIBusConnectionDropped(); } catch (System.NullReferenceException) { } }
/// <summary> /// Create a Connection to Ibus. If successfull Connected property is true. /// </summary> public IbusCommunicator() { m_connection = IBusConnectionFactory.Create(); if (m_connection == null) return; // Prevent hanging on exit issues caused by missing dispose calls, or strange interaction // between ComObjects and managed object. Application.ThreadExit += (sender, args) => { if (m_connection != null) m_connection.Dispose(); m_connection = null; }; m_ibus = new InputBus(m_connection); }
/// <summary> /// Create a Connection to Ibus. If successfull Connected property is true. /// </summary> public IbusCommunicator() { m_connection = IBusConnectionFactory.Create(); if (m_connection == null) { return; } // Prevent hanging on exit issues caused by missing dispose calls, or strange interaction // between ComObjects and managed object. Application.ThreadExit += (sender, args) => { if (m_connection != null) { m_connection.Dispose(); } m_connection = null; }; m_ibus = new InputBus(m_connection); }
//Common functions protected RelayData FindTarget(InputBus observer) { RelayData data = new RelayData(); LayerMask mask = nonVisionLayers; if (useVision) { mask = visionLayers; } //vvv F*****g change this vvv if (targets.Length > 0) { GameObject target = targets[0]; Vector3 targetDir = target.transform.position - observer.transform.position; Ray targeting = new Ray(observer.transform.position, targetDir); data.isTriggered = Physics.Raycast(targeting, trackingDistance, mask); data.positionData = target.transform; } return(data); }
protected virtual void Initialize() { bus = GetComponent <InputBus>(); actions = new InputState(); }
void Awake() { bus = GetComponent <InputBus>(); bus.Action += Execute; InitializeOnAwake(); }
/// <summary> /// Wrap an ibus with protection incase DBus connection is dropped. /// </summary> protected void ProtectedIBusInvoke(Action action) { try { action(); } catch(NDesk.DBus.DBusConectionErrorException) { m_ibus = null; m_inputContext = null; NotifyUserOfIBusConnectionDropped(); } catch(System.NullReferenceException) { } }
/// <summary> /// Sends a key Event to the ibus current input context. This method will be called by /// the IbusKeyboardAdapter on some KeyDown and all KeyPress events. /// </summary> /// <param name="keySym">The X11 key symbol (for special keys) or the key code</param> /// <param name="scanCode">The X11 scan code</param> /// <param name="state">The modifier state, i.e. shift key etc.</param> /// <returns><c>true</c> if the key event is handled by ibus.</returns> /// <seealso cref="IBusKeyboardAdaptor.HandleKeyPress"/> public bool ProcessKeyEvent(int keySym, int scanCode, Keys state) { if (m_inputContext == null) return false; try { // m_inputContext.IsEnabled() throws an exception for IBus 1.5. if (!KeyboardController.CombinedKeyboardHandling && !m_inputContext.IsEnabled()) return false; var modifiers = ConvertToIbusModifiers(state, (char)keySym); return m_inputContext.ProcessKeyEvent(keySym, scanCode, modifiers); } catch(NDesk.DBus.DBusConectionErrorException e) { Console.WriteLine("IbusCommunicator.ProcessKeyEvent({0},{1},{2}): caught DBusConectionErrorException: {3}", keySym, scanCode, state, e); m_ibus = null; m_inputContext = null; NotifyUserOfIBusConnectionDropped(); } catch(System.NullReferenceException e) { Console.WriteLine("IbusCommunicator.ProcessKeyEvent({0},{1},{2}): caught NullReferenceException: {3}", keySym, scanCode, state, e); } return false; }
protected virtual bool CheckPrerequirements(InputBus actionTarget) { return(false); }
public virtual void Execute(ActionCallback Callback, InputBus actionTarget) { }
/// <summary> /// Sends a key Event to the ibus current input context. This method will be called by /// the IbusKeyboardAdapter on some KeyDown and all KeyPress events. /// </summary> /// <param name="keySym">The X11 key symbol (for special keys) or the key code</param> /// <param name="scanCode">The X11 scan code</param> /// <param name="state">The modifier state, i.e. shift key etc.</param> /// <returns><c>true</c> if the key event is handled by ibus.</returns> /// <seealso cref="IBusKeyboardAdaptor.HandleKeyPress"/> public bool ProcessKeyEvent(int keySym, int scanCode, Keys state) { if (m_inputContext == null) return false; try { // m_inputContext.IsEnabled() is no longer contained in IBus 1.5. However, // ibusdotnet >= 1.9.1 deals with that and always returns true so that we still // can use this method. if (!m_inputContext.IsEnabled()) return false; var modifiers = ConvertToIbusModifiers(state, (char)keySym); return m_inputContext.ProcessKeyEvent(keySym, scanCode, modifiers); } catch(NDesk.DBus.DBusConectionErrorException e) { Console.WriteLine("IbusCommunicator.ProcessKeyEvent({0},{1},{2}): caught DBusConectionErrorException: {3}", keySym, scanCode, state, e); m_ibus = null; m_inputContext = null; NotifyUserOfIBusConnectionDropped(); } catch(System.NullReferenceException e) { Console.WriteLine("IbusCommunicator.ProcessKeyEvent({0},{1},{2}): caught NullReferenceException: {3}", keySym, scanCode, state, e); } return false; }
public virtual bool Check(InputBus toCheck) { return(false); }
protected virtual void Initialize() { bus = GetComponent <InputBus>(); bus.Actions += Execute; }