Negative id values would try to access the array out of bounds and throw an java.lang.ArrayIndexOutOfBoundsException.
By: MikeMatrix <m.braun92@gmail.com>
Reobtaining a constructor is not a trivial operation, this change makes the Material enum store the respective constructors for each MaterialData.
Additionally 'fixed' the material tests to use proper generics.
By: Darth Android <darthandroid@gmail.com>