void UpdateBindings(ulong updateTick, float deltaTime) { var lastInputType = LastInputType; var lastInputTypeChangedTick = LastInputTypeChangedTick; var lastUpdateTick = UpdateTick; var lastDeviceClass = LastDeviceClass; var lastDeviceStyle = LastDeviceStyle; var bindingCount = regularBindings.Count; for (var i = bindingCount - 1; i >= 0; i--) { var binding = regularBindings[i]; if (binding.BoundTo != this) { regularBindings.RemoveAt(i); visibleBindings.Remove(binding); } else { var value = binding.GetValue(Device); if (UpdateWithValue(value, updateTick, deltaTime)) { lastInputType = binding.BindingSourceType; lastInputTypeChangedTick = updateTick; lastDeviceClass = binding.DeviceClass; lastDeviceStyle = binding.DeviceStyle; } } } Commit(); Enabled = Owner.Enabled; if (lastInputTypeChangedTick > LastInputTypeChangedTick) { if (lastInputType != BindingSourceType.MouseBindingSource || Utility.Abs(LastValue - Value) >= MouseBindingSource.JitterThreshold) { var triggerEvent = lastInputType != LastInputType; LastInputType = lastInputType; LastInputTypeChangedTick = lastInputTypeChangedTick; LastDeviceClass = lastDeviceClass; LastDeviceStyle = lastDeviceStyle; if (OnLastInputTypeChanged != null && triggerEvent) { OnLastInputTypeChanged.Invoke(lastInputType); } } } if (UpdateTick > lastUpdateTick) { activeDevice = LastInputTypeIsDevice ? Device : null; } }
void Update(ulong updateTick, float deltaTime) { var device = Device ?? InputManager.ActiveDevice; var actionsCount = actions.Count; for (int i = 0; i < actionsCount; i++) { var action = actions[i]; action.Update(updateTick, deltaTime, device); if (action.UpdateTick > UpdateTick) { UpdateTick = action.UpdateTick; LastInputType = action.LastInputType; } } var oneAxisActionsCount = oneAxisActions.Count; for (int i = 0; i < oneAxisActionsCount; i++) { oneAxisActions[i].Update(updateTick, deltaTime); } var twoAxisActionsCount = twoAxisActions.Count; for (int i = 0; i < twoAxisActionsCount; i++) { twoAxisActions[i].Update(updateTick, deltaTime); } }
void ProcessActionUpdate(PlayerAction action) { if (action.UpdateTick > UpdateTick) { UpdateTick = action.UpdateTick; LastInputType = action.LastInputType; } }
/// <param name="description">The localized description provided to the end user when the binding source is singular (such as self binding).</param> public BindingSource(string name, BindingSourceType type, string description) : this(name, type) { if (description == null) { throw new ArgumentNullException(nameof(description)); } Description = description; }
public BindingSource(string name, BindingSourceType type) { if (name == null) { throw new ArgumentNullException(nameof(name)); } Name = name; Type = type; }
internal void Update(ulong updateTick, float deltaTime) { var device = Device ?? FindActiveDevice(); var lastInputType = LastInputType; var lastInputTypeChangedTick = LastInputTypeChangedTick; var actionsCount = actions.Count; for (var i = 0; i < actionsCount; i++) { var action = actions[i]; action.Update(updateTick, deltaTime, device); if (action.UpdateTick > UpdateTick) { UpdateTick = action.UpdateTick; activeDevice = action.ActiveDevice; } if (action.LastInputTypeChangedTick > lastInputTypeChangedTick) { lastInputType = action.LastInputType; lastInputTypeChangedTick = action.LastInputTypeChangedTick; } } var oneAxisActionsCount = oneAxisActions.Count; for (var i = 0; i < oneAxisActionsCount; i++) { oneAxisActions[i].Update(updateTick, deltaTime); } var twoAxisActionsCount = twoAxisActions.Count; for (var i = 0; i < twoAxisActionsCount; i++) { twoAxisActions[i].Update(updateTick, deltaTime); } if (lastInputTypeChangedTick > LastInputTypeChangedTick) { var triggerEvent = lastInputType != LastInputType; LastInputType = lastInputType; LastInputTypeChangedTick = lastInputTypeChangedTick; if (OnLastInputTypeChanged != null && triggerEvent) { OnLastInputTypeChanged.Invoke(lastInputType); } } }
private void ProcessCodeFunctions(CodeClass codeClass, BindingSourceType bindingSourceType, IdeBindingSourceProcessor bindingSourceProcessor) { foreach (var codeFunction in codeClass.Children.OfType <CodeFunction>()) { var bindingSourceMethod = CreateBindingSourceMethod(codeFunction, bindingSourceType, bindingSourceProcessor); if (bindingSourceMethod != null) { bindingSourceProcessor.ProcessMethod(bindingSourceMethod); } } }
private void UpdateBindings(ulong updateTick, float deltaTime) { bool flag = IsListeningForBinding || (Owner.IsListeningForBinding && Owner.PreventInputWhileListeningForBinding); BindingSourceType bindingSourceType = LastInputType; ulong num = LastInputTypeChangedTick; ulong updateTick2 = base.UpdateTick; InputDeviceClass lastDeviceClass = LastDeviceClass; InputDeviceStyle lastDeviceStyle = LastDeviceStyle; int count = regularBindings.Count; for (int num2 = count - 1; num2 >= 0; num2--) { BindingSource bindingSource = regularBindings[num2]; if (bindingSource.BoundTo != this) { regularBindings.RemoveAt(num2); visibleBindings.Remove(bindingSource); } else if (!flag) { float value = bindingSource.GetValue(Device); if (UpdateWithValue(value, updateTick, deltaTime)) { bindingSourceType = bindingSource.BindingSourceType; num = updateTick; lastDeviceClass = bindingSource.DeviceClass; lastDeviceStyle = bindingSource.DeviceStyle; } } } if (flag || count == 0) { UpdateWithValue(0f, updateTick, deltaTime); } Commit(); Enabled = Owner.Enabled; if (num > LastInputTypeChangedTick && (bindingSourceType != BindingSourceType.MouseBindingSource || Utility.Abs(base.LastValue - base.Value) >= MouseBindingSource.JitterThreshold)) { bool flag2 = bindingSourceType != LastInputType; LastInputType = bindingSourceType; LastInputTypeChangedTick = num; LastDeviceClass = lastDeviceClass; LastDeviceStyle = lastDeviceStyle; if (this.OnLastInputTypeChanged != null && flag2) { this.OnLastInputTypeChanged(bindingSourceType); } } if (base.UpdateTick > updateTick2) { activeDevice = ((!LastInputTypeIsDevice) ? null : Device); } }
internal void Update(ulong updateTick, float deltaTime) { InputDevice device = Device ?? FindActiveDevice(); BindingSourceType lastInputType = LastInputType; ulong lastInputTypeChangedTick = LastInputTypeChangedTick; InputDeviceClass lastDeviceClass = LastDeviceClass; InputDeviceStyle lastDeviceStyle = LastDeviceStyle; int count = actions.Count; for (int i = 0; i < count; i++) { PlayerAction playerAction = actions[i]; playerAction.Update(updateTick, deltaTime, device); if (playerAction.UpdateTick > UpdateTick) { UpdateTick = playerAction.UpdateTick; activeDevice = playerAction.ActiveDevice; } if (playerAction.LastInputTypeChangedTick > lastInputTypeChangedTick) { lastInputType = playerAction.LastInputType; lastInputTypeChangedTick = playerAction.LastInputTypeChangedTick; lastDeviceClass = playerAction.LastDeviceClass; lastDeviceStyle = playerAction.LastDeviceStyle; } } int count2 = oneAxisActions.Count; for (int j = 0; j < count2; j++) { oneAxisActions[j].Update(updateTick, deltaTime); } int count3 = twoAxisActions.Count; for (int k = 0; k < count3; k++) { twoAxisActions[k].Update(updateTick, deltaTime); } if (lastInputTypeChangedTick > LastInputTypeChangedTick) { bool flag = lastInputType != LastInputType; LastInputType = lastInputType; LastInputTypeChangedTick = lastInputTypeChangedTick; LastDeviceClass = lastDeviceClass; LastDeviceStyle = lastDeviceStyle; if (this.OnLastInputTypeChanged != null && flag) { this.OnLastInputTypeChanged(lastInputType); } } }
void ProcessActionUpdate(PlayerAction action) { var lastInputType = LastInputType; if (action.UpdateTick > UpdateTick) { UpdateTick = action.UpdateTick; lastInputType = action.LastInputType; } if (LastInputType != lastInputType) { LastInputType = lastInputType; } }
internal int CountBindingsOfType(BindingSourceType bindingSourceType) { int count = 0; var bindingCount = regularBindings.Count; for (int i = 0; i < bindingCount; i++) { var binding = regularBindings[i]; if (binding.BoundTo == this && binding.BindingSourceType == bindingSourceType) { count += 1; } } return(count); }
internal void RemoveFirstBindingOfType(BindingSourceType bindingSourceType) { var bindingCount = regularBindings.Count; for (int i = 0; i < bindingCount; i++) { var binding = regularBindings[i]; if (binding.BoundTo == this && binding.BindingSourceType == bindingSourceType) { binding.BoundTo = null; regularBindings.RemoveAt(i); return; } } }
private int CountBindingsOfType(BindingSourceType bindingSourceType) { int num = 0; int count = regularBindings.Count; for (int i = 0; i < count; i++) { BindingSource bindingSource = regularBindings[i]; if (bindingSource.BoundTo == this && bindingSource.BindingSourceType == bindingSourceType) { num++; } } return(num); }
void RemoveFirstBindingOfType(BindingSourceType bindingSourceType) { var bindingCount = regularBindings.Count; for (var i = 0; i < bindingCount; i++) { var binding = regularBindings[i]; if (binding.BoundTo == this && binding.BindingSourceType == bindingSourceType) { binding.BoundTo = null; regularBindings.RemoveAt(i); triggerBindingChanged = true; return; } } }
void UpdateBindings(ulong updateTick, float deltaTime) { var lastInputType = LastInputType; var lastInputTypeChangedTick = LastInputTypeChangedTick; var lastUpdateTick = UpdateTick; var bindingCount = regularBindings.Count; for (var i = bindingCount - 1; i >= 0; i--) { var binding = regularBindings[i]; if (binding.BoundTo != this) { regularBindings.RemoveAt(i); visibleBindings.Remove(binding); } else { var value = binding.GetValue(Device); if (UpdateWithValue(value, updateTick, deltaTime)) { lastInputType = binding.BindingSourceType; lastInputTypeChangedTick = updateTick; } } } if (bindingCount == 0) { UpdateWithValue(0.0f, updateTick, deltaTime); } Commit(); if (lastInputTypeChangedTick > LastInputTypeChangedTick) { if (lastInputType != BindingSourceType.MouseBindingSource || Utility.Abs(LastValue - Value) >= MouseBindingSource.JitterThreshold) { var triggerEvent = lastInputType != LastInputType; LastInputType = lastInputType; LastInputTypeChangedTick = lastInputTypeChangedTick; } } }
void AddNewBindingSource(object sourceType) { BindingSourceType type = (BindingSourceType)sourceType; //show an object selection field based on the whether monobehavior or scriptable object int index = BindingSourceList.serializedProperty.arraySize; BindingSourceList.serializedProperty.arraySize++; BindingSourceList.index = index; SerializedProperty element = BindingSourceList.serializedProperty.GetArrayElementAtIndex(index); element.FindPropertyRelative("ReferenceType").enumValueIndex = (int)type; element.FindPropertyRelative("ObjectReference").objectReferenceValue = null; serializedObject.ApplyModifiedProperties(); }
private void ProcessActionUpdate(PlayerAction action) { BindingSourceType lastInputType = LastInputType; if (action.UpdateTick > base.UpdateTick) { base.UpdateTick = action.UpdateTick; lastInputType = action.LastInputType; } if (LastInputType != lastInputType) { LastInputType = lastInputType; if (this.OnLastInputTypeChanged != null) { this.OnLastInputTypeChanged(lastInputType); } } }
void ProcessActionUpdate(PlayerAction action) { var lastInputType = LastInputType; if (action.UpdateTick > UpdateTick) { UpdateTick = action.UpdateTick; lastInputType = action.LastInputType; } if (LastInputType != lastInputType) { LastInputType = lastInputType; if (OnLastInputTypeChanged != null) { OnLastInputTypeChanged.Invoke(lastInputType); } } }
internal void Update(ulong updateTick, float deltaTime) { var lastInputType = LastInputType; var lastInputTypeChangedTick = LastInputTypeChangedTick; var actionsCount = actions.Count; for (var i = 0; i < actionsCount; i++) { var action = actions[i]; action.Update(updateTick, deltaTime); if (action.UpdateTick > UpdateTick) { UpdateTick = action.UpdateTick; } if (action.LastInputTypeChangedTick > lastInputTypeChangedTick) { lastInputType = action.LastInputType; lastInputTypeChangedTick = action.LastInputTypeChangedTick; } } var twoAxisActionsCount = twoAxisActions.Count; for (var i = 0; i < twoAxisActionsCount; i++) { twoAxisActions[i].Update(updateTick, deltaTime); } if (lastInputTypeChangedTick > LastInputTypeChangedTick) { var triggerEvent = lastInputType != LastInputType; LastInputType = lastInputType; LastInputTypeChangedTick = lastInputTypeChangedTick; } }
private void RemoveFirstBindingOfType(BindingSourceType bindingSourceType) { int count = regularBindings.Count; int num = 0; BindingSource bindingSource; while (true) { if (num < count) { bindingSource = regularBindings[num]; if (bindingSource.BoundTo == this && bindingSource.BindingSourceType == bindingSourceType) { break; } num++; continue; } return; } bindingSource.BoundTo = null; regularBindings.RemoveAt(num); }
internal void Load(BinaryReader reader, ushort dataFormatVersion) { ClearBindings(); int num = reader.ReadInt32(); for (int i = 0; i < num; i++) { BindingSourceType bindingSourceType = (BindingSourceType)reader.ReadInt32(); BindingSource bindingSource; switch (bindingSourceType) { case BindingSourceType.DeviceBindingSource: bindingSource = new DeviceBindingSource(); break; case BindingSourceType.KeyBindingSource: bindingSource = new KeyBindingSource(); break; case BindingSourceType.MouseBindingSource: bindingSource = new MouseBindingSource(); break; case BindingSourceType.UnknownDeviceBindingSource: bindingSource = new UnknownDeviceBindingSource(); break; default: throw new InControlException("Don't know how to load BindingSourceType: " + bindingSourceType); case BindingSourceType.None: continue; } bindingSource.Load(reader, dataFormatVersion); AddBinding(bindingSource); } }
public void ProcessTypeAndMethod_InVisualStudioExtension_ShouldFindBinding() { // The Visual Studio Extension uses a source code based binding reflection that // * cannot support IPolymorphicBindingType // * resolves the BindingSourceAttribute from the step definition source code without the Types property //ARRANGE var sut = CreateBindingSourceProcessor(); BindingSourceType bindingSourceType = new BindingSourceType { Attributes = new[] { CreateBindingSourceAttribute("BindingAttribute", "TechTalk.SpecFlow.BindingAttribute") }, }; BindingSourceMethod bindingSourceMethod = new BindingSourceMethod(); bindingSourceMethod.Attributes = new[] { CreateBindingSourceAttribute("GivenAttribute", "TechTalk.SpecFlow.GivenAttribute") .WithValue("an authenticated user"), }; //ACT sut.ProcessType(bindingSourceType); sut.ProcessMethod(bindingSourceMethod); //ASSERT var binding = sut.StepDefinitionBindings.Should().ContainSingle().Subject; binding.StepDefinitionType.Should().Be(StepDefinitionType.Given); binding.Regex.Should().NotBeNull(); binding.Regex.IsMatch("an authenticated user").Should().BeTrue(); }
void UpdateBindings(ulong updateTick, float deltaTime) { var bindingCount = regularBindings.Count; for (int i = bindingCount - 1; i >= 0; i--) { var binding = regularBindings[i]; if (binding.BoundTo != this) { regularBindings.RemoveAt(i); visibleBindings.Remove(binding); } else { var value = binding.GetValue(Device); if (UpdateWithValue(value, updateTick, deltaTime)) { LastInputType = binding.BindingSourceType; } } } Commit(); }
void UpdateBindings( ulong updateTick, float deltaTime ) { var bindingCount = regularBindings.Count; for (int i = bindingCount - 1; i >= 0; i--) { var binding = regularBindings[i]; if (binding.BoundTo != this) { regularBindings.RemoveAt( i ); visibleBindings.Remove( binding ); } else { var value = binding.GetValue( Device ); if (UpdateWithValue( value, updateTick, deltaTime )) { LastInputType = binding.BindingSourceType; } } } Commit(); }
void LastInputTypeChanged(BindingSourceType type) { UpdateHotkeyText(); }
void LastInputTypeChanged(BindingSourceType type) { UpdateSuffix(); }
internal int CountBindingsOfType( BindingSourceType bindingSourceType ) { int count = 0; var bindingCount = regularBindings.Count; for (int i = 0; i < bindingCount; i++) { var binding = regularBindings[i]; if (binding.BoundTo == this && binding.BindingSourceType == bindingSourceType) { count += 1; } } return count; }
internal void RemoveFirstBindingOfType( BindingSourceType bindingSourceType ) { var bindingCount = regularBindings.Count; for (int i = 0; i < bindingCount; i++) { var binding = regularBindings[i]; if (binding.BoundTo == this && binding.BindingSourceType == bindingSourceType) { binding.BoundTo = null; regularBindings.RemoveAt( i ); return; } } }
protected virtual void SetLastInputType(BindingSource inBinding) { LastInputType = inBinding.BindingSourceType; }
private BindingSourceMethod CreateBindingSourceMethod(MethodDefinition methodDefinition, BindingSourceType bindingSourceType, IBindingSourceProcessor bindingSourceProcessor) { return(new BindingSourceMethod { BindingMethod = new BindingMethod(bindingSourceType.BindingType, methodDefinition.Name, GetParameters(methodDefinition), GetReturnType(methodDefinition)), IsPublic = methodDefinition.IsPublic, IsStatic = methodDefinition.IsStatic, Attributes = GetAttributes(methodDefinition.CustomAttributes.Where(attr => bindingSourceProcessor.CanProcessTypeAttribute(attr.AttributeType.FullName))) }); }
void Update( ulong updateTick, float deltaTime ) { var device = Device ?? InputManager.ActiveDevice; var actionsCount = actions.Count; for (int i = 0; i < actionsCount; i++) { var action = actions[i]; action.Update( updateTick, deltaTime, device ); if (action.UpdateTick > UpdateTick) { UpdateTick = action.UpdateTick; LastInputType = action.LastInputType; } } var oneAxisActionsCount = oneAxisActions.Count; for (int i = 0; i < oneAxisActionsCount; i++) { oneAxisActions[i].Update( updateTick, deltaTime ); } var twoAxisActionsCount = twoAxisActions.Count; for (int i = 0; i < twoAxisActionsCount; i++) { twoAxisActions[i].Update( updateTick, deltaTime ); } }
private BindingSourceMethod CreateBindingSourceMethod(CodeFunction codeFunction, BindingSourceType bindingSourceType, IdeBindingSourceProcessor bindingSourceProcessor) { try { var filteredAttributes = codeFunction.Attributes.Cast <CodeAttribute2>().Where(attr => bindingSourceProcessor.CanProcessTypeAttribute(attr.FullName)).ToArray(); return(bindingReflectionFactory.CreateBindingSourceMethod(codeFunction, bindingSourceType, filteredAttributes)); } catch (Exception ex) { tracer.Trace("CreateBindingSourceMethod error: {0}", this, ex); return(null); } }
public BindingSourceMethod CreateBindingSourceMethod(CodeFunction codeFunction, BindingSourceType bindingSourceType, CodeAttribute2[] filteredAttributes) { return(new BindingSourceMethod { BindingMethod = CreateBindingMethod(codeFunction), IsPublic = codeFunction.Access == vsCMAccess.vsCMAccessPublic, IsStatic = (codeFunction.FunctionKind & vsCMFunction.vsCMFunctionShared) != 0, Attributes = GetAttributes(filteredAttributes) }); }