private bool IsBlocked(Vector2 pos, float radius)
    {
        var loc = LocAndOffsets.FromInches(pos);

        using var raycastPacket = new RaycastPacket();
        raycastPacket.origin    = loc;
        raycastPacket.targetLoc = loc;
        raycastPacket.radius    = radius;
        raycastPacket.flags    |= RaycastFlag.StopAfterFirstFlyoverFound
                                  | RaycastFlag.StopAfterFirstBlockerFound
                                  | RaycastFlag.ExcludeItemObjects
                                  | RaycastFlag.HasSourceObj
                                  | RaycastFlag.HasRadius;

        return(raycastPacket.RaycastShortRange() > 0);
    }
    private bool IsTargetLocationClear(LocAndOffsets targetLocation)
    {
        var radius = Picker.flagsTarget.HasFlag(UiPickerFlagsTarget.Radius)
            ? Picker.radiusTarget * locXY.INCH_PER_FEET
            : Picker.caster.GetRadius();

        using var raycast = new RaycastPacket();
        raycast.sourceObj = Picker.caster;
        raycast.origin    = targetLocation;
        raycast.targetLoc = targetLocation;
        raycast.radius    = radius;
        raycast.flags     = RaycastFlag.ExcludeItemObjects
                            | RaycastFlag.StopAfterFirstBlockerFound
                            | RaycastFlag.StopAfterFirstFlyoverFound
                            | RaycastFlag.HasSourceObj
                            | RaycastFlag.HasRadius;

        return(raycast.RaycastShortRange() == 0);
    }