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

    Triez vos classes !

    Archives
    4
    5
    2988
    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.
    • Nolan-XX
      Nolan-XX dernière édition par

      Je ne sais pas vraiment si on peux appeler ça un tutoriel car moins de 33 % du tuto est du code , enfin bref.

      Bonjour a tous , voila un petit tuto pour vous apprendre a adopter un style de triage pour vos mods minecraft.

      #1) Des préfixes !(1) Des préfixes !)

      Une méthode simple et efficace , ajoutez de préfixes au noms de vos classes.

      Les +

      Les catégories seront regroupés ensemble ( Items , Blocks , etc )

      Les -

      Si votre classe est déjà crée , vous perdrez du temps a la renommer.

      Exemple :

      :::
      Voici quelques préfixes que j’utilise , a vous de créer les votre !
      D_ ( data ) : Fichier concernant l’IA , les trad de villageois , etc etc
      B_ (blocs) : Blocs
      Mi_ ( Minerais ) : Minerais
      TE_ ( Tile Entity ) : Les Tile Entity ( coffre , blocs a animations et models )
      I_ (Items ) : Objet Lambda
      Ge_ (gemme) : Objet Gemme , issu d’un minerai
      G_ (gear) : Armures
      W_ ( weapons ) : Armes
      Pio_ : Pioches
      H_ (hoe) : Houes
      A_ (axe) : Haches
      Pe_ : pelles
      E_ (entity) : une entité
      M_ ( Mob ) : …
      Mod_ (model) : Model 3D d’un mob/block/item etc
      R_ (Render) : Render
      GUI_ : GUI
      Misc_ (miscellanous) : Divers
      Sounds_ : Les fichiers servant aux sons
      :::

      #2)Des Packages !(2)Des Packages !)

      Créez des packages pour effectuer un classement rapide.

      Les +

      Plus de clarté
      Perdre moins de temps a chercher dans chaque package

      Les -

      Peut sembler bord*lique au début

      :::

      Voici quelques packages que j’utilise :
      Common : Contient le commonProxy , la classe principale , les les fichiers D_
      Client : Contient le ClientProxy , et les models/renders
      Items : Contient les Objets ( tous , I_ , Ge_ , W_ … )
      Blocs : Contient les blocs ( B_ , TE_ , Mi_ … )
      Entités : Contient les entités
      Sounds : Contient les fichiers Sounds_ + les sons en eux-mêmes
      :::

      Exemple :

      #3)Déclarez vos Items, blocs et crafts ailleurs(3)Déclarez vos Items, blocs et crafts ailleurs)
      (merci a robin4002 pour cette partie , il m’a aidé sans le vouloir )

      Du codage ! Enfin !
      Je vais ici utiliser 3 fichiers D_ :
      D_Items , D_Crafts , D_Blocs.

      Créez les trois classes.

      D_Items :

      package mods.nono.MGSmod.common;
      
      public class D_Items{
      
      public static void loadItems()
      {
      // votre code ici
      }
      }
      
      

      D_Crafts

      package mods.nono.MGSmod.common;
      
      public class D_Items{
      
      public static void loadCrafts()
      {
      // votre code ici
      }
      }
      

      D_Blocs

      package mods.nono.MGSmod.common;
      
      public class D_Items{
      
      public static void loadBlocs()
      {
      // votre code ici
      }
      }
      

      Ensuite dans votre classe principale ,
      a @Init :
      insérez ceci

      D_Items.loadItems();
      D_Blocs.loadBlocs();
      

      Et a la fin de @Init /!\Très important !!!

      D_Crafts.loadrecipe();
      

      Maintenant , copiez/collez les déclarations de vos Items dans D_Items , de vos Blocs dans D_Blocs et des crafts dans D_crafts , la ou est inscris

      // votre code ici
      

      Vous aurez une erreur. Pour l’enlever , collez devant le nom de la variable qui déclare :

      votreclasseprincipale.
      

      Exemple :

      package mods.nono.MGSmod.common;
      
      import mods.nono.MGSmod.ammo.I_Akammo;
      import mods.nono.MGSmod.ammo.I_PKMammo;
      import mods.nono.MGSmod.ammo.I_Plomb;
      import mods.nono.MGSmod.ammo.I_Rocket;
      import mods.nono.MGSmod.ammo.I_SOammo;
      import mods.nono.MGSmod.ammo.I_SniperAmmo;
      import mods.nono.MGSmod.items.I_Box;
      import cpw.mods.fml.common.registry.LanguageRegistry;
      
      public class D_Items {
      
      public static void loadItems()
      {
      Main.Box = new I_Box(3998).setUnlocalizedName("Box");
      Main.SOammo = new I_SOammo(3999).setUnlocalizedName("SOammo");
      Main.Akammo = new I_Akammo(4000).setUnlocalizedName("Akammo");
      Main.PKMammo = new I_PKMammo(4001).setUnlocalizedName("PKMammo");
      Main.Rocket = new I_Rocket(4002).setUnlocalizedName("Rocket");
      Main.SniperAmmo = new I_SniperAmmo(4003).setUnlocalizedName("SniperAmmo");
      Main.plomb = new I_Plomb(4004).setUnlocalizedName("plomb");
      
      }
      }
      

      Vous voyez que j’ai n’ai pas les

      LanguageRegistry.addName(Main.Box, "Boite en carton");
      

      Si vous en avez peur , regardez plus bas.

      #4) Pour aller plus loin(4) Pour aller plus loin)
      Vous pouvez modifier ce système en décomposant en plusieurs catégories :

      package mods.nono.MGSmod.common;
      
      import mods.nono.MGSmod.items.I_Knife;
      import mods.nono.MGSmod.weapons.W_AK47;
      import mods.nono.MGSmod.weapons.W_Famas;
      import mods.nono.MGSmod.weapons.W_MK22;
      import mods.nono.MGSmod.weapons.W_Mosin;
      import mods.nono.MGSmod.weapons.W_Patriot;
      import mods.nono.MGSmod.weapons.W_Railgun;
      import mods.nono.MGSmod.weapons.W_SOCOM;
      import mods.nono.MGSmod.weapons.W_SPAS12;
      import mods.nono.MGSmod.weapons.W_SVD;
      import mods.nono.MGSmod.weapons.W_Unikita;
      import mods.nono.MGSmod.weapons.W_nikita;
      import mods.nono.MGSmod.weapons.W_pkm;
      import cpw.mods.fml.common.registry.LanguageRegistry;
      
      public class D_Weapons {
      
      public static void loadCQC()
      {
      Main.Knife = new I_Knife(3500, Main.MKnife).setUnlocalizedName("Knife");
      }
      public static void loadguns()
      {
      Main.Ak47 = new W_AK47(4005).setUnlocalizedName("Ak47");
      Main.Patriot = new W_Patriot(4006).setUnlocalizedName("Patriot");
      Main.FAMAS = new W_Famas(4007).setUnlocalizedName("FAMAS");
      Main.PKM = new W_pkm(4008).setUnlocalizedName("PKM");
      Main.SOCOM = new W_SOCOM(4009).setUnlocalizedName("SOCOM");
      Main.nikita = new W_nikita(4010).setUnlocalizedName("nikita");
      Main.MK22 = new W_MK22(4011).setUnlocalizedName("MK22");
      Main.SPAS12 = new W_SPAS12(4012).setUnlocalizedName("SPAS12");
      Main.MosinNagant = new W_Mosin(4013).setUnlocalizedName("MosinNagant");
      Main.SVD = new W_SVD(4014).setUnlocalizedName("SVD");
      Main.Unikita = new W_Unikita(666).setUnlocalizedName("Unikita");
      Main.Railgun = new W_Railgun(4015).setUnlocalizedName("Railgun");
      
      }
      }
      

      Vous voyez ici que j’ai loadCQC et loadguns
      N’oubliez pas de les importez dans la classe principale !

      
      D_Weapons.loadguns();
      D_Weapons.loadCQC();
      

      Ici , ma classe D_weapons est composé de deux catégories : loadCQC et loadguns.
      A quoi ça sert ? Quasiment a rien , juste a espacer , et surtout a ça :

      Revenons au fait que je n’ai pas ça

      LanguageRegistry.addName(Main.Box, "Boite en carton");
      

      Dans mes codes.

      Créez une classe D_Name.

      package mods.nono.MGSmod.common;
      
      import cpw.mods.fml.common.registry.LanguageRegistry;
      
      public class D_Names {
      
      public static void loadItems()
      {
      
      }
      }
      
      

      Importez la dans la classe principale

      D_Names.loadItems();
      

      Et dedans , copiez/collez tout simplement les LanguageRegistry.addName !
      Exemple :

      package mods.nono.MGSmod.common;
      
      import cpw.mods.fml.common.registry.LanguageRegistry;
      
      public class D_Names {
      
      public static void loadItems()
      {
      LanguageRegistry.addName(Main.Box, "Boite en carton");
      LanguageRegistry.addName(Main.SOammo, "munitions Mk.23");
      LanguageRegistry.addName(Main.Akammo, "munitions Ak-47");
      LanguageRegistry.addName(Main.PKMammo, "munitions PKM");
      LanguageRegistry.addName(Main.Rocket, "Roquette");
      LanguageRegistry.addName(Main.SniperAmmo, "Muntion de fusil Sniper");
      LanguageRegistry.addName(Main.plomb, "Muntion de SPAS12");
      
      }
      
      public static void loadCQC()
      {
      LanguageRegistry.addName(Main.Knife, "Couteau de survie");
      }
      
      public static void loadguns()
      {
      LanguageRegistry.addName(Main.Ak47, "Ak-47");
      LanguageRegistry.addName(Main.Patriot, "Patriot");
      LanguageRegistry.addName(Main.FAMAS, "FAMAS");
      LanguageRegistry.addName(Main.PKM, "Mitrailleuse lourde PKM");
      LanguageRegistry.addName(Main.SOCOM, "SOCOM Mk.23");
      LanguageRegistry.addName(Main.nikita, "nikita");
      LanguageRegistry.addName(Main.MK22, "MK.22");
      LanguageRegistry.addName(Main.SPAS12, "SPAS12");
      LanguageRegistry.addName(Main.MosinNagant, "MosinNagant");
      LanguageRegistry.addName(Main.SVD, "SVD");
      LanguageRegistry.addName(Main.Unikita, "nikita ubercharge");
      LanguageRegistry.addName(Main.Railgun, "Canon a rampe");
      
      }
      
      public static void loadArmors()
      {
      LanguageRegistry.addName(Main.OctocamoV, "Octocamo");
      LanguageRegistry.addName(Main.OctocamoJ, "Octocamo");
      LanguageRegistry.addName(Main.OctocamoB, "Octocamo");
      LanguageRegistry.addName(Main.CamoT, "Tenue de camouflage");
      LanguageRegistry.addName(Main.CamoV, "Tenue de camouflage");
      LanguageRegistry.addName(Main.CamoJ, "Tenue de camouflage");
      LanguageRegistry.addName(Main.CamoB, "Tenue de camouflage");
      }
      }
      

      Couplez tout ça avec ce que vous avez appris , et amusez vous !

      1 réponse Dernière réponse Répondre Citer 0
      • S
        sevenno07 dernière édition par

        Bien sympa se petit tuto ^^, par contre c’est un fail ou l’image que tu voulais montrai n’apparais pas ?
        Juste au dessus de : " 3)Déclarez vos Items, blocs et crafts ailleurs "

        Auteur originale de Sevenno's Addons et de [url=http://www.minecraftfor…

        1 réponse Dernière réponse Répondre Citer 0
        • elias54
          elias54 Administrateurs dernière édition par

          Honnêtement je n’aime pas ce genre de rangement. J’utilise plutot le nom du mod et ensuite les classes. 🙂 Ou bien un package par type de classes. 🙂

          Ex1 : MONMOD_BlockMyBlock

          Ex2: monmod.common.items/blocks/core/etc… 🙂

          Mon site | GitHub

          1 réponse Dernière réponse Répondre Citer 0
          • Nolan-XX
            Nolan-XX dernière édition par

            @‘sevenno07’:

            Bien sympa se petit tuto ^^, par contre c’est un fail ou l’image que tu voulais montrai n’apparais pas ?
            Juste au dessus de : " 3)Déclarez vos Items, blocs et crafts ailleurs "

            Pourtant moi je la vois

            1 réponse Dernière réponse Répondre Citer 0
            • robin4002
              robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

              Pour ton problème de rouge, c’était un /color qui n’avait rien à faire là.
              Le tutoriel est pas mal, mais :

              • Comme elias, j’aime pas ta façon de trier. En fait j’ai surtout horreur de mettre des _ dans mes noms de classes. En générale je mets ItemNomDeItem.
              • Chacun a ça propre façon de s’organiser, on peut pas vraiment globaliser ça dans un tutoriel.
              • Créer des void static et les appeler dans une autre classe, c’est du java, pas du modding forge. Je ferai peut-être une section tutoriel java, mais je suis pas sûr que ça sera super utile.

              Donc je refuse le tutoriel.

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

              MINECRAFT FORGE FRANCE © 2018

              Powered by NodeBB