-[INTRODUCTION]-
Voilà ! Vous devez avoir l'habitude des noms qui n'inspirent rien de bon si vous lisez mes tutoriels
Mais là, à la fin, vous serez fier de ce que vous aurez appris, une fois de plus. Au passage, ce tutoriel peut intéresser les utilisateurs de ModLoader également, bien que ces personnes soient différents (moi, raciste ?).
En effet, je crois qu'il ne demanderait pas beaucoup de modification étant donné qu’exception faite des classes crées, il y a 2 lignes de code.
Et maintenant que j'ai correctement capté votre attention, pourquoi ne pas vous expliquer ce que se cache derrière ce nom louche ? On va le décomposer en 2 mots.
Metadata signifie que je vais créer plusieurs blocks sur le même ID car ils sont très semblables.
Colorizer est quelque chose d'un peu plus neuf pour la majorité d'entre vous, mais si vous allez vite voir dans eclipse, il s'agit des fonctions utilisées pour colorer les feuilles.
En effet, dans le terrain, elle sont grises. Je me suis inspiré de ça pour créer mes blocks colorés.
Si vous êtes rapide, vous avez déjà compris. Je vais créer 16 blocks, avec 1 ID, et AUCUNE nouvelle texture Byebye forge, tu ne sers plus à rien
1] Théorie
Première partie : la théorie. Qu'est ce qu'il y a à expliquer ? La logique sur laquelle va se poser notre code, ainsi que celle existant déjà dans minecraft.
Tout d'abord, notre logique.
-On va commencer par créer notre block
-Bien sur, on va lui créer une classe
-On va définir en plusieurs temps que notre block utilise les metadatas
-On va modifier sa couleur (en main) en fonction du metadata via un item
-On va modifier le rendu en fonction du metadata
Créer le bloc, je suppose que vous serez capable de comprendre.
Pour ce qui est du méta-data, ce qu'il faut savoir, c'est qu'un bloc (par défaut) peut avoir 16 méta-datas. Ceux-là même que l'on va utiliser pour notre block.
La se pose la question : sa sert à quoi ?
A réduire le nombre d'IDs utilisés, et d'autres choses, mais ce qu'il faut retenir c'est qu'ils ont beaucoup de traits COMMUNS.
Par exemple, tous mes blocks seront les mêmes, à la différence près de leur texture. Je tiens à mentionner que dans ce tutoriel, mon exemple sera une vitre, mais n'hésitez pas à le faire avec d'autre blocks
Prenez la texture de base de la laine, et modifier le rendu
Vous avez des tapis avec métadata
Bon, c'est pas forcément le meilleur exemple car les textures existent déjà, mais je sens que ce tutoriel peut avoir de nombreux débouchés (même si c'est la cas de tout tuto
)
Ensuite, pour l'item (je suis pas dans le même ordre que la liste, et alors ?), ce ne sera pas très compliqué, un peu de bon sens, et le tour est joué. Tout ce qu'il faut retenir c'est qu'on défini la parité block/méta-data && item/méta-data dans la classe Block. Le code utilisé pour sa couleur nous renverra à Colorizer*monblock* qui sera pendant le reste du tutoriel ColorizerColoredGlass.
Pour le rendu du bloc en couleur, même chose, il nous renverra à ColorizerColoredGlass, comme le font les feuilles
Et enfin ce ColorizerColoredGlass... Ben, il y a presque rien dedans !
En effet, hormis (souris) une ou deux fontion / méthode, tout ce qu'il y a, ce sont des chiffres
2] Liste des couleurs
Je sais, c'est un peu en désordre... Mais bon
En fait, pour la suite, je vais définir la classe complète, les couleurs, et seulement les items...
Donc si vous voulez faire des tests au fur et à mesure, retirez la ligne de code précédente, mais n'oubliez pas de la remettre au moment venu !
Alors, dans minecraft, et dans cette version d'OpenGL, si je ne me trompes pas, les couleurs ont de drôle de noms...
Pas de Block.colorize.jaune, soyons réalistes
Par contre, ce qui est frustrant, c'est que la couleur ne soit ni en hexadécimal ni en RVB.
Pour exemple : 2437522 est du bleu.
Alors là, je dis chapeau ! Il pouvaient pas faire plus simple ?
En fait, pour avoir la couleur :
2437522 => Transformer en hexadecimal => 253192 => Lire RRGGBB => 25 : 32 : 92 => Prédominance du bleu => C'est du bleu
Alors, pour obtenir votre code, il faut faire le contraire. Commencez par choisir votre couleur
ici, et copiez le code hexadécimal
Ensuite, collez le
ici pour obtenir le code en décimal. Ce code servira donc à définir votre couleur
Alors je vous dis pas comment je me fesais ch...
Jusqu'à ce que je penses à aller voir dans ItemDye, et on a en fait les correspondance, sans devoir réfléchir, à une exception près
Je vous mets donc la liste de ce pas :
- Black : 19773019
- Red : 11743532
- Green : 3887386
- Brown : 5320730
- Blue : 2437522
- Purple : 8073150
- Cyan : 2651799
- LightGrey (Silver) : 2651799 dans le code, mais vous l'aurez remarqué, c'est le même que Cyan, utilisez : 12303291
- DarkGrey : 4408131
- Pink : 14188952
- LightGreen (Lime) : 4312372
- Yellow : 14602026
- LightBlue : 6719955
- Magenta : 12801229
- Orange : 15435844
- White : 15790320
Avec ça, vous devrez déjà mieux suivre ce qui va suivre
3] Le tutoriel en vidéo
Voilà, j'espère que vous aurez appris quelque chose. Vous pouvez aussi lire mon tutoriel sur
Ironcraft :)
Bien sur, vous pouvez aussi vous abonner à ma chaîne pour voir plus vite mes tutoriels