• Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes
  • S'inscrire
  • Se connecter
  • S'inscrire
  • Se connecter
  • Recherche
  • Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes

Un bloc basique

Les blocs
1.6.x
19
70
29.9k
Charger plus de messages
  • Du plus ancien au plus récent
  • Du plus récent au plus ancien
  • Les plus votés
Répondre
  • Répondre à l'aide d'un nouveau sujet
Se connecter pour répondre
Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
  • robin4002
    robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par robin4002 12 juin 2018, 18:11 17 juil. 2013, 15:31

    Nous allons maintenant commencer notre premier bloc.

    Pre-requis

    • La classe principale et les proxys

    Dans la classe principale

    À la suite de la déclaration de votre instance, déclarez votre bloc comme ceci :

        public static Block BlockTutorial;
    

    Pensez à importer “net.minecraft.block.Block”
    Si vous voulez créer plusieurs blocs, vous pouvez les déclarer à la suite de cette façon :

        public static Block BlockTutorial, DeuximeBlock, TroixiemeBlock;
    

    Ensuite dans la partie @PreInit, vous allez ajouter ceci :

        BlockTutorial = new BlockTutorial(2000).setHardness(1.0F).setResistance(5.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("BlockTutorial").setTextureName("modtutoriel:BlockTutorial");
    

    2000 est l’id du bloc (les ids de bloc vont de 0 à 4095, les ids de 0 à 600 sont à éviter pour ne pas avoir de conflit avec les id de minecraft), setHardness correspond à la résistance du bloc par rapport à la pioche (ou à la main) et setResistance est la résistance aux explosions, setStepSound défini le son du bloc et setTextureName défini la texture (nous reviendrons dessus plus tard)
    Pour la liste les sons possible :

    • soundPowderFootstep = son par défaut, le même que soundStoneFootstep
    • soundWoodFootstep = son du bois
    • soundGravelFootstep = son du gravier
    • soundGrassFootstep = son de l’herbe, des pousses, des feuilles …
    • soundStoneFootstep = son de la pierre
    • soundMetalFootstep = son des blocs de fer, or, diamant (c’est le même que la pierre)
    • soundGlassFootstep = son du verre
    • soundClothFootstep = son de laine
    • soundSandFootstep = son du sable
    • soundSnowFootstep = son de la neige
    • soundLadderFootstep = son de l’échelle
    • soundAnvilFootstep = son de l’enclume

    Juste en dessous, ajoutez :

    GameRegistry.registerBlock(BlockTutoriel, "BlockTutoriel");
    

    Il vous restera une erreur sur “new BlockTutoriel”, créez cette classe.

    La classe du bloc

    Vous allez avoir une classe qui ressemble à ça :

    package tutoriel.common;
    public class BlockTutoriel
    {
    }

    Ajoutez extends Block après “public class BlockTutoriel”. Importez “net.minecraft.block.Block”. Maintenant vous allez avoir une erreur sur “BlockTutoriel”, passez la souris dessus et faite "add constructor ‘BlockTutoriel(int, Material)’
    Vous allez obtenir un contructeur comme ceci :

    public BlockTutoriel(int par1, Material par2Material)
    {
    super(par1, par2Material);
    }

    Nous allons le modifier de cette façon la :

    public BlockTutoriel(int id)
    {
    super(id, Material.rock);
    this.setCreativeTab(CreativeTabs.tabBlock);
    }

    Material.rock est le matériel, avec le type rock le bloc ne peut que être dropé avec une pioche. Pour la liste des matériels, fait ctrl + clic sur Material, la classe Material va s’ouvrir, il y tout dedans.
    Pensez à changer les paramètres du type par1, par2, par3, etc. par ce qui correspond, on s’y retrouve beaucoup mieux avec des noms corrects.

    Les ressources du bloc (texture + nom)

    Dans la classe principale, j’ai utilisé cette fonction : .setTextureName(“modtutoriel:BlockTutorial”)
    modtutoriel correspond à mon modid sans aucune majuscule, il ne faut pas en mettre. BlockTutorial est le nom de ma texture

    Pour l’emplacement de la texture, allez dans votre dossier forge/mcp/src/minecraft
    Dans ce dossier se trouvent les sources du jeu. Vous devrez normalement y voir un dossier du même nom que votre package, tutoriel dans mon cas. Créez un nouveau dossier et nommez-le “assets” (Pour ceux qui ont une version récente de forge, ce dossier existe déjà). À l’intérieur de ce dossier, créez un autre dossier et nommez-le avec votre modid sans majuscule, modtutoriel dans mon cas. À nouveau, dans ce dossier créez un autre dossier nommé textures. Dans le dossier texture, créez le dossier blocks
    Nous avons donc 4 dossiers : assets/modtutoriel/textures/blocks/
    Maintenant dans le dossier blocks, créez votre fichier .png de 16x16 nommé BlockTutoriel, ce qui correspond à la partie après le “:”. (vous pouvez aussi faire des textures plus grandes, mais elles seront plus lourdes à charger)
    Par ailleurs, lorsque vous compilerez votre mods, pensez à placer le dossier mods qui se trouve dans /forge/mcp/src/minecraft dans l’archive de votre mods, sinon les textures seront manquantes.

    Retournez dans le dossier qui porte comme nom votre modid, “modtutoriel” dans mon cas. Créez un nouveau dossier nommé “lang”
    Dans ce dossier, créer un nouveau fichier en_US avec l’extension .lang. Pour ça, ouvrez votre éditeur de texte (notepad ++ comme je vous l’ai conseillé si possible), faite un nouveau fichier, cliquez sur enregistrer sous et cochez “All type (.)”
    Dans ce fichier, ajoutez tile.«le nom non localisé de votre bloc (celui dans setUnlocalizedName(“”))».name=«le nom en jeu»
    Par exemple :

    tile.BlockTutorial.name=Block Tutorial
    

    /!\ Il ne doit pas avoir d’espace entre le nom non localisé, l’égale, et le nom localisé /!\
    Vous pouvez aussi créer les autres fichiers de langage, fr_FR, etc …
    /!\ Vérifiez que le fichier est encodé en UTF-8 sans BOM, avec notepad ++, cliquez sur Encodage puis “encoder en UTF-8 (sans BOM)”, sinon vous aurez des problèmes avec les accents /!

    Rendu final

    Voir les changements sur Github

    Un bloc moddé sous Minecraft

    1 réponse Dernière réponse Répondre Citer 0
    • U
      ulysse1976 dernière édition par 19 juil. 2013, 06:44

      le “GameRegistry.registerBlock()” doit etre dans le “PreInit()” maintenant ? 😕

      ma vie de minecraftien: Ulyssecraft

      1 réponse Dernière réponse Répondre Citer 0
      • elias54
        elias54 Administrateurs dernière édition par 19 juil. 2013, 08:29

        Pas forcément, moi je le mets dans le post init, et cela marche très bien.

        Mon site | GitHub

        1 réponse Dernière réponse Répondre Citer 0
        • U
          ulysse1976 dernière édition par 19 juil. 2013, 09:16

          Ah! … En effet , j’ai fait une petite expérience en changeant les lignes de codes de fonctions et je dirais que peut importe dans quelles fonction elles sont , du moment qu’elle sont dans le bon ordre ca fonctionne.

          ma vie de minecraftien: Ulyssecraft

          1 réponse Dernière réponse Répondre Citer 0
          • topic:timeago_later,environ 28 jours
          • gargan
            gargan dernière édition par 16 août 2013, 18:05

            A mon avis il manquent quelques fonctions importantes à expliquer et qui ne sont pourtant nul part dans les tuto du forum:
            LanguageRegistry.addName(Object toName, String readableName); pour ajouter un nom “lisable” et
            MinecraftForge.setBlockHarvestLevel(Block block, String toolClass, int tier);

            1 réponse Dernière réponse Répondre Citer 0
            • kevin_68
              kevin_68 Moddeurs confirmés dernière édition par 16 août 2013, 18:17

              LanguageRegistry.addName(Object toName, String readableName);
              Plus besoin en 1.6.2, ils faut juste crée un fichier .lang dans assets/modid/lang/, par defaut: en_US.lang et après dedans:
              tile.nom non localisé.name=nom localisé

              MinecraftForge.setBlockHarvestLevel(Block block, String toolClass, int tier);
              Oui, il faudrait l’ajouter.


              Mettez à jours vers la dernière version stable (1.8.9 voir même…

              1 réponse Dernière réponse Répondre Citer 0
              • robin4002
                robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 16 août 2013, 19:13

                LanguageRegistry sera retiré en 1.7, obsolète, à ne plus utiliser, les fichiers de lang externe sont bien plus intéressant. (cf : Deprecate LanguageRegistry)

                Pour le setToolClass, surement dans un autre tutoriel pour customiser son bloc.

                1 réponse Dernière réponse Répondre Citer 0
                • gargan
                  gargan dernière édition par 17 août 2013, 12:22

                  LanguageRegistry sera retiré en 1.7, obsolète, à ne plus utiliser, les fichiers de lang externe sont bien plus intéressant. (cf : Deprecate LanguageRegistry)

                  A d’accord vu que je me demandais lequel des deux il fallait mieux utiliser vu que sur le wiki anglais de forge le code n’a sans doute pas été mis à jours

                  1 réponse Dernière réponse Répondre Citer 0
                  • topic:timeago_later,environ 25 jours
                  • robin4002
                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 11 sept. 2013, 13:18

                    @‘robin4002’:

                    En conséquence, utilisez une version des sources de forge supérieur à 9.10.1.849 pour suivre les tutoriels.

                    Je pense que vais l’ajouter au tutoriel de l’installation de forge.

                    1 réponse Dernière réponse Répondre Citer 0
                    • topic:timeago_later,environ un mois
                    • Bowser338
                      Bowser338 dernière édition par 21 oct. 2013, 15:52

                      J’aurais une question je voudrais creer mon bloc de dirt personalisé mais je veux qu’il ait les meme propriétés a savoir etre labourré pouvoir y planter des saplings etc
                      merci 🙂

                      Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

                      1 réponse Dernière réponse Répondre Citer 0
                      • robin4002
                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 21 oct. 2013, 18:45

                        Regarde canSustainPlant dans Block.java.
                        Et pour être labouré, EventHoe.
                        http://www.minecraftforgefrance.fr/showthread.php?tid=181&pid=1855#pid1855

                        1 réponse Dernière réponse Répondre Citer 0
                        • Bowser338
                          Bowser338 dernière édition par 21 oct. 2013, 19:58

                          j’ai beau essayer mon bloc n’accueille pas les saplings
                          je comprends pas pourquoi

                          j’ai une erreur a :
                          .canThisPlantGrowOnThisBlockID

                          je suis pas sur mais sans sa on peut pas poser de saplings si je comprends bien
                          il me dit que la methode n’est pas visible

                          Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

                          1 réponse Dernière réponse Répondre Citer 0
                          • robin4002
                            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 21 oct. 2013, 20:47

                            Oups, il y a 500 fois plus simple.
                            Dans le constructeur de ton bloc :
                            Material.ground
                            Et voila.

                            1 réponse Dernière réponse Répondre Citer 0
                            • Bowser338
                              Bowser338 dernière édition par 22 oct. 2013, 07:59

                              perso sa ne change rien

                              Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

                              1 réponse Dernière réponse Répondre Citer 0
                              • Superloup10
                                Superloup10 Modérateurs dernière édition par 22 oct. 2013, 09:18

                                Essaye de faire un extends BlockDirt

                                Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                                Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

                                1 réponse Dernière réponse Répondre Citer 0
                                • Bowser338
                                  Bowser338 dernière édition par 22 oct. 2013, 09:43

                                  sa me met une erreur a :
                                  super(id, Material.ground);
                                  ( meme si je change ground en autre chose )

                                  Edit : j’ai enlever la ligne super(id, Material.ground);
                                  sa marche mais le blocs reste un bloc basique

                                  Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • Superloup10
                                    Superloup10 Modérateurs dernière édition par 22 oct. 2013, 10:02

                                    laisse super(id) et ensuite pour que ton bloc soit labouré, il faut créer un nouveau bloc qui est les mêmes caractéristiques que la terre labourée.

                                    Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                                    Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • Bowser338
                                      Bowser338 dernière édition par 22 oct. 2013, 10:08

                                      Pour le bloc labouré je sais comment faire moi je veux juste qu’on puisse y planter des saplings pour le moment
                                      et sa change toujours rien.

                                      Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • topic:timeago_later,environ 11 jours
                                      • Y
                                        Yseriu dernière édition par 2 nov. 2013, 17:10

                                        Salut,
                                        j’ai essayé d’utiliser une fonction pour définir la texture du bloc avec OnBlockAdded, mais mon block n’a toujours pas de texture …
                                        Une idée ?

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • robin4002
                                          robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 2 nov. 2013, 17:21

                                          La fonction pour la texture se met dans le constructeur, pas dans onBlockAdded.

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • 1
                                          • 2
                                          • 3
                                          • 4
                                          • 1 / 4
                                          3 sur 70
                                          • Premier message
                                            3/70
                                            Dernier message
                                          Design by Woryk
                                          Contact / Mentions Légales

                                          MINECRAFT FORGE FRANCE © 2018

                                          Powered by NodeBB