コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
        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);
        }
コード例 #6
0
 private void BackInterfaceRemoved(T commandLabel, InputBackInterface <D> backInterface)
 {
     OnBackInterfaceRemoved?.Invoke(commandLabel, backInterface);
 }
コード例 #7
0
 public bool TryGetInterface(T commandLabel, out InputBackInterface <D> inputBackInterface)
 {
     return(_backInterfaces.TryGetValue(commandLabel, out inputBackInterface));
 }