1.4 will introduce the ability for NBT editors to add custom names, lore descriptions and enchantment to ANY item in the game. I feel there is one more thing we could add to fully round out the feature: custom item textures referenced by NTB tags on any item instance.
This not the same as using a texture pack - because that would affect every instance of the base item indiscriminately. What I suggest here is a separate file which the NTB tags would use to pick a unique texture from. So just as one instance of an item can have a custom name/lore/enchantment set, so too could it have a unique texture to go along with it. Meanwhile, all the other "regular" items of the same type would continue to use the normal texture provided by the familiar texture pack.
I feel this would greatly expand the item capacity for custom maps and even themed SMP servers.
How would this work?
1. customItem.png
A new texture file would be added to minecraft in the /gui/ folder. It would be empty - perhaps with the exception of having the default 16x16 grid lines put in to help artists center their sprites. In this file, texture pack artists would add in new item sprites as they saw fit, completely free form, in whatever location they wanted. I stress this part because to do it any other way would limit the creativity for map makers. As a small example, what if a map maker wanted to fill up the sheet with custom sword sprites and nothing else? Doing it this way would help account for as many variations as possible for any combination of unique items.
2. NBT tag editing
Similar to how custom names and lore are added to items now, map makers could add a new tag which would reference the customItems.png and the coordinates of the sprite on the texture. In turn, the game would apply the icon found there to this particular item currently being edited.
Compatibility issues:
Since this would be essentially tied to a texture pack, compatibility across different maps could be a problem if care is not taken. Ultimately, it would be up to the map maker to ensure they are familiar with the texture pack they are using (and therefore know the contents of the customItems.png) and be able to select the correct UV coordinates for the custom item NBT tags.
Or... map makers could just as easily create their own customItems.png file and include it with their map.
For multiplayer servers, some extra consideration is needed. Namely, what would a player with the default "texture pack" see if someone else was using a custom item? If the local texture pack does not have a customItems.png (or hasn't be changed from the default) I think the game code for that player should know to ignore the tags and just render the item using the regular item texture. As an example, if you have a custom iron sword texture, anyone using the default texture pack would just see a normal iron sword.
Players using their own packs with different customItems.png files would see their respective custom items as defined on their own local packs - the same as how normal texture packs work today. If a SMP server is themed, it can always use the recommended texture pack feature to provide a consistent customItems.png file to is community.
QUESTION: The way I'm picturing it, this would be tied to texture packs... basically another facet of them. Do you feel this is a good approach?
UPDATE: This could also be extended to armors worn by the players. Maybe it would be better to have a custom folder and place the customItems.png inside that. In addition, we could also have alternate armor.png files stored there - again, referenced by NBT tags on the appropriate item,
This not the same as using a texture pack - because that would affect every instance of the base item indiscriminately. What I suggest here is a separate file which the NTB tags would use to pick a unique texture from. So just as one instance of an item can have a custom name/lore/enchantment set, so too could it have a unique texture to go along with it. Meanwhile, all the other "regular" items of the same type would continue to use the normal texture provided by the familiar texture pack.
I feel this would greatly expand the item capacity for custom maps and even themed SMP servers.
How would this work?
1. customItem.png
A new texture file would be added to minecraft in the /gui/ folder. It would be empty - perhaps with the exception of having the default 16x16 grid lines put in to help artists center their sprites. In this file, texture pack artists would add in new item sprites as they saw fit, completely free form, in whatever location they wanted. I stress this part because to do it any other way would limit the creativity for map makers. As a small example, what if a map maker wanted to fill up the sheet with custom sword sprites and nothing else? Doing it this way would help account for as many variations as possible for any combination of unique items.
2. NBT tag editing
Similar to how custom names and lore are added to items now, map makers could add a new tag which would reference the customItems.png and the coordinates of the sprite on the texture. In turn, the game would apply the icon found there to this particular item currently being edited.
Compatibility issues:
Since this would be essentially tied to a texture pack, compatibility across different maps could be a problem if care is not taken. Ultimately, it would be up to the map maker to ensure they are familiar with the texture pack they are using (and therefore know the contents of the customItems.png) and be able to select the correct UV coordinates for the custom item NBT tags.
Or... map makers could just as easily create their own customItems.png file and include it with their map.
For multiplayer servers, some extra consideration is needed. Namely, what would a player with the default "texture pack" see if someone else was using a custom item? If the local texture pack does not have a customItems.png (or hasn't be changed from the default) I think the game code for that player should know to ignore the tags and just render the item using the regular item texture. As an example, if you have a custom iron sword texture, anyone using the default texture pack would just see a normal iron sword.
Players using their own packs with different customItems.png files would see their respective custom items as defined on their own local packs - the same as how normal texture packs work today. If a SMP server is themed, it can always use the recommended texture pack feature to provide a consistent customItems.png file to is community.
QUESTION: The way I'm picturing it, this would be tied to texture packs... basically another facet of them. Do you feel this is a good approach?
UPDATE: This could also be extended to armors worn by the players. Maybe it would be better to have a custom folder and place the customItems.png inside that. In addition, we could also have alternate armor.png files stored there - again, referenced by NBT tags on the appropriate item,
Please do!