Explosion à partir d'un bloc



  • Bonjour j'ai créé une bombe qui est en fait, un bloc simple avec une tileentity pour le rendu TESR.
    Maintenant, j'aimerai qu'elle explose au bout d'un certain cependant, je ne sais le faire que pour les entités avec OnUpdate() :

    @Override
       public void onUpdate()
       {
           super.onUpdate();
           if(this.fuseTime > 0)
           {
               this.fuseTime–;
           }
    
           else if(!this.worldObj.isRemote)
           {
               this.worldObj.newExplosion(this, this.posX, this.posY, this.posZ, 5.0F, false, true);
               this.setDead();
           }
    
       }
    

    Pouvez vous me dire ou me donner une piste sur comment faire une explosion à partir du bloc ?



  • Salut
    Tu as une fonction update pour la classe de ta tile entity



  • Okay j'ai fais ça :

    
    private int fuseTime = 40;
    
    @Override
    public void updateEntity()
    {
    if(this.fuseTime > 0)
    {
    this.fuseTime–;
    }
    
    else if(!this.worldObj.isRemote)
    {
    this.worldObj.newExplosion(this, Int.int2double(this.xCoord), Int.int2double(this.yCoord), Int.int2double(this.zCoord), 5.0F, false, true);
    this.setDead();
    }
    
    }
    
    

    Mais j'ai deux problèmes :

    • le newExplosion() n'accepte pas les TileEntity mais que les Entity
    • la fonction setDeath() n'existe pas pour les tiles entity


  • Tu peux mettre null à l'argument du newExplosion.



  • Ah, je savais pas merci.
    Et pour le this.setDeath(), je fais quoi ?



  • Tu peux essayer les deux fonctions World#removeTileEntity et World#setBlockToAir



  • Merci !


  • Administrateurs

    Sachant que le bloc va se détruire avec l'explosion tu n'as pas besoin de te soucier de ça.
    Donc retires juste le setDeath().



  • C'est ce que j'ai vu en testant



  • Cela aurait pu servir au cas ou le block présentait une grande valeur de résistance aux explosions.


Log in to reply