MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Action Custom Dispenser

    Planifier Épinglé Verrouillé Déplacé Autres
    1.6.x
    3 Messages 2 Publieurs 1.9k Vues 1 Watching
    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.
    • S Hors-ligne
      Sayac12
      dernière édition par robin4002

      Salut,
      Voici mon premier tutoriel. Il fonctionne en 1.6.x mais je n’ai pas testé en 1.7. Si vous n’avez pas compris le titre, vous allez apprendre à faire une action spéciale lorsque votre item ou bloc sera droppé par un dispenser. Cela peut être très utile notamment pour des TNT, des projectiles… J’ai mis beaucoup de temps à trouver mais j’y suis arriver.

      Dispenser Behavior

      Si vous ne savez pas ce que ça veut dire, moi non plus mais je sais juste que c’est la classe qui dit qu’est-ce qui se passe lorsque votre bloc est droppé par un dispenser.

      Code de base :

      package votrepackage_;
      
      import net.minecraft.block.BlockDispenser;
      import net.minecraft.dispenser.BehaviorDefaultDispenseItem;
      import net.minecraft.item.ItemStack;
      import net.minecraft.util.EnumFacing;
      import net.minecraft.world.World;
      
      final class DispenserBehaviorTuto extends BehaviorDefaultDispenseItem
      {
          protected ItemStack dispenseStack(ItemStack stack)
          {
              //code spécial à effectuer
      
              //Pas obligatoire mais je le conseille --stack.stackSize;
              return stack;
          }
      }
      

      Et voilà ! Il ne vous reste plus qu’à rajouter votre code spécial.
      Mais ce n’est pas fini !

      Classe Principale, Register

      Maintenant, dans votre classe principale, dans le INIT, rajoutez :

      BlockDispenser.dispenseBehaviorRegistry.putObject(VotreItem, new DispenserBehaviorTuto());
      

      Pensez à remplacer “VotreItem” et “DispenserBehaviorTuto” !
      Si ce n’est pas un item mais un bloc, écrivez à la place :

      BlockDispenser.dispenseBehaviorRegistry.putObject(Item.itemsList[VotreBloc.blockID], new DispenserBehaviorTuto());
      

      Exemple

      La plupart du temps(peut-être même tout le temps), l’action à effectuer est de faire spawner une entité. Code :

      package votrepackage_;
      
      import net.minecraft.block.BlockDispenser;
      import net.minecraft.dispenser.BehaviorDefaultDispenseItem;
      import net.minecraft.item.ItemStack;
      import net.minecraft.util.EnumFacing;
      import net.minecraft.world.World;
      
      final class DispenserBehaviorTuto extends BehaviorDefaultDispenseItem
      {
          protected ItemStack dispenseStack(IBlockSource blockSource, ItemStack stack)
          {
              //Obtenir le monde
              World world = blockSource.getWorld();
              //instancier l'entité
              EntityTuto entitytuto = new EntityTuto(/*paramètres de l'entité*/);
              //spawn de l'entité dans le monde
              world.spawnEntityInWorld(entitytuto);
      
              //Enlever 1 au stack
              –stack.stackSize;
              return stack;
          }
      }
      

      Voilà, c’est fini ! Si vous trouvez des erreurs, merci de m’en informer.

      Crée le mod TNT++ 1.6.4

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

        par2ItemStack -> stack, plus joli.
        //code spécial à effectuer
        Des exemples peut être ?

        1 réponse Dernière réponse Répondre Citer 0
        • S Hors-ligne
          Sayac12
          dernière édition par

          Copier-coller 😄

          Crée le mod TNT++ 1.6.4

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

          MINECRAFT FORGE FRANCE © 2024

          Powered by NodeBB