private void ShowPossibleAssignements(Vector2 mousePos, RaycastResponse raycast) { var dude = Selection[0]; Assignments = dude.GetAssignmentsWith(raycast); ShowSelectableActions(mousePos); }
public override void _PhysicsProcess(float delta) { var world = GetWorld(); var spaceState = world.DirectSpaceState; foreach (var raycast in raycasts) { var result = spaceState.IntersectRay(raycast.From, raycast.To); var response = new RaycastResponse(); if (result.ContainsKey("collider") && result["collider"] is Node node) { response.collider = node; } if (result.ContainsKey("collider_id") && result["collider_id"] is int collider_id) { response.collider_id = collider_id; } if (result.ContainsKey("normal") && result["normal"] is Vector3 normal) { response.normal = normal; } if (result.ContainsKey("position") && result["position"] is Vector3 position) { response.position = position; } if (result.ContainsKey("rid") && result["rid"] is RID rid) { response.rid = rid; } if (result.ContainsKey("shape") && result["shape"] is int shape) { response.shape = shape; } raycast.Promise.SetResult(response); } raycasts.Clear(); }