Les escaliers



  • Dans ce tutoriel nous allons apprendre à faire un escalier.

    Dans la classe principale

    On commence par déclarer le bloc:

    public static Block TutorialStairs;
    

    Ensuite on ajoute dans la partie PreInit:

    TutorialStairs = new BlockTutorialStairs(3800, Block.blockIron, 0).setUnlocalizedName("TutorialStairs");
    

    3800 : Correspond à l'id du bloc.
    Block.blockIron : Correspond au matériau du bloc, il permet de modifier la texture de l'escalier selon la texture du bloc pris. Vous pouvez aussi utiliser un bloc que vous avez créé.
    0 : Correspond à la metadata du bloc, laisser ce chiffre tel quel.

    Et on enregistre le bloc en dessous:

    GameRegistry.registerBlock(TutorialStairs, "TutorialStairs");
    

    Maintenant, créons la classe du bloc.

    La classe du bloc

    Faite un extends BlockStairs:

    protected BlockTutorialStairs(int id, Block par1Block, int metadata) {
        super(id, par1Block, metadata);
    }
    

    Vous pouvez ajouter le drop du bloc:

    public int idDropped(int par1, Random par2Random, int par3)
    {
        return this.blockID;
    }
    
    import java.util.Random;
    
    import net.minecraft.block.Block;
    import net.minecraft.block.BlockStairs;
    import net.minecraft.creativetab.CreativeTabs;
    
    public class BlockTutorialStairs extends BlockStairs
    {
    
        protected BlockTutorialStairs(int id, Block par1Block, int metadata)
        {
            super(id, par1Block, metadata);
        }
    
        public int idDropped(int par1, Random par2Random, int par3)
        {
            return this.blockID;
        }
    }
    

    Nom du bloc

    Ajouter dans votre fichier lang:

    tile.TutorialStairs.name=Tutorial Stairs
    

    Rendu final

    Voir sur github

    Escalier moddé

    Voilà vous avez créé un escalier.


  • Administrateurs

    J'avais déjà corrigé ce tutoriel sur les escaliers, mais comme il était incomplet côté dalle je l'avais refusé.

    Celui-ci étant correcte, ça passe 🙂 (et en même temps ça me fait gagner du temps donc merci).



  • Bonjour, chez moi l'escalier bug, j'ai un bout noir (le creux), du coup c'est pas pratique, il faut mettre la texture ou normalement elle se met toute seule?


  • Administrateurs

    Dans le constructeur du bloc, ajoute :
    this.setLightOpacity(0);

    donc :

    protected BlockTutorialStairs(int id, Block par1Block, int metadata)
    {
    super(id, par1Block, metadata);
    }
    

    devient

    protected BlockTutorialStairs(int id, Block par1Block, int metadata)
    {
    super(id, par1Block, metadata);
    this.setLightOpacity(0);
    }
    


  • Parfait merci beaucoup ça fonctionne 😉



  • Comment je fais pour ajouter d'autres matériaux pour les escalier en utilisant la même classe, sans en rajouter 10 autres parce que ce ne serait pas pratique 🙂

    Cordialement, Pichatu


  • Administrateurs

    Tout est géré par le constructeur, tu peux utiliser la même classe pour plusieurs escalier.



  • @'robin4002':

    Tout est géré par le constructeur, tu peux utiliser la même classe pour plusieurs escalier.

    Oui je sais mais je n'ai pas trouvé l'endroit x)



  • Le matériaux utilisé est celui du block que tu utilises pour faire ton escalier.

    Donc si tu utilises un block en matériaux de bois, cela s'adapte automatiquement.



  • Pourquoi n'y a t-il pas besoin de créer l'ItemBlock comme pour les dalles?

    Il manque l'ajout pour le creative dans le constructeur


  • Administrateurs

    Car les dalles ne sont pas des escaliers.

    L'ajout de la table créative n'est pas obligatoire, les gens peuvent le faire tout seul si ils en ont besoin.



  • Bonjour comment les escaliers marches en 1.7


  • Administrateurs

    C'est la même chose mais sans les id.



  • comment sa sans mes ID quesque je doit enlever cela me donne des erreurs


  • Administrateurs

    Envoie tes codes.
    L'id c'est le premier nombre qu'il y a dans le constructeur du bloc.



  • Voici les codes


  • Administrateurs

    Envoie tes codes via copier/coller et avec la balise Java, c'est mieux.

    Quand je dis "C'est la même chose mais sans les id." ça veut dire qu'il faut retirer tout ce qui concerne les ids.
    Donc

    ​    escalier = new escalier(3800, Block.meteor_brick, 0).setUnlocalizedName("escalier").setCreativeTab(CreativeTabs.tabBlock);
    

    Devient :

    ​    escalier = new escalier(Block.meteor_brick, 0).setUnlocalizedName("escalier").setCreativeTab(CreativeTabs.tabBlock);
    

    Et :

    ​package theopsisblack76.primevalcraftworld;
    
        import java.util.Random;
    
        import net.minecraft.block.Block;
        import net.minecraft.block.BlockStairs;
        import net.minecraft.creativetab.CreativeTabs;
    
        public class escalier extends BlockStairs {
    
            protected escalier(int id, Block par1Block, int metadata) {
                super(id, par1Block, metadata);
    }
    
            public int idDropped(int par1, Random par2Random, int par3)
            {
                return this.blockID;
            }
        }    
    }
    

    devient :

    ​package theopsisblack76.primevalcraftworld;
    
    import java.util.Random;
    
    import net.minecraft.block.Block;
    import net.minecraft.block.BlockStairs;
    import net.minecraft.creativetab.CreativeTabs;
    
    public class escalier extends BlockStairs {
    
        protected escalier(Block par1Block, int metadata) {
            super(par1Block, metadata);
        }
    }
    

    (en plus tu avais une déclaration de classe foireuse).



  • Merci c'est vrai ma déclaration etait douteuse dans votre tuto vous mettez en exemple blockiron mes quand je veux le changer par meteore_brick cela me donne une erreur cela vien t'il de la classe de mon bloc car je n'est rien trouvé ?


  • Administrateurs

    Ah oui j'avais pas fait gaffe a ça, mets juste meteore_brick sans le Block. car la variable est déclaré dans la même classe.



  • merci mais la j'ai recue un crash quand j'ai voulue allumer le client de eclipse voici le crash report d'après ce report cela vien de la classe escalier mes moi je n'est rien trouvé de suspect PS je ne peut pas faire de copier coller mon navigateur de me le permet pas .