internal bool DeregisterBackInterface(InputBackInterface backInterface) { if (backInterface is IBackInterfaceAxis axisBackInterface) { if (TryGetInterface <Axis>(out Axis axis)) { axis.DeregisterSource(axisBackInterface); return(true); } } else if (backInterface is IBackInterfaceButton buttonBackInterface) { if (TryGetInterface <Button>(out Button button)) { button.DeregisterSource(buttonBackInterface); return(true); } } else if (backInterface is IBackInterfaceTrigger triggerBackInterface) { if (TryGetInterface <Trigger>(out Trigger trigger)) { trigger.DeregisterSource(triggerBackInterface); return(true); } } return(false); }
public override bool TryGetBaseInterface(T commandLabel, out InputBackInterface inputBackInterface) { if (_backInterfaces.TryGetValue(commandLabel, out InputBackInterface <D> i)) { inputBackInterface = i; return(true); } inputBackInterface = null; return(false); }
private void DeviceControllerBackInterfaceRemoved <D>(T commandLabel, InputBackInterface <D> backInterface) where D : InputDevice { if (IsActive) { if (!_commandsRef.TryGetValue(commandLabel, out Command command)) { throw new System.InvalidOperationException($"There is no {nameof(Command)} associated with label '{commandLabel}', but exists an InputDeviceController<{typeof(D)}> at that label."); } command.DeregisterBackInterface(backInterface); } }
private void DeviceControllerBackInterfaceAdded <D>(T commandLabel, InputBackInterface <D> backInterface) where D : InputDevice { //Logger.Info($"device controller back interface added => is active? {IsActive}; label: {commandLabel}, backInterface: {backInterface}"); if (IsActive) { if (!_commandsRef.TryGetValue(commandLabel, out Command command)) { throw new System.InvalidOperationException($"There is no {nameof(Command)} associated with label '{commandLabel}', but exists an InputDeviceController<{typeof(D)}> at that label."); } command.RegisterBackInterface(backInterface); } }
internal bool RegisterBackInterface(InputBackInterface backInterface) { if (backInterface is IBackInterfaceAxis axisBackInterface) { Axis axis = GetOrCreateInterface <Axis>(); axis.RegisterSource(axisBackInterface); return(true); } else if (backInterface is IBackInterfaceButton buttonBackInterface) { Button button = GetOrCreateInterface <Button>(); button.RegisterSource(buttonBackInterface); return(true); } else if (backInterface is IBackInterfaceTrigger triggerBackInterface) { Trigger trigger = GetOrCreateInterface <Trigger>(); trigger.RegisterSource(triggerBackInterface); return(true); } return(false); }
private void BackInterfaceRemoved(T commandLabel, InputBackInterface <D> backInterface) { OnBackInterfaceRemoved?.Invoke(commandLabel, backInterface); }
public bool TryGetInterface(T commandLabel, out InputBackInterface <D> inputBackInterface) { return(_backInterfaces.TryGetValue(commandLabel, out inputBackInterface)); }