• 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

Action Custom Dispenser

Autres
1.6.x
2
3
1.8k
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
    Sayac12 dernière édition par robin4002 23 juin 2018, 19:35 29 mars 2014, 18:47

    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
    • robin4002
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 29 mars 2014, 21:01

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

      1 réponse Dernière réponse Répondre Citer 0
      • S
        Sayac12 dernière édition par 30 mars 2014, 10:24

        Copier-coller 😄

        Crée le mod TNT++ 1.6.4

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

        MINECRAFT FORGE FRANCE © 2018

        Powered by NodeBB