UV painting within Blender? I basically want to create this in Blender 

But I have some trouble creating the textures for it. I have created an UV map for it which looks like this.



Now I just want to paint on the UV map. But I am not sure how I would paint those textures. I need some some masking tools, for example I only want to paint on a specific face and not on the whole texture.

I also need some tools like the fill tool and the ability to draw lines because as you can see it is not hand drawn.

Can I do this in Blender itself or do I need to use an 3rd party tools like Photoshop/GIMP?
I would suggest a 2 step process.

In edit mode select all the faces you want of one color. Then in texture pain mode. click the button in between the layers and the shading mode buttons. Its tool tip says Face selection masking for painting That will limit the area allowed to be painted, to only what is selected.

Then after you have the base colors down. Open the newly painted image in gimp/photoshop and paint in all your shading and details.