Have the IToolPart implementations actually respect the IToolPart API.

None of the Toolparts actually return -1 on invalid material, but return invalid materials.