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

    Résolu Item qui spawn sur un block tout les 60 ticks

    1.7.x
    1.7.10
    3
    8
    993
    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.
    • Ciolgaming
      Ciolgaming dernière édition par

      Bonsoir,
      J’aimerai faire apparaître un lingot de fer au dessus d’un block custom tout les 3 secondes donc 60 ticks !

      J’ai trouvé ce post sur le forum : https://www.minecraftforgefrance.fr/showthread.php?tid=434

      Cependant il n’y a pas de solutions, en avez-vous une svp

      voici mon code :

      package com.mod.ciolmod.blocks;
      
      import java.util.Random;
      
      import com.mod.ciolmod.init.ItemMod;
      
      import net.minecraft.block.Block;
      import net.minecraft.block.material.Material;
      import net.minecraft.entity.item.EntityItem;
      import net.minecraft.init.Items;
      import net.minecraft.item.ItemStack;
      import net.minecraft.world.World;
      
      public class BlockIronSpawner extends Block {
      
      public BlockIronSpawner(Material p_i45394_1_) {
      super(p_i45394_1_);
      this.setTickRandomly(true);
      
      }
      
      @Override
      public void updateTick(World world, int x, int y, int z, Random rand)
      {
      
      EntityItem itemir = new EntityItem(world, x, y + 3, z, new ItemStack(Items.iron_ingot, 1));
      world.spawnEntityInWorld(itemir);
      
      }
      
      public int tickRate()
      {
         return 60;
      }
      
      }
      
      
      1 réponse Dernière réponse Répondre Citer 0
      • SpyMan
        SpyMan dernière édition par

        yo, faut un TileEntity sur ton block et que tu override la fonction updateEntity() dans la class tu TileEntity puis que tu fasse 2 un variable qui se nomme timer

        COMMENT CREER UN  TILEENTITY SUR TON BLOCK ===> https://www.minecraftforgefrance.fr/showthread.php?tid=1113
        fait ca avant de regarder le code ci-dessous

        
        if (timer < 60)
        {
             timer++;
        }
        
        if (timer == 60)
        {
            timer = 0;
            // Spawn ton EntityItem
        }
        
        
        1 réponse Dernière réponse Répondre Citer 0
        • Ciolgaming
          Ciolgaming dernière édition par

          Ok je regarde ça et je te recontacte d’ici fin de semaine si j’ai un souci merci beaucoup ?

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

            Merci, cependant je ne sais pas comment faire spawner un item de la tileentity 😞

            [size=smallif][size=small ]size=small
            [size=small{]
            [size=small    timer ][size=small=][size=small ][size=small0][size=small;]
            [size=small    ][size=small// Spawn ton EntityItem]
            [size=small}]

            voici la class de ma TE, il y a cependant une erreur quand je veux faire spawn l’item

            package com.mod.ciolmod.blocks.tileentities;
            
            import java.util.Random;
            
            import net.minecraft.entity.item.EntityItem;
            import net.minecraft.init.Items;
            import net.minecraft.item.ItemStack;
            import net.minecraft.nbt.NBTTagCompound;
            import net.minecraft.tileentity.TileEntity;
            import net.minecraft.world.World;
            
            public class TileEntityISpawner extends TileEntity {
            
              @Override
              public void readFromNBT(NBTTagCompound compound)
              {
                  super.readFromNBT(compound);
              }
            
              @Override
              public void writeToNBT(NBTTagCompound compound)
              {
                  super.writeToNBT(compound);
              }
            
            //l'erreur est à la ligne updateEntity :(
              @Override
              public void updateEntity(World world, int x, int y, int z, Random rand)
              {
            
              int timer = 0;
            
              if (timer < 60)
              {
                   timer++;
              }
            
              if (timer == 60)
              {
                  timer = 0;
                  EntityItem itemir = new EntityItem(world, x, y + 1, z, new ItemStack(Items.iron_ingot, 1));
                  world.spawnEntityInWorld(itemir);
              }
            
              }
            
            }
            
            

            Merci beaucoup encore pour toute cette aide 🙂

            J’espère un jour aider à mon tour comme vous le faîtes

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

              x -> this.posX
              idem pour y et z.

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

                Merci encore de ton aide !


                C’est bon j’ai trouvé ceci

                DimensionManager.getWorld(0)
                

                par contre toujours aucun résultat aucun item spawn avez-vous une idée ?

                Classe de mon Block

                package com.mod.ciolmod.blocks;
                
                import java.util.Random;
                
                import com.mod.ciolmod.blocks.tileentities.TileEntityISpawner;
                
                import net.minecraft.block.Block;
                import net.minecraft.block.material.Material;
                import net.minecraft.entity.item.EntityItem;
                import net.minecraft.init.Items;
                import net.minecraft.item.ItemStack;
                import net.minecraft.tileentity.TileEntity;
                import net.minecraft.world.World;
                
                public class BlockIronSpawner extends Block {
                
                public BlockIronSpawner(Material p_i45394_1_) {
                super(p_i45394_1_);
                this.setTickRandomly(true);
                }
                
                @Override
                  public TileEntity createTileEntity(World world, int metadata)
                  {
                      return new TileEntityISpawner();
                  }
                
                  @Override
                  public boolean hasTileEntity(int metadata)
                  {
                      return true;
                  }
                
                }
                
                

                Class de ma TE

                package com.mod.ciolmod.blocks.tileentities;
                
                import net.minecraft.entity.Entity;
                import net.minecraft.entity.item.EntityItem;
                import net.minecraft.init.Items;
                import net.minecraft.item.ItemStack;
                import net.minecraft.nbt.NBTTagCompound;
                import net.minecraft.tileentity.TileEntity;
                import net.minecraftforge.common.DimensionManager;
                
                public class TileEntityISpawner extends TileEntity {
                
                   private Entity field_98291_j;
                
                  @Override
                  public void readFromNBT(NBTTagCompound compound)
                  {
                      super.readFromNBT(compound);
                  }
                
                  @Override
                  public void writeToNBT(NBTTagCompound compound)
                  {
                      super.writeToNBT(compound);
                  }
                
                  @Override
                  public void updateEntity()
                  {
                
                  int timer = 0;
                
                  if (timer < 60)
                  {
                       timer++;
                  }
                
                  if (timer == 60)
                  {
                      timer = 0;
                      EntityItem itemir = new EntityItem(DimensionManager.getWorld(0), this.xCoord, this.yCoord + 1, this.zCoord, new ItemStack(Items.iron_ingot, 1));
                      this.worldObj.spawnEntityInWorld(itemir);
                  }
                
                  }
                
                //   public Entity func_98281_h() {
                
                //   if (this.field_98291_j == null)
                //        {
                //           Entity entity = new EntityItem(this.getWorldObj(), this.xCoord, this.yCoord + 2, this.zCoord, new ItemStack(Items.iron_ingot, 1)));
                //            entity = this.getWorldObj().spawnEntityInWorld(entity);
                //           this.field_98291_j = entity;
                //       }
                
                //        return this.field_98291_j;
                
                //   }
                
                }
                
                
                1 réponse Dernière réponse Répondre Citer 0
                • SpyMan
                  SpyMan dernière édition par

                  if (!this.worldObj.isRemote)
                  avant de faire spawn l’item afin de seulement executer le code server side only
                  et ta method updateentity est chelou normalement c’eset juste updateEntity sans arguments dans la fonction

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

                    @‘SpyMan’:

                    if (!this.worldObj.isRemote)
                    avant de faire spawn l’item afin de seulement executer le code server side only
                    et ta method updateentity est chelou normalement c’eset juste updateEntity sans arguments dans la fonction

                    Merci beaucoup ça fonctionne !! Je te remercie 1000 fois

                    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