1. Le forum de Minecraft-France va définitivement fermer ses portes. Celui-ci restera en lecture seule mais vous ne pourrez plus y apporter de nouveaux topics. Nous vous invitons à nous rejoindre sur le Discord de Minecraft-France qui permet de présenter vos projets, discuter avec la communauté etc.. Merci à tous d'avoir fait vivre ce forum de nombreuses années. Pour nous rejoindre sur Discord, Cliquez ici

[Tutoriel](Modding)Colorizer et Méta - datas

Discussion dans 'Corbeille' créé par TheFumelgo, 26 Sept 2012.

  1. TheFumelgo

    TheFumelgo Enter the World

    Inscrit:
    26 Juin 2012
    Messages:
    16
    Points:
    63
    Sexe:
    Homme
    [​IMG]
    -[INTRODUCTION]-

    Voilà ! Vous devez avoir l'habitude des noms qui n'inspirent rien de bon si vous lisez mes tutoriels [​IMG]
    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 [​IMG] Byebye forge, tu ne sers plus à rien [​IMG]

    [​IMG]
    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 [​IMG]
    Prenez la texture de base de la laine, et modifier le rendu [​IMG] Vous avez des tapis avec métadata [​IMG]
    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 [​IMG])


    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 [​IMG]

    Et enfin ce ColorizerColoredGlass... Ben, il y a presque rien dedans !
    [​IMG]
    En effet, hormis (souris) une ou deux fontion / méthode, tout ce qu'il y a, ce sont des chiffres [​IMG]
    2] Liste des couleurs

    Je sais, c'est un peu en désordre... Mais bon [​IMG]
    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 [​IMG]
    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 ? [​IMG]

    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 [​IMG]
    Ensuite, collez le ici pour obtenir le code en décimal. Ce code servira donc à définir votre couleur [​IMG]

    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 [​IMG]

    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 :lol:

    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 ;)
     

Partager cette page