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

    Créer vos Deferred Registries (ou Registres Différés)

    Tutoriels des membres
    1.15.2 forge
    1
    1
    237
    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.
    • En0ri4n
      En0ri4n dernière édition par robin4002

      Sur le forum et sur le discord, j’ai remarqué que beaucoup de personnes ne comprenaient pas comment utiliser les Deferred Registries qui sont un outil puissant pour l’enregistrement des objets du jeu comme les blocks, les items, les enchantements, etc.

      Attention

      Dans le tutoriel, à de multiples reprises, je parle “d’objets” pour désigner les différents types présent dans le jeu comme les blocks, les items ou les enchantements, mais je ne parle pas des items en tant que tels

      Sommaire du tutoriel

      • Pré-requis
      • Créer votre Deferred Registry
      • Enregistrer vos Objets
      • Faire appel à votre Deferred Registry
      • Résultat
      • Licence et attribution

      Pré-requis

      • Créer la base de votre mod

      Créer votre Deferred Registry

      Pour créer votre Deferred Registry, vous devez d’abord créer une classe, pour moi ce sera TutoBlocks :

      public class TutoBlocks
      {
      
      }
      

      Ensuite vous devez créer une instance constante de DeferredRegister<> comme ci-dessous :

      public static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, "tutoriel");
      

      Ici vous pouvez changer le type d’objet à enregistrer en modifiant les valeurs :
      ForgeRegistries.BLOCKS et DeferredRegister<Block>,
      en :
      ForgeRegistries.ITEMS et DeferredRegister<Item>
      par exemple

      Attention

      N’oubliez pas de remplacer la valeur "tutoriel" par votre ID de mod !

      Enregistrer vos Objets

      Pour enregistrer vos objets, vous allez devoir créer pour chacuns d’eux une constante qui les représentera, comme ci-dessous :

      public static final RegistryObject<Block> BLOCK_TUTORIEL = BLOCKS.register("block_tutoriel", () -> new Block(Block.Properties.create(Material.GOURD)));
      

      Ici, j’ai créer une constante qui a pour nom BLOCK_TUTORIEL qui représente mon block. Pour l’enregistrer il faut passer par la méthode register de notre constante BLOCKS créée plus haut. Elle prend comme paramètres un String, le nom de registre (ou Registry Name en anglais), ici “block_tutoriel” qui est un nom unique défini pour votre objet et un Supplier qui se crée à partir de () ->.

      Normalement vous devez avoir quelque chose comme cela :

      public class TutoBlocks
      {
          public static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, "tutoriel");
      		
          public static final RegistryObject<Block> BLOCK_TUTORIEL = BLOCKS.register("block_tutoriel", () -> new Block(Block.Properties.create(Material.GOURD)));
      }
      

      Note

      Un Supplier est une opération qui consiste à retourner un résultat uniquement quand il est appelé.
      Vous devez donc pour obtenir votre block dans votre code : BLOCK_TUTORIEL.get()

      Faire appel à votre Deferred Registry

      Pour terminer, il suffit simplement d’enregistrer votre constante BLOCKS dans la classe principale de votre mod :

      @Mod("tutoriel")
      public class TutorielMod
      {
          public TutorielMod()
          {
          
          	// Il y a d'autre chose ici mais elles ne sont pas représentées
              TutoBlocks.BLOCKS.register(FMLJavaModLoadingContext.get().getModEventBus());
          
           }
      }
      

      FMLJavaModLoadingContext.get().getModEventBus() est un IEventBus c’est-à-dire une classe qui va avoir une instance pour chaque mod et où notre mod va enregistrer tous ses objets.

      Fin

      Normalement votre block devrait être dans le jeu et vous pouvez le placer dans le monde !

      Ceci est mon premier tutoriel sur le forum donc dites moi si je pourrais améliorer certaines choses ou certaines explications 🙂 .

      Licence et attribution

      Creative Commons

      Ce tutoriel rédigé par Eno_gamer10, corrigé par Eno_gamer10 et publié sur Minecraft Forge France est mis à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International

      retour Sommaire des tutoriels

      Le java c'est comme une boîte de chocolat, on sait jamais sur quoi on va tomber !

      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