public static (float x, float y, float z)? GetCursorPosition(bool isForObjectDrag) { Point?relPosMaybe = GetPositionMaybe(isForObjectDrag, false); if (!relPosMaybe.HasValue) { return(null); } Point relPos = relPosMaybe.Value; float inGameX, inGameY, inGameZ; if (Config.CurrentMapGraphics.IsOrthographicViewEnabled) { (inGameX, inGameY, inGameZ) = MapUtilities.ConvertCoordsForInGameOrthographicView(relPos.X, relPos.Y); } else { (inGameX, inGameZ) = MapUtilities.ConvertCoordsForInGameTopDownView(relPos.X, relPos.Y); inGameY = Config.CurrentMapGraphics.MapViewCenterYValue; } return(inGameX, inGameY, inGameZ); }