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

    Résolu SetBlock Avec Direction

    1.7.x
    1.7.2
    3
    9
    1893
    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.
    • BurningCraft
      BurningCraft dernière édition par

      Bonjour,

      j’ai crée un bloc ‘special’ ou quand on clique dessus sa le remplace en un autre bloc, mais le problème c’est que je ne sait pas faire en sorte que ce bloc soit dans la même direction que le précédent ^^.

      En Gros:

      Block1 devient Block2 quand on clique dessus
      Mais Block2 ne se met pas dans le sens que était Block1

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

        Tu définie la direction de ton bloc de quelle façon ? Dans un TE ?

        1 réponse Dernière réponse Répondre Citer 0
        • DiabolicaTrix
          DiabolicaTrix Correcteurs Moddeurs confirmés dernière édition par

          Eh bien, peu importe si tu utilises un TE ou les metadata, tu récupère la direction et tu l’appliques sur ton bloc.

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

            @‘BrokenSwing’:

            Tu définie la direction de ton bloc de quelle façon ? Dans un TE ?

            Oui c’est un TE
            @‘DiabolicaTrix’:

            Eh bien, peu importe si tu utilises un TE ou les metadata, tu récupère la direction et tu l’appliques sur ton bloc.

            j’ai essayer cela mais sa ne marche pas

              public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
                   {
                    TileEntity tile = world.getTileEntity(x, y, z);
            
                int direction = ((TileEntityblock1)tile).getDirection();
                if(direction == 0)
                {
                world.setBlock(x, y, z, LaFrenchCraftMOD.block2, 0, 0);
                }
                else if(direction == 1)
                {
                world.setBlock(x, y, z, LaFrenchCraftMOD.block2, 1, 0);
                }
                else if(direction == 2)
                {
                world.setBlock(x, y, z, LaFrenchCraftMOD.block2, 2, 0);
                }
                else if(direction == 3)
                {
                world.setBlock(x, y, z, LaFrenchCraftMOD.block2, 3, 0);
                }
                }
            
            1 réponse Dernière réponse Répondre Citer 0
            • BrokenSwing
              BrokenSwing Moddeurs confirmés Rédacteurs dernière édition par

              
              public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
              TileEntity tile = world.getTileEntity(x, y, z);
              
              int direction = ((TileEntityblock1)tile).getDirection();
              world.setBlock(x, y, z, LaFrenchCraftMOD.block2);
              ((Cast)world.getTileEntity(x, y, z)).setDirection(direction);
              }
              
              
              1 réponse Dernière réponse Répondre Citer 1
              • BurningCraft
                BurningCraft dernière édition par

                @‘DiabolicaTrix’:

                Eh bien, peu importe si tu utilises un TE ou les metadata, tu récupère la direction et tu l’appliques sur ton bloc.

                @‘BrokenSwing’:

                
                public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
                       TileEntity tile = world.getTileEntity(x, y, z);
                   
                       int direction = ((TileEntityblock1)tile).getDirection();
                       world.setBlock(x, y, z, LaFrenchCraftMOD.block2);
                       ((Cast)world.getTileEntity(x, y, z)).setDirection(direction);
                }
                
                

                heuu j’ai une erreur sur

                ((Cast)world.getTileEntity(x, y, z))
                

                Cast cannot be resolved to a type

                j’ai essayer de remplace cast par le TE du Block 2 mais la aussi une erreur mais sur le

                %(#333333)[```java
                setDirection

                
                The method setDirection(byte) in the type TileEntityblock2 is not applicable for the arguments (int)
                1 réponse Dernière réponse Répondre Citer 0
                • DiabolicaTrix
                  DiabolicaTrix Correcteurs Moddeurs confirmés dernière édition par

                  cast byte à direction.

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

                    @‘DiabolicaTrix’:

                    cast byte à direction.

                    oui j’y ai penser des que j’ai poster XD et sa marche parfaitement(sa m’apprendra a réfléchir plus avant de poster XD) merci a vous tous 🙂

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

                      Pour Cast c’est normal c’était juste pour indiquer qu’il fallait cast le TE
                      Ensuite tu devrais avoir le même système de direction pour tout tes blocs, si tu utilise un byte, fait le tout avec les bytes

                      Tu déclare la variable direction comme un byte ```java
                      private byte direction;

                      Tu récupère un byte losque tu récupère la direction ```java
                      public byte getDirection() { return direction; }
                      

                      Tu met un byte en argument lorsque tu set la direction ```java
                      public void setDirection(byte d) { direction = d; }

                      Et du coup tu récupère un byte dans la fonction onBlockActivated :
                      ```java
                      byte direction = ((Cast)TE).getDirection();
                      
                      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