Rendu item dans le special entity render



  • Bon cette fois ci un probleme je veux afficher un item dans le rendu d'un block donc pas trop de problème j'ai fait ceci

    ​ ItemStack stack = new ItemStack(Items.redstone, 1, 0);
    
    EntityItem entItem = new EntityItem(Minecraft.getMinecraft().thePlayer.getEntityWorld(), x, y, z, stack);
    entItem.hoverStart = 0;
    
    GL11.glTranslated(x + 0.5, y + 0.8 , z + 0.5);
    
    RenderItem.renderInFrame = true;
    
    if(te != null){
    GL11.glScaled((te.progressBarCraft) / te.progressBarCraft_Full,(te.progressBarCraft) / te.progressBarCraft_Full, (te.progressBarCraft) / te.progressBarCraft_Full);
    }
    
    RenderManager.instance.renderEntityWithPosYaw(entItem, 0, 0, 0, 0.0F, 0.0f);
    
    RenderItem.renderInFrame = false;
    

    Mais le problème c'est que j'ai voulutchanger sa taille en fonction d 'un valeur allant de 1 à 0 donc j'ai mis ceci :

    ​if(te != null){
    
    GL11.glScaled((te.progressBarCraft) / te.progressBarCraft_Full,(te.progressBarCraft) / te.progressBarCraft_Full, (te.progressBarCraft) / te.progressBarCraft_Full);
    }
    

    Mais sa ne fonctionne pas j'ai aussi voulut l'animer rotation avec glrotate mais la aussi aucun resultat !



  • Up parceque j'ai bon faire tout et nimporte quoi rien ne se produit…



  • Bon je viens de comprendre pourquoi et j'ai reussi partiellement à rêgler mon problème donc tous ofnctionne à premiere vue le seul problème c'est que l'animation s'updtate que quand j'ouvre m'on gui et je ne vois pas d'ou sa peux venir.


  • Administrateurs

    Tu as mit ton code dans quelle fonction ?



  • lequel l'affichage ?
    si oui dans

    ​ public void renderTileEntityAt(TileEntity te, double x, double y, double z, float f)
    
    

  • Administrateurs

    Ah je vois le problème, en fait la variable progressBarCraft n'est que synchronisé si tu as le container ouvert, il faudrait le synchroniser à chaque tick.



  • Mais comment faire vue qu'elle est aussi lié au gui ?


  • Administrateurs

    Dans la fonction updateTick() de ton bloc met un worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);



  • Non sa ne fonctionne pas pourtant je ne pense pas avoir fais de faute :

    ​    public void updateTick(World p_149674_1_, int p_149674_2_, int p_149674_3_, int p_149674_4_, Random p_149674_5_) {
    
        p_149674_1_.markBlockForUpdate(p_149674_2_, p_149674_3_, p_149674_4_);
        }
    

  • Administrateurs

    Non, dans le tile entity, pas dans le bloc.



  • Sa fonctionne parfaitement sujet resolu merci mille fois !


Log in to reply