MFF

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

    Block qui drop des items tout les x ticks

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.7.10
    6 Messages 2 Publieurs 1.4k 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
      Sigma_Philein
      dernière édition par

      Bonjour à tous !

      Je cherche à créer un **block **qui drop des items au sol au bout d’un intervalle de temps, 
      Mais je ne sais pas comment faire pour qu’un block drop des items …
      Si quelqu’un a une idée je suis intéressé !!

      Merci

      Sigma

      > "Il n’existe que deux choses infinies, l’univers et la bêtise humaine… mais pour l'uni…

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

        Salut,
        Il faut faire spawner une EntityItem contenant l’item stack voulu dans le monde.
        Pour faire un action tous les x temps dans un bloc tu peux utiliser la fonction updateTick, le temps de tick se défini avec la fonction tickRate. Il faut ajouter un this.setRandomTick(true); dans le constructeur pour que cela fonctionne.

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

          @‘robin4002’:

          Salut,
          Il faut faire spawner une EntityItem contenant l’item stack voulu dans le monde.
          Pour faire un action tous les x temps dans un bloc tu peux utiliser la fonction updateTick, le temps de tick se défini avec la fonction tickRate. Il faut ajouter un this.setRandomTick(true); dans le constructeur pour que cela fonctionne.

          Merci beaucoup !
          J’ai fais ça :

          public void updateTick(World world, int x, int y, int z)
          {
              EntityItem item = new EntityItem(world, x, y, z, new ItemStack(ItemMod.limber, 1));
          }
          
          public int tickRate() 
          { 
              return 10; 
          }
          

          Mais ça ne marche pas quelqu’un peut m’expliquer la connerie que j’ai faite et que j’ai pas vu …

          Merci ^^

          > "Il n’existe que deux choses infinies, l’univers et la bêtise humaine… mais pour l'uni…

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

            Le problème c’est que ton code est incomplet, tu ne spawn jamais l’entité item. De plus la fonction updateTick a en argument en plus Random que tu n’as pas mis. Tu peux utiliser l’annotation @Override pour t’assurer qu’une fonction existe dans la classe mère.
            Il faut ajouter dans updateTick :
            world.spawnEntityInWorld(item);

            Par contre si l’entité spawn sur le world client tu vas avoir une entité fantôme impossible à ramasser. Donc il faudrait plutôt faire comme ça :

            @Override
            public void updateTick(World world, int x, int y, int z, Random rand)
            {
            if(!world.isRemote)
            {
            EntityItem item = new EntityItem(world, x, y, z, new ItemStack(ItemMod.limber, 1));
            world.spawnEntityInWorld(item);
            }
            }
            

            N’oublies pas d’ajouter setTickRandomly(true); dans le constructeur du bloc.

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

              @‘robin4002’:

              Le problème c’est que ton code est incomplet, tu ne spawn jamais l’entité item. De plus la fonction updateTick a en argument en plus Random que tu n’as pas mis. Tu peux utiliser l’annotation @Override pour t’assurer qu’une fonction existe dans la classe mère.
              Il faut ajouter dans updateTick :
              world.spawnEntityInWorld(item);

              Par contre si l’entité spawn sur le world client tu vas avoir une entité fantôme impossible à ramasser. Donc il faudrait plutôt faire comme ça :

                 @Override
                 public void updateTick(World world, int x, int y, int z, Random rand)
                 {
                  if(!world.isRemote)
                  {
                  EntityItem item = new EntityItem(world, x, y, z, new ItemStack(ItemMod.limber, 1));
                  world.spawnEntityInWorld(item);
                  }
                 }
              

              N’oublies pas d’ajouter setTickRandomly(true); dans le constructeur du bloc.

              Ça ne marche toujours pas 😕

              > "Il n’existe que deux choses infinies, l’univers et la bêtise humaine… mais pour l'uni…

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

                Envoies le code complet de ta classe.

                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