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.5.x] Un bloc simple

Discussion dans 'Tutoriels' créé par robin4002, 17 Mar 2013.

  1. robin4002

    robin4002 Support Technique
    Staff

    Inscrit:
    17 Août 2012
    Messages:
    5 478
    Points:
    229
    Sexe:
    Homme
    Un bloc simple

    Dans ce tutoriel nous allons apprendre à faire en 1.5 un bloc simple comme de la pierre.

    Prérequis:
    - Une classe principale

    1. Déclaration dans la classe principale

    Pour commencer notre bloc, il faut déclarer le bloc dans la class principale avec :

    Code (java):
    public static Block Bloc_tutoriel;
    Explication: cette fonction sert à déclarer notre "Bloc_tutoriel" en Block (importez net.minecraft.block.block)

    Nous allons aussi ajouter cela, mais cette fois-ci dans la fonction "Init(FMLInitializationEvent event)"
    Code (java):
    Bloc_tutoriel = new Bloc_tutoriel(1750).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("BlocTutoriel")
     
    Ici, on définit le bloc : on commence par dire de quel bloc on parle, puis on dit qu'il est égal à une classe, on donne une valeur aux variables que l'on va définir dans la classe et enfin on ajoute un ".setUnlocalizedName("")" pour définir le nom du bloc (pas en jeu, on verra ça plus tard). Normalement vous avez une erreur, elle sera corrigée plus tard.
    Pour l'ID, avec forge vous pouvez choisir un ID entre 500 et 4095 grâce au 4096 fix de forge
    Si vous compter utiliser votre bloc dans la génération de biome, il faut choisir un ID inférieur à 255

    Maintenant, nous allons enregistrer le bloc dans le jeu, pour cela il suffit d'ajouter ceci dans la fonction "Init(FMLInitializationEvent event)"
    Code (java):
    GameRegistry.registerBlock(Bloc_tutoriel, "BlocTutoriel");
     
    Infos: "GameRegistry" sert à enregistrer quelque chose dans le jeu, on précise que c'est un bloc avec ".registerBlock(Bloc_tutoriel, "BlocTutoriel")"

    On termine cette partie avec l'ajout du nom en jeu du bloc :
    Code (java):
    LanguageRegistry.addName(Bloc_tutoriel, "Bloc Tutoriel");
     
    Infos: "LanguageRegistry" sert à enregistrer un "langage" et on précise que c'est un nom avec ".addName(Nom_du_bloc, "Nom du bloc en jeu");"
    Ce qui donne par exemple :
    Code (java):
      public static Block Bloc_tutoriel;
      @Init
      public void load(FMLInitializationEvent event)
      {
          Bloc_tutoriel = new Bloc_tutoriel(1750).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("BlocTutoriel");
          GameRegistry.registerBlock(Bloc_tutoriel,"BlocTutoriel");
          LanguageRegistry.addName(Bloc_tutoriel, "Bloc Tutoriel");
      }
     

    2. La classe du bloc

    Ici nous allons créer la classe du bloc, cela va corriger les erreurs de la classe principale.

    Pour commencer il vous faut créer une classe et normalement vous avez ça :
    Code (java):
    package nomdupackage;
     
    public class Bloc_tutoriel
    {
     
    }
     
    Il suffit d'ajouter "extends Block", une erreur apparaît, il vous suffit de faire ctrl+shift+o, puis de passer la souris sur Bloc_tutoriel qui est souligné en rouge et de cliquer sur "add constructor"
    Normalement vous obtenez cela :
    Code (java):
    package nomdupackage;
     
    import net.minecraft.block.Block;
    import net.minecraft.block.material.Material;
     
    public class Bloc_tutoriel extends Block
    {
        public Bloc_tutoriel(int par1)
        {
            super(par1, Material.rock);
        }
     
        @Override
        public void registerIcons(IconRegister par1IconRegister)
        {
            blockIcon = par1IconRegister.registerIcon("modTutoriel:TextureBlocTutoriel");
        }
     
    }
    Le fichier de texture TextureBlocTutoriel.png est une image 16x16 à placer dans le dossier
    forge/mcp/src/minecraft/mods/modTutoriel/textures/blocks/

    Et voilà, vous avez créé un bloc le plus simple possible, d'autres tutoriels seront disponibles pour l'améliorer.
     
  2. TheLLspectre

    TheLLspectre Enter the World

    Inscrit:
    28 Mar 2012
    Messages:
    22
    Points:
    71
    Sexe:
    Homme
    Alors voici ma question =)
    Comment faire pour que le bloc que l'on a fait se place selon la position du joueur? Tel une buche pour avoir la phase supérieur en face du regard j'espere etre assez clair c'est pas evident a décrire
     
  3. robin4002

    robin4002 Support Technique
    Staff

    Inscrit:
    17 Août 2012
    Messages:
    5 478
    Points:
    229
    Sexe:
    Homme
    Direction de bloc, regarde la citrouille.
     
  4. TheLLspectre

    TheLLspectre Enter the World

    Inscrit:
    28 Mar 2012
    Messages:
    22
    Points:
    71
    Sexe:
    Homme
    pourrai tu me donner une explication parce que je pense avoir repéré les codes mais je ne saisi pas trop comment faire pour que sa marche...
     
  5. robin4002

    robin4002 Support Technique
    Staff

    Inscrit:
    17 Août 2012
    Messages:
    5 478
    Points:
    229
    Sexe:
    Homme
  6. TheLLspectre

    TheLLspectre Enter the World

    Inscrit:
    28 Mar 2012
    Messages:
    22
    Points:
    71
    Sexe:
    Homme
    Merci c'est vraiment sympa mais je suis vraiment désoler j'ai encore un probleme de textures alors pourrait tu me dire ou mes textures doivent etre pour etre charger avec modtutoriel:BlockTutoriel.
     
  7. robin4002

    robin4002 Support Technique
    Staff

    Inscrit:
    17 Août 2012
    Messages:
    5 478
    Points:
    229
    Sexe:
    Homme
    en 1.5.2 dans /mods/modtutoriel/block/BlockTutoriel.png
     
  8. TheLLspectre

    TheLLspectre Enter the World

    Inscrit:
    28 Mar 2012
    Messages:
    22
    Points:
    71
    Sexe:
    Homme
    C'est bon je les resolu pour la texture pas besoin de tous sa il me prend les textures de base juste en mettant "goudron" puisque ma texture et goudron.png.
    Toute derniere question et apres je te laisserai tranquille parce que tu seras un dieu!!!
    C"est le coté qui tourne selon la position mais comment fais tu pour que ce sois le Haut du block qui tourne que la texture du haut reste en haut mais son orientation tourne.
    Par exemple une fleche sur la face du haut "top" aille par exemple vers la gauche et en se positionnant a l'opposer elle aille a droite.
    Suis-je clair ???
     
  9. robin4002

    robin4002 Support Technique
    Staff

    Inscrit:
    17 Août 2012
    Messages:
    5 478
    Points:
    229
    Sexe:
    Homme
    Pareil, il faut changer le getIcon, le side 1 correspond à au dessus, tu as juste a faire une condition comme pour le côté.
     
  10. TheLLspectre

    TheLLspectre Enter the World

    Inscrit:
    28 Mar 2012
    Messages:
    22
    Points:
    71
    Sexe:
    Homme
    désolé mais sa donnerai quoi par exemple comme sa en plus sa donnera l'indication au autres personne qui liront le tuto !^^
     
  11. robin4002

    robin4002 Support Technique
    Staff

    Inscrit:
    17 Août 2012
    Messages:
    5 478
    Points:
    229
    Sexe:
    Homme
    --'
    Google -> java la condition ternaire.
    Il n'y a rien de compliqué, c'est juste une condition ...

    La direction est défini par le metadata, donc si le side est 1 et que le metadata est 0 il utilise la texture du n°1, si le side est 2 et que le metadata est 1 il utilise la texture n°2, etc ....
     

Partager cette page