Esempio n. 1
0
    private void ShowPossibleAssignements(Vector2 mousePos, RaycastResponse raycast)
    {
        var dude = Selection[0];

        Assignments = dude.GetAssignmentsWith(raycast);
        ShowSelectableActions(mousePos);
    }
Esempio n. 2
0
    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();
    }