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

    Résolu Mauvaise Direction

    1.7.x
    1.7.2
    4
    12
    1909
    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,

      Je Rencontre un Problème avec un bloc techne Qui Doit s’orienter dans la Direction du joueur.

      #Problème Détaillée(Problème Détaillée)

      J’ai voulu faire un bloc techne qui se tourne dans la direction du joueur mais le probleme c’est que le bloc se met dans la direction inverse. Je ne pensse pas m’être tromper de Face dans Techne j’ai pris la Face “F” pour l’avant.

      Voici un Screen :

      http://www.noelshack.com/2016-07-1455637259-2016-02-16-16-39-54.png

      Mes Codes:

      Bloc

      public class AutelFanta extends Block 
      {
      
      public AutelFanta(int i, Material material) 
      {
      super(material);
      this.setHarvestLevel("pickaxe", 3);
      this.setHardness(20.0F);
      this.setResistance(100.0F);
      this.setLightLevel(1.0F);
      this.setStepSound(soundTypeMetal);
      this.setBlockName("AutelFanta");
      this.setBlockTextureName(LaFrenchCraftMOD.MODID + ":AutelFanta");
      }
      
      @Override
         public TileEntity createTileEntity(World world, int metadata)
         {
             return new TileEntityAutelFanta();
         }
      
         @Override
         public boolean hasTileEntity(int metadata)
         {
             return true;
         }
      
         public boolean isOpaqueCube()
         {
             return false;
         }
      
         public boolean renderAsNormalBlock()
         {
             return false;
         }
      
         @SideOnly(Side.CLIENT)
         public int getRenderType()
         {
             return ProxyClient.tesrRenderId;
         }
         public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z)
         {
             this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 2.3F, 1.0F);
         }
      
         public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase living, ItemStack stack)
         {
             if(stack.getItemDamage() == 0)
             {
                 TileEntity tile = world.getTileEntity(x, y, z);
                 if(tile instanceof TileEntityAutelFanta)
                 {
                     int direction = MathHelper.floor_double((double)(living.rotationYaw * 4.0F / 360.0F) + 2.5D) & 3;
                     ((TileEntityAutelFanta)tile).setDirection((byte)direction);
                 }
             }
         }
      
         @Override
             public boolean rotateBlock(World world, int x, int y, int z, ForgeDirection axis)
              {
                 if((axis == ForgeDirection.UP || axis == ForgeDirection.DOWN) && !world.isRemote && world.getBlockMetadata(x, y, z) == 0)
                  {
                      TileEntity tile = world.getTileEntity(x, y, z);
                      if(tile instanceof TileEntityAutelFanta)
                      {
                      TileEntityAutelFanta tileTuto = (TileEntityAutelFanta)tile;
      
                         byte direction = tileTuto.getDirection();
                        direction++;
                        if(direction > 3)
                          {
      
                             direction = 0;
                          }
      
                         tileTuto.setDirection(direction);
                          return true;
                      }
                  }
                  return false;
              }
      
             public ForgeDirection[] getValidRotations(World world, int x, int y, int z)
             {
                return world.getBlockMetadata(x, y, z) == 0 ? new ForgeDirection[] {ForgeDirection.UP, ForgeDirection.DOWN} : ForgeDirection.VALID_DIRECTIONS;
             }
      
      }
      
      

      #Tile Entity du bloc & Special Renderer(Tile Entity du bloc & Special Renderer)

      public class TileEntityAutelFanta extends TileEntity
      {
       private byte direction;
      
            @Override
            public void readFromNBT(NBTTagCompound compound)
            {
                super.readFromNBT(compound);
      
               this.direction = compound.getByte("Direction");
            }
      
            @Override
            public void writeToNBT(NBTTagCompound compound)
            {
                super.writeToNBT(compound);
      
               compound.setByte("Direction", this.direction);
            }
      
           public byte getDirection()
            {
      
               return direction;
            }
      
           public void setDirection(byte direction)
            {
      
               this.direction = direction;
               this.worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord);
            }
      
           public Packet getDescriptionPacket()
            {
               NBTTagCompound nbttagcompound = new NBTTagCompound();
               this.writeToNBT(nbttagcompound);
               return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbttagcompound);
           }
      
         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);
            }
      }
      
      
      public class TileEntityAutelFantaSpecialRenderer extends TileEntitySpecialRenderer 
      {
      
         public static AutelFantaOffModel model = new AutelFantaOffModel();
         public static ResourceLocation texture = new ResourceLocation(LaFrenchCraftMOD.MODID, "textures/models/blocks/AutelFantaOffModel.png");
      
       @Override
         public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float partialRenderTick) // la fonction qui était la de base
         {
             this.renderTileEntityAutelFantaAt((TileEntityAutelFanta)tile, x, y, z, partialRenderTick); // j'appelle ma fonction renderTileEntityTutorielAt en castant TileEntityTutoriel à l'argument tile
         }
      
         private void renderTileEntityAutelFantaAt(TileEntityAutelFanta tile, double x, double y, double z, float partialRenderTick) // ma propre fonction
         {
          GL11.glPushMatrix(); // ouvre une matrix
              GL11.glTranslated(x + 0.5D, y + 1.5D, z + 0.5D); // déplace le bloc sur les coordonnés et le centre
              GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); // met droit le bloc (par défaut il est à  l'envers)
              GL11.glRotatef(90F * tile.getDirection(), 0.0F, 1.0F, 0.0F);
              this.bindTexture(texture); // affiche la texture
              model.renderAll(); // rend le modèle
              GL11.glPopMatrix(); // ferme la matrix
         }
      
      }
      
      
      1 réponse Dernière réponse Répondre Citer 0
      • AymericRed
        AymericRed dernière édition par

        GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); // met droit le bloc (par défaut il est à l’envers), si le bloc est à l’envers au lieu d’être droit, retire cette ligne.

        Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

        AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

        Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
        Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

          @‘AymericRed’:

          GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); // met droit le bloc (par défaut il est à  l’envers), si le bloc est à l’envers au lieu d’être droit, retire cette ligne.

          Non cette ligne mais le bloc a l’endroit en le mettant sur le sol Je sais pas si c’est clair ^^ mais sans cette ligne le bloc est dans les air la tête a l’envert ^^

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

            Ah okay ^^

            Je m’y connaît pas trop en openGl mais le “90F * tile.getDirection()”, si t’enlève le 90F ?

            Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

            AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

            Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
            Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

              @‘AymericRed’:

              Ah okay ^^

              Je m’y connaît pas trop en openGl mais le “90F * tile.getDirection()”, si t’enlève le 90F ?

              Le 90F * tile.getDirection() fais parti du bonus du tuto de robin sur créé un bloc techne et se qui est bizarre c’est que j’ai créer d’autre bloc avec le même code et aucun problème

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

                C’est donc le modèle qui doit être dans le mauvais sens, si quelqu’un connaît la fonction pour rotate horizontalement ?

                Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                  Horizontalement ? C’est à dire ?
                  Pour tourner vers le joueur c’est l’axe Y

                  Site web contenant mes scripts : http://SCAREXgaming.github.io

                  Pas de demandes de support par MP ni par skype SVP.
                  Je n'accepte sur skype que l…

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

                    @‘AymericRed’:

                    C’est donc le modèle qui doit être dans le mauvais sens, si quelqu’un connaît la fonction pour rotate horizontalement ?

                    Bas la face de devant c’est bien le F dans techne ?

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

                      Aucune idée, de toute façon avec Techne il faut toujours corriger deriière, au pire tu rajoutes juste un GL11.glRotatef(90F, 0F, 1F, 0F) avant

                      Site web contenant mes scripts : http://SCAREXgaming.github.io

                      Pas de demandes de support par MP ni par skype SVP.
                      Je n'accepte sur skype que l…

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

                        Fais ce qu’à dit scarex, et oui c’est bien F la face de devant.

                        Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                        AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                        Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                        Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                          S’il est dans le sens inverse tu as juste à faire un :
                          GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F);
                          avant la fonction render.

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

                            Merci sa marche niquel ^^

                            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