SlimeKnights/TinkersConstruct — pull request #1283 by squeek502 (2015-01-01 00:25:03+00:00)
Title: Fix arrow shaft name / add CustomMaterial support to DynamicToolPart

* Fixes #1275

#### Prioritized list of how the name gets resolved for custom materials:

##### If CustomMaterial.input is not null:
1. `"toolpart." + partName + "." + (CustomMaterial.input.getUnlocalizedName() with the part before the first period removed)`
2. `"toolpart." + partName` with %%material replaced by `"toolpart.material." + (CustomMaterial.input.getUnlocalizedName() with the part before the first period removed)`
3. `"toolpart." + partName` with %%material replaced by `CustomMaterial.input.getDisplayName()`

Example with Blaze Rod:
1. `toolpart.Shaft.blazeRod`
2. %%material = `toolpart.material.blazeRod`
3. %%material = `"Blaze Rod"` (the localized name of a blaze rod ItemStack)

##### If CustomMaterial.input is null:
1. `"toolpart." + partName + "." + customMaterial.oredict`
2. `"toolpart." + partName` with %%material replaced by `"toolpart.material." + customMaterial.oredict`
3. `"toolpart." + partName` with %%material replaced by `customMaterial.oredict`

Example with stickWood (note: this isn't currently how it works; the ArrowShaftMaterial is added using a Items.stick ItemStack):
1. `toolpart.Shaft.stickWood`
2. %%material = `toolpart.material.stickWood`
3. %%material = `"stickWood"` (the oredict string)