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

    Problème de block update

    Sans suite
    1.7.10
    2
    2
    1026
    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.
    • JustPingo
      JustPingo dernière édition par

      Bonjour.

      J’avais il y a peu ouvert un topic à propos de textures dynamiques. Je reviens sur le sujet : j’ai fait ce code dans le BlockAtomizationChamber :

      @SideOnly(Side.CLIENT)
      
      public void registerBlockIcons(IIconRegister iiconRegister)
          {
          this.blockIcon = iiconRegister.registerIcon(VirtualCraft.MODID + ":topmultiblock");
          this.on = iiconRegister.registerIcon(VirtualCraft.MODID + ":atomizationchamber");
          this.onU = iiconRegister.registerIcon(VirtualCraft.MODID + ":atomizationchamberU");
          this.onD = iiconRegister.registerIcon(VirtualCraft.MODID + ":atomizationchamberD");
          this.onB = iiconRegister.registerIcon(VirtualCraft.MODID + ":atomizationchamberB");
          this.off = iiconRegister.registerIcon(VirtualCraft.MODID + ":atomizationchamberoff");
          this.offU = iiconRegister.registerIcon(VirtualCraft.MODID + ":atomizationchamberoffU");
          this.offD = iiconRegister.registerIcon(VirtualCraft.MODID + ":atomizationchamberoffD");
          this.offB = iiconRegister.registerIcon(VirtualCraft.MODID + ":atomizationchamberoffB");
          }
      
      @SideOnly(Side.CLIENT)
      public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side)
          {
      
      if (world.getBlockMetadata(x, y, z) == 0) {
      if (side == 1 || side == 0)
          return this.blockIcon;
      
      TileEntity teTemp = world.getTileEntity(x, y, z);
          TileEntity teD = world.getTileEntity(x, y - 1, z);
          TileEntity teU = world.getTileEntity(x, y + 1, z);
      
          if (teTemp instanceof TileEntityAtomizationChamber) {
          TileEntityAtomizationChamber te = (TileEntityAtomizationChamber) teTemp;
          if (te.getWorking() == true) {
          if ((teD instanceof TileEntityMultiblock) && (teU instanceof TileEntityMultiblock)) return this.onB;
              else if (teD instanceof TileEntityMultiblock) return this.onD;
              else if (teU instanceof TileEntityMultiblock) return this.onU;
      
          return this.on;
          }
          }
          if ((teD instanceof TileEntityMultiblock) && (teU instanceof TileEntityMultiblock)) return this.offB;
          else if (teD instanceof TileEntityMultiblock) return this.offD;
          else if (teU instanceof TileEntityMultiblock) return this.offU;
      
          return this.off;
          }
      
      return this.getIcon(side, world.getBlockMetadata(x, y, z));
          }
      
      @SideOnly(Side.CLIENT)
      public IIcon getIcon(int side, int metadata)
      {
      
      if (side == 1 || side == 0)
          return this.blockIcon;
      return this.on;
      
      }
      

      et sous certaines conditions, TileEntityAtomizationChamber exécute :

      this.worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord);
      

      Pourtant, même lorsque cette fonction est exécutée, les textures ne se mettent pas à jour. En revanche, en mettant à jour un voisin manuellement en jeu, les textures se rafraîchissent. Une idée de pourquoi ?

      Merci d’avance !


      Über Networking Antennas

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

        http://www.minecraftforgefrance.fr/showthread.php?tid=1304#partie3-2

        public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt)
        {
        this.readFromNBT(pkt.func_148857_g());
        this.worldObj.markBlockRangeForRenderUpdate(this.xCoord, this.yCoord, this.zCoord, this.xCoord, this.yCoord, this.zCoord);
        }
        
        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