protected override void OnGrabbed(HVRGrabArgs args) { Debug.Log($"nocked"); args.Cancel = true; Grabbed.Invoke(this, args.Grabbable); ForceRelease(); }
public void Apply_Character_WithExistingGrabbedCondition_Test() { var character = CreateMockCharacter(); character.Conditions.Add(new Grabbed()); var grabbed = new Grabbed(); grabbed.Apply(character); }
public void Apply_NotACharacter_Test() { var entity = Mock.Of<IEntity>(); var grabbed = new Grabbed(); grabbed.Apply(entity); Assert.IsTrue(true); // If we made it here without exception then the test passed }
protected override void OnGrabbed(HVRGrabArgs args) { //Debug.Log($"force grabbed!"); base.OnGrabbed(args); if (_additionalGrabRoutine != null) { StopCoroutine(_additionalGrabRoutine); } IsForceGrabbing = true; if (GrabStyle == HVRForceGrabMode.GravityGloves) { StartCoroutine(ForceGrab(args.Grabbable)); } else { CheckForceAnchor(); StartCoroutine(ForcePull(args.Grabbable)); } Grabbed.Invoke(this, args.Grabbable); args.Grabbable.Collided.AddListener(OnGrabbableCollided); args.Grabbable.Grabbed.AddListener(OnGrabbableGrabbed); if (SFXGrab) { SFXPlayer.Instance.PlaySFX(SFXGrab, transform.position); } }
void MouseUnselected(string key) { //fire event Grabbed?.Invoke(this, new GrabbedEventArgs() { IsGrabbed = false }); }
public void Remove_NoConditions_Test() { var character = CreateMockCharacter(); var grabbed = new Grabbed(); grabbed.Apply(character); grabbed.Remove(character); Assert.AreEqual(0, character.Conditions.Count); }
void OnCollisionEnter2D(Collision2D other) { if (other.gameObject.CompareTag("Player")) { Grabbed?.Invoke(); Destroy(gameObject); } }
public void Apply_Character_NoConditions_Test() { var character = CreateMockCharacter(); var grabbed = new Grabbed(); grabbed.Apply(character); Assert.IsTrue(character.Conditions.Contains(grabbed)); Assert.IsTrue(character.Conditions.Any(c => c.Id == EntityIds.FLAT_FOOTED_CONDITION_ID)); Assert.IsTrue(character.Conditions.Any(c => c.Id == EntityIds.IMMOBILIZED_CONDITION_ID)); }
public void OnGripPressed(object sender, ControllerGripArgs e) { if (!handIsIn) { return; } Connect(sender, true, gameObject); Grabbed?.Invoke(this); }
private void OnCollisionEnter(Collision collision) { if (!holdingCube && collision.gameObject.tag == "cube" && intakeAxis < 0) { grabbedScript = collision.gameObject.GetComponent <Grabbed>(); grabbedScript.intake = intake; grabbedScript.SetGrabbed(true); holdingCube = true; } }
public void Grab() { if (IsGrabbed) { return; } IsGrabbed = true; Grabbed?.Invoke(this, EventArgs.Empty); }
public void Apply_Character_GrabConditionRemoval_Test() { var character = CreateMockCharacter(); var grabbed = new Grabbed(); grabbed.Apply(character); var restrained = new Restrained(); restrained.Apply(character); Assert.IsFalse(character.Conditions.Any(c => c.Id == EntityIds.GRABBED_CONDITION_ID)); Assert.IsTrue(character.Conditions.Any(c => c.Id == EntityIds.RESTRAINED_CONDITION_ID)); Assert.IsTrue(character.Conditions.Any(c => c.Id == EntityIds.FLAT_FOOTED_CONDITION_ID)); Assert.IsTrue(character.Conditions.Any(c => c.Id == EntityIds.IMMOBILIZED_CONDITION_ID)); }
public IEventGrabber Grab(StationDesc station) { if (!_grabbeds.ContainsKey(station)) { var grabbed = new Grabbed() { { MsgType.Signal, delegate {} }, { MsgType.Link, delegate {} }, { MsgType.Block, delegate {} } }; _grabbeds.Add(station, grabbed); } return(new EventGrabber(_grabbeds[station])); }
public void Release(Planet planet) { if (!Grabbed) { return; } foreach (var col in Grabbed.GetComponentsInChildren <Collider>()) { col.enabled = true; } //Grabbed.Release(planet); Grabbed = null; }
protected override void OnGrabbed(HVRGrabArgs args) { base.OnGrabbed(args); var grabbable = args.Grabbable; _previousParent = grabbable.transform.parent; _previousScale = grabbable.transform.localScale; grabbable.transform.parent = transform; grabbable.transform.localPosition = Vector3.zero; grabbable.transform.localRotation = Quaternion.identity; var socketable = grabbable.Socketable; _modelBounds = grabbable.ModelBounds; UpdateScale(grabbable); Vector3 offSet = Vector3.zero; if (socketable.SocketOrientation) { offSet = -GetPositionOffset(grabbable); var rotationOffset = GetRotationOffset(grabbable); var delta = grabbable.transform.localRotation * Quaternion.Inverse(rotationOffset); grabbable.transform.localRotation *= delta; offSet = delta * offSet; } offSet.x *= grabbable.transform.localScale.x; offSet.y *= grabbable.transform.localScale.y; offSet.z *= grabbable.transform.localScale.z; grabbable.transform.localPosition += offSet; HandleRigidBodyGrab(grabbable); PlaySFX(socketable); if (args.RaiseEvents) { Grabbed.Invoke(this, grabbable); } }
public void Release() { AnimationController.SetBool("Grabbed", false); if (!Grabbed) { return; } foreach (var col in Grabbed.GetComponentsInChildren <Collider>()) { col.enabled = true; } Grabbed.transform.SetParent(null); Grabbed.Throw(Velocity); Grabbed.Flying = true; SteamVR_Controller.Input((int)_controller.controllerIndex).TriggerHapticPulse(3000); StartCoroutine(KillTimer(Grabbed.gameObject)); Grabbed = null; }
protected void EmitGrabbed() { Grabbed?.Invoke(this, EventArgs.Empty); }
void MouseSelecting(MouseSelectingArgs e, string key) { //get selection plane for moving within if (e.Ray != null) { //select corect plane var cameraDir = (Application as App).CameraNode.Direction; switch (key) { case "x": if (Math.Abs(cameraDir.Y) > Math.Abs(cameraDir.X)) { _plane = new Urho.Plane(Vector3.Forward, Node.Position); } else { _plane = new Urho.Plane(Vector3.Up, Node.Position); } break; case "y": if (Math.Abs(cameraDir.X) > Math.Abs(cameraDir.Z)) { _plane = new Urho.Plane(Vector3.Right, Node.Position); } else { _plane = new Urho.Plane(Vector3.Forward, Node.Position); } break; case "z": if (Math.Abs(cameraDir.X) > Math.Abs(cameraDir.Y)) { _plane = new Urho.Plane(Vector3.Right, Node.Position); } else { _plane = new Urho.Plane(Vector3.Up, Node.Position); } break; case "xz": _plane = new Urho.Plane(Vector3.Up, Node.Position); break; case "yx": _plane = new Urho.Plane(Vector3.Forward, Node.Position); break; case "zy": _plane = new Urho.Plane(Vector3.Right, Node.Position); break; } _offset = Node.Position - e.Ray.Value.Position; } //using touch _usingTouch = Application.Input.IsTouching(); //fire event Grabbed?.Invoke(this, new GrabbedEventArgs() { IsGrabbed = true }); }