MFF

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

    Customiser votre bloc

    Planifier Épinglé Verrouillé Déplacé Les blocs
    1.6.x
    69 Messages 17 Publieurs 24.0k Vues 3 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.
    • J Hors-ligne
      jeje78660
      dernière édition par

      Salut,
      très bon tuto mais j’aimerais créer une led, noire lorsqu’elle est eteinte et verte lorsqu’elle est allumé mais je trouve pas comment faire, le code de la lampe de redstone n’est pas la même.

      Quelqu’un pourrait m’aider ? Merci
      PS : je modde sur forge et j’aimerais changé juste la texture, pas créer un nouveau block.

      1 réponse Dernière réponse Répondre Citer 0
      • Superloup10S Hors-ligne
        Superloup10 Modérateurs
        dernière édition par

        Si tu veux juste changer la texture, tu n’as pas besoin de mod pour ça, juste d’un ressourcepack.

        Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

        Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

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

          Passe par un TileEntity

          @Override
          public TileEntity createTileEntity(World world, int metadata)
          {
          return new TileEntityTutorial();
          }
          
          public boolean hasTileEntity(int metadata)
          {
          return true;
          }
          
          @SideOnly(Side.CLIENT)
          public Icon getBlockTexture(IBlockAccess blockaccess, int x, int y, int z, int side)
          {
          TileEntity te = blockaccess.getBlockTileEntity(x, y, z);
          if(te != null && te instanceof TileEntityTutorial)
          {
          TileEntityTutorial tetuto = (TileEntityTutorial)te;
          return te.isEnable() ? this.iconGreen : this.iconDark
          }
          return this.getIcon(side, blockaccess.getBlockMetadata(x, y, z));
          }
          

          iconGreen et iconDark sont tes deux icônes. Ne supprime pas la méthode getIcon, elle est nécessaire pour l’icône en main, getBlockTexture ne fait que la texture sur le monde.

          TileEntityTutorial ->

          public class TileEntityTutorial extends TileEntity
          {
          private boolean enable;
          
          public void updateEntity()
          {
          enable = this.worldObj.isBlockIndirectlyGettingPowered(this.xCoord, this.yCoord, this.zCoord)
          }
          
          public boolean isEnable()
          {
          return enable;
          }
          
          public Packet getDescriptionPacket()
          {
          NBTTagCompound nbttagcompound = new NBTTagCompound();
          this.writeToNBT(nbttagcompound);
          return new Packet132TileEntityData(this.xCoord, this.yCoord, this.zCoord, 4, nbttagcompound);
          }
          
          public void onDataPacket(INetworkManager net, Packet132TileEntityData pkt)
          {
          this.readFromNBT(pkt.data);
          }
          }
          

          ÉDIT : n’oublie pas d’enregistrer ton TileEntity, sinon tu vas avoir des erreurs.
          http://www.minecraftforgefrance.fr/showthread.php?tid=106

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

            Dans le TileEntityLedVerte, il me met une erreur a .data : “this.readFromNBT(pkt.data);”
            Ainsi que a isEnable, iconGreen, iconDark dans BlockLedVerte.

            Sinon, y a pas un moyen de le faire avec deux blocks ? Sa serais peut-être plus facile ?

            1 réponse Dernière réponse Répondre Citer 0
            • Superloup10S Hors-ligne
              Superloup10 Modérateurs
              dernière édition par

              Désolé, j’avais mal compris ta demande. Par contre, tu pourrais nous dire quelles sont tes erreurs?

              Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

              Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

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

                Je les aie marqué dans le post précédent

                1 réponse Dernière réponse Répondre Citer 0
                • Superloup10S Hors-ligne
                  Superloup10 Modérateurs
                  dernière édition par

                  Tu as bien préciser que iconGreen et iconBlack, correspondent aux bonnes textures?

                  Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                  Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

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

                    Oups, c’est de ma faute. Dans ton TileEntity, ajoute :

                    public void readFromNBT(NBTTagCompound nbtTag)
                    {
                    super.readFromNBT(nbtTag);
                    enable = nbtTag.getBoolean("enable");
                    }
                    
                    public void writeToNBT(NBTTagCompound nbtTag)
                    {
                    super.writeToNBT(nbtTag);
                    nbtTag.setBoolean("enable", enable);
                    }
                    
                    1 réponse Dernière réponse Répondre Citer 0
                    • J Hors-ligne
                      jeje78660
                      dernière édition par

                      => robin4002 : Y’a une erreur a setString
                      => Superloup10 : Comment je fais pour mettre deux textures dans ma classe ?
                      Je suis sur forge 1.6.2

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

                        setBoolean* 😕

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

                          Je dois mettre quoi pour iconGreen, iconDark, isEnable plz ?
                          Parce que je vois pas du tout comment faire.
                          Merci

                          1 réponse Dernière réponse Répondre Citer 0
                          • Superloup10S Hors-ligne
                            Superloup10 Modérateurs
                            dernière édition par

                            public void registerIcons(IconRegister iconRegister)
                            {
                            iconGreen = iconRegister.registerIcon("modid:TextureVerte");
                            iconDark = iconRegister.registerIcon("modid:TextureNoire");
                            }
                            
                            

                            Voilà pour la gestion des textures, après à toi de faire en sorte que la TextureNoire soit celle, par défaut.

                            Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                            Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

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

                              Merci mais l’on ne peut pas utiliser cette méthode ?
                              if(world.isBlockIndirectlyGettingPowered(x, y, z) && world.getBlockPowerInput(x, y, z) > 😎
                              {
                              //Action à faire si le bloc est alimenté par un signale de redstone avec une force supérieur à 8.
                              }

                              Parce que la je ne comprend pas le code que vous m’avez passé.
                              Il y a une erreur a " return te.enable() "

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

                                -> return tetuto.isEnable()
                                À nouveau, fail de ma part

                                Et sinon dans le tileEntiy :

                                public void updateEntity()
                                {
                                enable = this.worldObj.isBlockIndirectlyGettingPowered(this.xCoord, this.yCoord, this.zCoord) && this.worldObj.getBlockPowerInput(this.xCoord, this.yCoord, this.zCoord) > 8;
                                }
                                
                                1 réponse Dernière réponse Répondre Citer 0
                                • J Hors-ligne
                                  jeje78660
                                  dernière édition par

                                  “Type mismatch: cannot convert from Object to Icon” pour ton erreur corrigé 😛
                                  et quand je change “tetuto.isEnable()” par “TileEntityLedVerte.isEnable()” parce que j’imagine que sa fait référence à mon TileEntity mais maintenant sa me marque “Cannot make a static reference to the non-static method isEnable() from the type TileEntityLedVerte” et quand je veut fixer l’erreur, je peut changer
                                  "
                                  public boolean isEnable()
                                  {
                                  return enable;
                                  }
                                  "
                                  par
                                  "
                                  public static isEnable()
                                  {
                                  return enable;
                                  }
                                  "
                                  mais y a d’autres erreurs qui apparaissent, bref sa fait une impasse d’erreur
                                  Merci de ta patience 😃

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

                                    La méthode ne doit pas être static.
                                    Envoie toute ta fonction getBlockTexture

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

                                      @SideOnly(Side.CLIENT)
                                      public Icon getBlockTexture(IBlockAccess blockaccess, int x, int y, int z, int side)
                                      {
                                      TileEntity te = blockaccess.getBlockTileEntity(x, y, z);
                                      if(te != null && te instanceof TileEntityLedVerte)
                                      {
                                      //TileEntityLedVerte tetuto = (TileEntityLedVerte)tetuto;
                                      //return TileEntityLedVerte.isEnable() ? this.iconGreen : this.iconDark;
                                      }
                                      return this.getIcon(side, blockaccess.getBlockMetadata(x, y, z));
                                      }
                                      

                                      La ou il y a les // de commentaire, c’est la ou il y a les erreurs.___
                                      Je te met tous mes codes :
                                      BlockLedVerte

                                      package Assabody.mod;
                                      
                                      import java.util.Random;
                                      
                                      import cpw.mods.fml.relauncher.Side;
                                      import cpw.mods.fml.relauncher.SideOnly;
                                      
                                      import net.minecraft.block.Block;
                                      import net.minecraft.block.material.Material;
                                      import net.minecraft.client.renderer.texture.IconRegister;
                                      import net.minecraft.creativetab.CreativeTabs;
                                      import net.minecraft.tileentity.TileEntity;
                                      import net.minecraft.util.Icon;
                                      import net.minecraft.world.IBlockAccess;
                                      import net.minecraft.world.World;
                                      
                                      public class BlockLedVerte extends Block{
                                      private Object iconDark;
                                      private Object iconGreen;
                                      
                                      public BlockLedVerte(int par1)
                                      {
                                      super(par1, Material.rock);
                                      this.setCreativeTab(ModAssabody.AssabodyCreativeTabs);
                                      }
                                      
                                      public void registerIcons(IconRegister iconRegister)
                                      {
                                      iconGreen = iconRegister.registerIcon("modid:TextureVerte");
                                      iconDark = iconRegister.registerIcon("modid:TextureNoire");
                                      }
                                      
                                      @Override
                                      public TileEntity createTileEntity(World world, int metadata)
                                      {
                                      return new TileEntityLedVerte();
                                      }
                                      
                                      @SideOnly(Side.CLIENT)
                                      public Icon getBlockTexture(IBlockAccess blockaccess, int x, int y, int z, int side)
                                      {
                                      TileEntity te = blockaccess.getBlockTileEntity(x, y, z);
                                      if(te != null && te instanceof TileEntityLedVerte)
                                      {
                                      //TileEntityLedVerte tetuto = (TileEntityLedVerte)tetuto;
                                      //return TileEntityLedVerte.isEnable() ? this.iconGreen : this.iconDark;
                                      }
                                      return this.getIcon(side, blockaccess.getBlockMetadata(x, y, z));
                                      }
                                      public boolean hasTileEntity(int metadata)
                                      {
                                      return true;
                                      }
                                      
                                      public void onNeighborBlockChange(World world, int x, int y, int z, int neighborblockid, World par1World, int par2, int par3, int par4)
                                      {
                                      if(world.isBlockIndirectlyGettingPowered(x, y, z) && world.getBlockPowerInput(x, y, z) > 8)
                                      {
                                      //par1World.setBlock(par2, par3, par4, ModAssabody.BlockSoin.blockID, 0, 2);
                                      }
                                      }
                                      
                                      public int idDropped(int par1, Random par2Random, int par3)
                                      {
                                      return this.blockID;
                                      }
                                      
                                      public boolean renderAsNormalBlock()
                                      {
                                      return true;
                                      }
                                      
                                      public boolean isOpaqueCube()
                                      {
                                      return false;
                                      }
                                      }
                                      
                                      

                                      **TileEntityLedVerte **

                                      package Assabody.mod;
                                      
                                      import net.minecraft.nbt.NBTTagCompound;
                                      import net.minecraft.network.INetworkManager;
                                      import net.minecraft.network.packet.Packet;
                                      import net.minecraft.network.packet.Packet132TileEntityData;
                                      import net.minecraft.tileentity.TileEntity;
                                      
                                      public class TileEntityLedVerte extends TileEntity
                                      {
                                      private boolean enable;
                                      
                                      public void updateEntity()
                                      {
                                      enable = this.worldObj.isBlockIndirectlyGettingPowered(this.xCoord, this.yCoord, this.zCoord) && this.worldObj.getBlockPowerInput(this.xCoord, this.yCoord, this.zCoord) > 8;
                                      }
                                      
                                      public boolean isEnable()
                                      {
                                      return enable;
                                      }
                                      
                                      public Packet getDescriptionPacket()
                                      {
                                      NBTTagCompound nbttagcompound = new NBTTagCompound();
                                      this.writeToNBT(nbttagcompound);
                                      return new Packet132TileEntityData(this.xCoord, this.yCoord, this.zCoord, 4, nbttagcompound);
                                      }
                                      
                                      public void onDataPacket(INetworkManager net, Packet132TileEntityData pkt)
                                      {
                                      //this.readFromNBT(pkt.data);
                                      }
                                      public void readFromNBT(NBTTagCompound nbtTag)
                                      {
                                      super.readFromNBT(nbtTag);
                                      enable = nbtTag.getBoolean("enable");
                                      }
                                      
                                      public void writeToNBT(NBTTagCompound nbtTag)
                                      {
                                      super.writeToNBT(nbtTag);
                                      nbtTag.setBoolean("enable", enable);
                                      }
                                      }
                                      
                                      
                                      1 réponse Dernière réponse Répondre Citer 0
                                      • robin4002R Hors-ligne
                                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                        dernière édition par

                                        TileEntityLedVerte tetuto = (TileEntityLedVerte)te;
                                        return tetuto.isEnable() ? this.iconGreen : this.iconDark;
                                        
                                        1 réponse Dernière réponse Répondre Citer 0
                                        • J Hors-ligne
                                          jeje78660
                                          dernière édition par

                                          Quand je fais sa, sa me dis “Type mismatch: cannot convert from Object to Icon”

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

                                            Ha oui normal :
                                            private Object iconDark;
                                            private Object iconGreen;
                                            ->
                                            private Icon iconDark;
                                            private Icon iconGreen;

                                            En passant, il faut aussi les enregistrer :

                                            public void registerIcons(IconRegister iconRegister)
                                            {
                                            iconDark = iconRegister.registerIcon("modid:led_dark");
                                            iconGreen = iconRegister.registerIcon("modid:led_green");
                                            }
                                            

                                            Et dans ton TileEntity :
                                            //this.readFromNBT(pkt.data);
                                            Enlève le // sinon ça ne marchera pas.

                                            Je te conseil également de faire un tour sur les tutoriels suivant :
                                            http://www.minecraftforgefrance.fr/showthread.php?tid=78
                                            http://www.minecraftforgefrance.fr/showthread.php?tid=106
                                            http://www.minecraftforgefrance.fr/showthread.php?tid=115 (surtout le cas “sur un bloc avec metadata”)
                                            Tu comprendra surement mieux les codes que je t’ai donné.

                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 1 / 4
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB