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

    Utiliser le FFMTAPI

    Archives
    1.5.2
    7
    11
    5816
    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.
    • kevin_68
      kevin_68 Moddeurs confirmés dernière édition par robin4002

      Présentation

      Je vous invite à vous référer à ce sujet!

      Prérequis

      Il vous faut connaître les bases en modding, pour cela consultez les autres tutoriels du forum!

      Installation

      Pour cela il vous suffit de télécharger l’api ici
      Il vous faut un fichier nommé FFMT-API-src-x.x.x.x-mcx.x.x.zip.

      Ensuite vous devez extraire le contenu de l’archive dans le dossier forge/mcp/src/minecraft/
      Et voilà l’api est installé!

      Utilisation

      Pour utiliser une fonction de l’api, vous devrez écrire une ligne de ce style:
      NomDeLaClass.nomDeLaFonction(argument1, argument2, …)

      FFMTRegistry

      Dans cette class nous trouvons une fonction pour les blocs, vous permet de lui faire spawn des particules, elle est à placer dans une autre fonction comme onBlockActivated().

      spawnParticles(int speed, String particles, World world, int posX, int posY, int posZ, Random random, double velX, double velY, double velZ)
      

      Arguments:
      1:Integer, il définit la vitesse d’apparition des particules
      2:String, c’est le nom de votre particule (exemple: “smoke”, “largeSmoke”, etc)
      3:World, c’est le monde où est le bloc, il faut utiliser celui qui est dans la fonction ou cette fonction ce trouve
      4:Integer, position x du bloc
      5:Integer, position y du bloc
      6:Integer, position z du bloc
      7:Random, un fonction de random à déclarer
      8:Double, vélocité x (s’il n’est pas spécifier il est automatiquement mis à 0.0)
      9:Double, vélocité y (s’il n’est pas spécifier il est automatiquement mis à 0.0)
      10:Double, vélocité z (s’il n’est pas spécifier il est automatiquement mis à 0.0)

      :::

      public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int i, float f, float g, float t)
      {
          Random random = new Random;
          FFMTRegistry.spawnParticles(10, "smoke", world, x, y, z, Random random, 0.5D, 0.8D, 1.2D);
      }
      

      Voici une fonction pour ajouter une recette au four avec un metadata:

      addSmeltingWithMetadata(int input, int metadata, ItemStack output, float xp)
      

      Arguments:
      1:Integer, id du bloc/item
      2:Integer, metadata du bloc/item
      3:ItemStack, résultat de la cuisson
      4:Float, xp donné après opération

      FFMTRegistry.addSmeltingWithMetadata(Bloc.blockID, 3, new ItemSpawn(item, 1), 0.5F)
      

      Maintenant je vais vous parler des fonction de craft en masse (elles sont à mettre dans la class principale):
      Armures:

      addArmorCrafting(ItemStack material, int type, ItemStack output)
      

      Arguments:
      1:ItemStack, le bloc/item utiliser dans le craft
      2:Integer, la pièce d’armure à craft (0:Casque, 1:Plastron, 2:Pantalon, 3:Bottes)
      3:ItemStack, la pièce d’armure terminée

      FFMTRegistry.addArmorCrafting(new ItemStack(Block.dirt, 1), 1, new ItemStack(Item.plastron, 1));
      

      Et pour toutes les armures en un coup:

      addAllArmorCrafting(ItemStack material, ItemStack outputHelmet, ItemStack outputChestPlate, ItemStack outputLeggings, ItemStack outputBoots)
      

      Arguments:
      1.ItemStack, le bloc/item utiliser dans le craft
      2.ItemStack, le casque
      3.ItemStack, le plastron
      4.ItemStack, le pantalon
      5.ItemStack, les bottes

      FFMTRegistry.addAllArmorCrafting(new ItemStack(Block.dirt, 1), new ItemStack(Item.casque, 1), new ItemStack(Item.plastron, 1), new ItemStack(Item.pantalon, 1), new ItemStack(Item.bottes, 1))
      

      Outils:

      addToolsCrafting(ItemStack material, int type, ItemStack output, ItemStack stick)
      

      Arguments:
      1:ItemStack, le bloc/item utiliser dans le craft
      2:Integer, l’outil à craft (0:Hache, 1:Pelle, 2:Bèche, 3:Pioche, 4:épée)
      3:ItemStack, l’outil terminé
      4:ItemStack, le bâton utiliser

      FFMTRegistry.addToolsCrafting(new ItemStack(Block.dirt, 1), 1, new ItemStack(Item.Pelle, 1), new ItemStack(Item.stick, 1));
      

      Et pour tout les outils:

      addAllToolsCrafting(ItemStack material, ItemStack outputAxe, ItemStack outputShovel, ItemStack outputHoe, ItemStack outputPickaxe, ItemStack outputSword, ItemStack stick)
      

      Arguments:
      1.ItemStack, le bloc/item utiliser dans le craft
      2.ItemStack, la hache
      3.ItemStack, la pelle
      4.ItemStack, la bèche
      5.ItemStack, la pioche
      6.ItemStack, l’épée
      7.ItemStack, le bâton

      
      FFMTRegistry.addAllToolsCrafting(new ItemStack(NanotechItem.ItemBase, 1, 14), new ItemStack(NanotechItem.Nanomiteaxe, 1), new ItemStack(NanotechItem.Nanomiteshovel, 1), new ItemStack(NanotechItem.Nanomitehoe, 1), new ItemStack(NanotechItem.Nanomitepickaxe, 1), new ItemStack(NanotechItem.Nanomitesword, 1), new ItemStack(Item.stick, 1));
      

      Source: Nanotech_mod

      Et voici une fonction pour faire un check MAJ:

      registerVersionCheck(FMLPreInitializationEvent event, String versionUrl, String downloadurl, String modname, String actuallyversion)
      

      Arguments:
      1:FMLPreInitializationEvent, vous avez juste à mettre la fonction dans le PreInit et à mettre “event”
      2:String, lien vers le fichier.txt avec la version dedans. Dans ce fichier txt vous devez mettre la dernière version du mod
      3:String, lien vers la page de téléchargement du mod
      4:String, le nom du mod
      5:String, la version actuelle du mod

      FFMTRegistry.registerVersionCheck(event, "http://dl.mcnanotech.fr/FFMT/API/download/version.txt",
      "http://dl.mcnanotech.fr/FFMT/API/download/", "FFMT API", "1.0.2");
      

      Nous en avons finit pour la class FFMTRegistry.

      FFMTEntityHelper

      On commence avec un fonction pour faire spawn de la fumée à une entité, même fonctionement que pour le bloc:

      spawnSmokeParticles(int speed, EntityLiving entity, double xVel, double yVel, double zVel, double xPosition, double yPosition, double zPosition)
      

      Arguments:
      1.Integer, la vitesse de spawn
      2.EntityLiving, l’entité en question
      3.Double, vélocité x
      4.Double, vélocité y
      4.Double, vélocité z
      5.Double, position x (Non obligatoire)
      6.Double, position y (Non obligatoire)
      7.Double, position z (Non obligatoire)

      
      public void onLivingUpdate()
      {
           FFMTEntityHelper.spawnSmokeParticles10, (EntityLiving)this, 0.5D, 0.5D, 0.5D)
      }
      
      

      Une fontion pour enregistrer une entité mais autre qu’un mob:

      addOtherEntity(Class entityClass, String entityName, int id, Object mod, int trackingRange, int updateFrequency, boolean sendsVelocityUpdates)
      

      Arguments:
      1.Class, une class extends Entity
      2.String, le nom de l’entité
      3.Integer, l’id
      4.Object, l’instance du mod
      5.Integer, la distance sur laquelle l’entité vous traque
      6.Integer, la fréquence d’update de l’entité
      6.Boolean, si l’entité met à jour ça vélocité

      Je ne l'est jamais utilisée, je laisse à son créateur nous montrer comment faire
      

      Et voilà la dernière fonction de cette classe, celle qui vous permet d’enregistrer un mob en une seule ligne.

      addMob(Class entityClass, String entityName, int id, Object mod, int trackingRange, int updateFrequency, boolean sendsVelocityUpdates,
      int backGroundEggColour, int foreGroundEggColour, int weightedProb, int minSpawn, int maxSpawn, EnumCreatureType creatureType, BiomeGenBase… biome)
      

      Arguments
      1.Class, une class extends Entity
      2.String, le nom du mob
      3.Integer, l’id du mob dans le mod
      4.Object, l’instance du mod
      5.Integer, distance de traque du mob
      6.Integer, fréquence de mise à jour du mob
      7.Boolean, si le mob met à jour ça vélocité
      8.Integer, couleur arrière de l’oeuf
      9.Integer, couleur avant de l’oeuf
      10.Integer, probabilité de spawn
      11.Integer, spawn minimum par chunk
      12.Integer, spawn maximum par chunk
      13.EnumCreatureType, le type de créature
      14.BiomeGenBase… , les biomes où spawn le mod (Non obligatoire)(vous pouvez mettre le nombre de biomes que vous souhaitez)

      FFMTEntityHelper.addMob(ClassDuMob.class, "Mob", 0, Mod.instance, 100, 1, true, FFMTColor.blackInt, FFMTColor.blueInt, 5, 2, 7, EnumCreatureType.UNDEAD, BiomeGenBase.desert, BiomeGenBase.plain)
      

      Explication des “FFMTColor.blackInt” “FFMTColor.blueInt” juste en dessous.

      ! FFMTColor
      ! Cette classe sera vite abordée, en effet le système est toujours le même, dans l’exemple de la méthode addMob() j’ai écrit FFMTColor.blackInt au niveau de la couleur arrière de l’oeuf de spawn, et bien c’est tout le fonctionnement de cette classe, s’il vous faut une couleur en int , il vous suffit d’écrire FFMTColor.nomDeLaCouleurInt, et là vous aller me dire “mais pourquoi y a-t-il Int à la fin?”. Et bien c’est car il existe aussi FFMTColor.black (par exemple) mais cette fois-ci c’est pour les String, dans le tchat, les guis, etc.
      ! >! Pour les int, voir méthode addMob(), et pour les String:

      player.addChatMessage(FFMTColor.darkBlue + "écrit en bleu foncé");
      

      ! FFMTEntityMobCustomized
      ! Je laisse elias54 rédiger cette partie car c’est lui qui a créé cette class et je ne l’est pas utilisée.
      ! Vérificateur de mise à jour
      ! Voici un vérificateur de mise à jour (ou Version checker), l’idée est de elias54 et robin4002 l’a amélioré.
      Pour l’utiliser, dans le PreInit de la class principale vous ajoutez:
      !

      Compilation

      ! Pour cela il vous suffit de compiler votre mod normalement, mais vous ne devez pas ajouter de dossier “fr” qui se trouve dans votre dossier reobf, après cela, pour l’utiliser, vous glisser votre mod et l’archive de l’API universal dans le dossier .minecraft/mods/, avec, bien sûr, Forge installé.


      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
      • kevin_68
        kevin_68 Moddeurs confirmés dernière édition par

        Tutoriel finit pour moi, j’ai mis tout ce que je pouvais, après je laisse elias compléter la partie vide qui le concerne.


        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
        • MrCupCakeMonster
          MrCupCakeMonster dernière édition par

          Super ! Je pense que je l’utiliserais 🙂
          Un petit problème, le tuto pour le vérificateur de mise à jour est expliqué 2 fois ^^

          Mes tutos :

          >! Un item mangeable
          [url=http://www.minecraftforgefranc…

          1 réponse Dernière réponse Répondre Citer 1
          • Phenix246
            Phenix246 Rédacteurs dernière édition par

            Le post pourrai être mis à jour please

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

              Un nouveau est en cours de préparation depuis un moment, il sera disponible dès la 1.7.

              1 réponse Dernière réponse Répondre Citer 0
              • A
                Aerath dernière édition par

                Où doit-on extraire l’archive si on utilise Gradle au lieu de MCP ?

                1 réponse Dernière réponse Répondre Citer 0
                • Superloup10
                  Superloup10 Modérateurs dernière édition par

                  Elle se trouve ici

                  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
                  • robin4002
                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                    Suffit juste de passer par le build.gradle maintenant comme montré dans le readme.
                    https://github.com/FFMT/FFMT-libs/blob/master/README.md

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

                      J’ai installé l’api mais quand j’ouvre eclipse ca me dis ca:

                      Description Resource Path Location Type
                      Project 'Minecraft' is missing required library: 'C:\Users\Hugo\Desktop\Mod Harry Potter\forge-1.7.10-10.13.2.1230-src\unresolved dependency - fr.minecraftforgefrance FFMT-libs ${version}-mc${mcversion}' Minecraft Build path Build Path Problem
                      
                      

                      Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

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

                        Il faut remplacer version et mcversion par les bonnes valeurs …

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

                          Mdrr je me disais, c’est cool ça détecte auto ta version! Mais en fait je suis juste con

                          Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

                          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