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

#1 Créer un Bloc Simple

Discussion dans 'Tutoriels' créé par _Tryall_, 19 Fev 2013.

  1. _Tryall_

    _Tryall_ Mineur de Fer

    Inscrit:
    30 Jan 2012
    Messages:
    501
    Points:
    109
    Sexe:
    Homme
    [Si vous n'avez pas déjà décompilé votre Minecraft, suivez ce tutoriel avant de commencer celui-ci]

    Hello ! Aujourd'hui nous allons apprendre à faire un bloc simple sans API (d'où le Vanilla).

    Difficulté : Facile
    Temps : 15 Minutes
    Commentaire : Légèrement long, mais bien expliqué avec beaucoup de screens pour vous guider !

    Bon, normalement vous avez lancé Eclipse avec votre projet dedans ? Bien ! A gauche vous avez ceci :


    [​IMG]


    (normalement vous n'avez pas la croix rouge, j'ai juste fail ma décompilation mais le tuto reste le même).


    Déroulez simplement dans cet ordre : [Client ---> SRC ----> net.minecraft.src] Puis cherchez "Block.java" dans la liste (Les icônes en forme de feuilles avec un "J" bleu) Une fois cette "Class" trouvée, double-cliquez dessus pour l'ouvrir /i\ Vous pouvez ouvrir plusieurs class en même temps ! Regardez juste les onglets en haut de l'affichage de la class ! /i\


    Maintenant descendez légèrement jusqu'à voir :


    [​IMG]


    C'est la déclaration de votre bloc ! Pour ajouter votre bloc ou VOS blocs, je vous conseille de sauter une ligne (n'importe où) et de mettre "//Mes Blocs Début" et sautez encore une ligne pour mettre "//Mes Blocs Fin"

    Comme ceci :


    [​IMG]


    Ces "commentaires" servent juste pour retrouver rapidement vos déclarations de blocs si vous voulez en faire plusieurs, c'est juste plus simple. :) En passant, faites vos déclarations toujours côte à côte, ça évite de se perdre ou de laisser des blocs "Fail" un peu partout.

    Maintenant, créons notre déclaration pour faire un bloc simple sans AUCUNE autre fonctionnalité, je ferai d'autres mini-tutos pour vous apprendre à ajouter des fonctions différentes. :) Marquez ceci entre vos deux commentaires :


    Code (java):
    public static final Block bouse = (new BlockStone(500,26)).setHardness(1.5F).setResistance(10.0F).setStepSound(soundStoneFootstep).setBlockName("bouse");


    public static final Block = Permet de déclarer votre bloc.
    bouse = Le nom de votre bloc :cool: (mettez ce que vous voulez mais seulement en minuscules et que des lettres).
    BlockStone = C'est la propriété de votre bloc, vous pouvez voir dans les autres class, BlockCactus, BlockSand, BlockGravel etc... Le nom que vous allez mettre va juste reprendre les mêmes propriétés que la class qui porte le même nom. Moi je ne suis pas parti trop loin, j'ai juste repris les mêmes valeurs que la stone !
    (500, = L'Id de votre block, attention de ne pas en prendre un déjà existant, je sais qu'il y a une limite mais je ne trouve plus le nombre de cette limite...
    26)) = L'id de la Texture (sera plus simple en 1.5) Pour la calculer, Il suffit de prendre la première texture de votre Terrain .png et de compter "+1" à chaque nouvelle texture de gauche à droite en descendant d'une ligne une fois que vous avez fini une autre ligne en revenant vers la gauche (Pas très clair je sais, mais comme la 1.5 arrive bientôt ce sera plus simple pour les textures)
    .setHardness(1.5F) = C'est la résistance de votre bloc face aux explosions d'un creeper ou d'une TNT. Plus le nombre est élevé, moins il y aura de destruction façe à une explosion.
    .setResistance(10.0F) = C'est la vitesse de destruction de votre bloc. Plus elle est élevée, plus il sera long à casser (6000000.0F = Trois jours de minages je crois :pirate:).
    .setStepSound(soundStoneFootstep) = Le bruit que fera votre bloc quand vous marchez dessus, remontez légèrement pour voir la liste.


    [​IMG]


    .setBlockName("bouse"); = C'est le nom qui sera donné dans la traduction du Fichier "Lang", à voir une prochaine fois. ;)



    Voilà pour moi (j'ai volontairement sauté une ligne pour que vous puissiez voir le code en entier) :


    [​IMG]


    Normalement c'est bon, Il suffit juste de sauvegarder et de lancer l'application avec le petit "Play" en vert sur la barre des tâches. Bien sûr, inutile pour le moment car nous n'avons aucun moyen de l'avoir en créatif, ni de le crafter. :(



    [Non disponible] Prochaine étape : Mettre son Block sur la liste de l'inventaire en Créatif [Non Disponible]
     
    • J'aime J'aime x 1
  2. _Tryall_

    _Tryall_ Mineur de Fer

    Inscrit:
    30 Jan 2012
    Messages:
    501
    Points:
    109
    Sexe:
    Homme
    Je trouve la mise en page dégelasse :( Impossible de l'Amélioré, je la trouve bordélique à en chier des Poires...
     
  3. ATE47

    ATE47 Bûcheron

    Inscrit:
    3 Juil 2012
    Messages:
    227
    Points:
    121
    Sexe:
    Homme
    Chacun pense ce qu'il veut mais on doit le faire sans être trop agressif
    perso je trouve que ces bien et je trouve pas stupide de mettre la difficulté et le temps.
     
  4. Swoonix

    Swoonix Résident de l'End

    Inscrit:
    21 Juil 2012
    Messages:
    6 910
    Points:
    219
    C'est ton vocabulaire et ton double post qui sont "dégueulasses" (car oui ça s'écrit comme ça). Je sanctionne.
     
  5. Ez'

    Ez' Administrateur
    Staff

    Inscrit:
    3 Fev 2011
    Messages:
    2 556
    Points:
    205
    Sexe:
    Homme
    Il y a une différence entre ne pas savoir faire une mise en page et dire que c'est à chier.
     
    • J'approuve J'approuve x 2
  6. tryall

    tryall Nouveau

    Inscrit:
    5 Juil 2011
    Messages:
    12
    Points:
    70
    Sexe:
    Homme
    J'ai toujours Aimé la Modération des Autres sites ;)

    Faudrait Ajouter la raison du Bannissement, Sa éviterait de me reco sous mon ancien compte pour voir pourquoi.


    Après c'était une Autocritique, Je ne vois pas en quoi sa Dérangerait du monde, Il suffirait de me demander d'éditer mon Message, ce serait plus simple nan ?
     
  7. Ez'

    Ez' Administrateur
    Staff

    Inscrit:
    3 Fev 2011
    Messages:
    2 556
    Points:
    205
    Sexe:
    Homme
  8. tryall

    tryall Nouveau

    Inscrit:
    5 Juil 2011
    Messages:
    12
    Points:
    70
    Sexe:
    Homme
    Je sais, prochain Tuto Dans 3 jours, si je suis toujours motivé par contre.
     
  9. TheSnipix

    TheSnipix Enter the World

    Inscrit:
    7 Oct 2012
    Messages:
    15
    Points:
    61
    Sexe:
    Homme
    Comment on fait du coup pour assigner la texture du block en 1.5 ?
     
  10. _Tryall_

    _Tryall_ Mineur de Fer

    Inscrit:
    30 Jan 2012
    Messages:
    501
    Points:
    109
    Sexe:
    Homme
    Pour la 1.5 je ne sais pas, Regarde un peu les codes et regarde si il n'y à pas un nom qui correspond à la texture dans le minecraft.jar, à ce moment là je pense que tu peux le modifier pour mettre une nouvelle texture.
     
  11. ATE47

    ATE47 Bûcheron

    Inscrit:
    3 Juil 2012
    Messages:
    227
    Points:
    121
    Sexe:
    Homme
    C'est simple, en 1.5 le nom des objets est dit grâce à ça ".setUnlocalizedName("bouse");"
    et il faut juste ajouter dans minecraft.jar/textures/blocks/ une texture nommé "bouse.png"
     
  12. robin4002

    robin4002 Support Technique
    Staff

    Inscrit:
    17 Août 2012
    Messages:
    5 478
    Points:
    229
    Sexe:
    Homme
    En fait c'est pas setUnlocalizedName qui défini la texture, il défini juste le nom non localisé.
    En revanche, c'est cette fonction qui défini la texture :
    Code (java):
        public void registerIcons(IconRegister par1IconRegister)
        {
            this.blockIcon = par1IconRegister.registerIcon(this.unlocalizedName);
        }
    Et comme on peut le voir par défaut, la fonction utilise le nom non localisé.
    Après tu peux très bien changer ça, par exemple dans la class de ton bloc personnalisé tu mets :
    Code (java):
        public void registerIcons(IconRegister par1IconRegister)
        {
            this.blockIcon = par1IconRegister.registerIcon("monbloc");
        }
    Et donc même si le nom non localisé est autre chose il prendra /textures/blocks/monbloc.png
    Tu peux aussi mettre monMod/monbloc pour que la texture soit dans /textures/blocks/monMod/monbloc.png
    Et après si tu code avec forge, l'icon provider de forge permet d'utilisé : pour passer dans un répertoire personnalisé de forge
    Exemple MonMod:monbloc pour que la texture soit dans /mods/MonMod/textures/blocks/monbloc.png
     
  13. ATE47

    ATE47 Bûcheron

    Inscrit:
    3 Juil 2012
    Messages:
    227
    Points:
    121
    Sexe:
    Homme
    C'est le même principe.
     
  14. ninjakev93

    ninjakev93 Enter the World

    Inscrit:
    22 Avr 2014
    Messages:
    15
    Points:
    31
    Sexe:
    Homme
    Bonjour excusez moi quelqun pourrait me montrer un tuto pour ajouter un bloc dans minecraft 1.7.10 qui n'a pas de minecraft.jar et aussi me montrer comment décmpiler minecraft car on me dit que je n'ai pas l'autorisation pour voir ce topic
     
  15. Seblor

    Seblor Responsable de Modération
    Staff

    Inscrit:
    15 Sept 2013
    Messages:
    2 577
    Points:
    195
    Sexe:
    Homme
    @ninjakev93 déterrage de topic. Vas relire les règles.
    merci de ne pas poster après ce message, sous peine de sanction.
     

Partager cette page