private Point getHookPos() { //Point F_initialMousePos = MouseInteropHelper.getCursorPos(); Input.Mouse.User32_MousePosition mousePos = new Input.Mouse.User32_MousePosition(); double screenWidth = ScreenHelper.getActualPrimaryScreenWidth(); double screenHeight = ScreenHelper.getActualPrimaryScreenHeight(); Point rectLocation = mousePos.GetCursorPos(); //get MousePos --> center of new rect log.Debug($"Start searching for hook at {rectLocation.ToString()}."); rectLocation.Offset(-screenWidth / 4, -screenWidth / 4); //move point to use it as rect location Rect halfScreenWidthSquare = new Rect(rectLocation, new Size(screenWidth / 2, screenWidth / 2)); log.Debug($"Search for hook in area: {halfScreenWidthSquare.ToString()}"); IEnumerator <Point> coords = new CoordinateProvider.RectSpiral(halfScreenWidthSquare); while (coords.MoveNext() && timerEnabled) { // 1 Move Cursor Point p = coords.Current; log.Trace($"Set mouse pos at {p.ToString()}."); mousePos.SetCursorPos(p); Thread.Sleep(10); // 2 Compare Cursor if (Equals(Input.Mouse.Cursor.GetCursorImg(), SpongeBot.Properties.Resources.HookCursor)) { log.Info($"Found bobber at {p.ToString()}). Wait and recheck."); //p = new Point(p.X + 30, p.Y + 30); // works well @ 1080p & first person view & line by line //mousePos.SetCursorPos(p); Thread.Sleep(250); //cursor might change due to bobber movement when mouse is at the very corner if (Equals(Input.Mouse.Cursor.GetCursorImg(), SpongeBot.Properties.Resources.HookCursor)) { log.Notice($"Found bobber at {p.ToString()})."); return(p); } } } throw new Exception("No Bobber found in area."); }
public void LogMessage(string msg) { Logging.Notice("[" + Name + "]: " + msg); }
// Logging method public void Log(string message) { Logging.Notice(string.Format("[{0}] {1}", Name, message)); }