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); }