• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Solved SetBlock Avec Direction

    1.7.x
    1.7.2
    3
    9
    1709
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • BurningCraft
      BurningCraft last edited by

      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 Reply Last reply Reply Quote 0
      • BrokenSwing
        BrokenSwing Moddeurs confirmés Rédacteurs last edited by

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

        1 Reply Last reply Reply Quote 0
        • DiabolicaTrix
          DiabolicaTrix Correcteurs Moddeurs confirmés last edited by

          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 Reply Last reply Reply Quote 0
          • BurningCraft
            BurningCraft last edited by

            @‘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 Reply Last reply Reply Quote 0
            • BrokenSwing
              BrokenSwing Moddeurs confirmés Rédacteurs last edited by

              
              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 Reply Last reply Reply Quote 1
              • BurningCraft
                BurningCraft last edited by

                @‘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 Reply Last reply Reply Quote 0
                • DiabolicaTrix
                  DiabolicaTrix Correcteurs Moddeurs confirmés last edited by

                  cast byte à direction.

                  1 Reply Last reply Reply Quote 0
                  • BurningCraft
                    BurningCraft last edited by

                    @‘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 Reply Last reply Reply Quote 0
                    • BrokenSwing
                      BrokenSwing Moddeurs confirmés Rédacteurs last edited by

                      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 Reply Last reply Reply Quote 0
                      • 1 / 1
                      • First post
                        Last post
                      Design by Woryk
                      Contact / Mentions Légales

                      MINECRAFT FORGE FRANCE © 2018

                      Powered by NodeBB