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

Résolu Rotation rendu ISBRH

1.7.x
1.7.2
4
8
1.5k
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.
  • S
    sisidney dernière édition par 2 avr. 2014, 20:00

    Salut, oui c’est encore moi toujours avec mon rendu ISBRH 🙂

    Après la résolution de mon ancien problème j’ai voulu m’attaque a une autre chose mais toujours sur le mêmé bloc. Je cherche a pouvoir faire tourné le bloc j’ai donc était voir les class de la bûche de bois mais rien de très concluent, j’ ai aussi etait voir sur les tuto mais il y en a que pour TESR.

    Merci d avance pour vos réponce
    Cordialement Sidney

    1 réponse Dernière réponse Répondre Citer 0
    • isador
      isador Moddeurs confirmés Modérateurs dernière édition par 2 avr. 2014, 20:23

      Ce ne fait pas partir tu isbrh mais juste de la direction de bloc. Va voir le tuto du forum

      1 réponse Dernière réponse Répondre Citer 0
      • S
        sisidney dernière édition par 2 avr. 2014, 20:32

        Oui mais la rotation sur le tuto fais juste changer les faces du bloc et non la forme. A moins que je me soit trompé de tuto.

        1 réponse Dernière réponse Répondre Citer 0
        • kevin_68
          kevin_68 Moddeurs confirmés dernière édition par 3 avr. 2014, 15:54

          Ce n’est pas possible, tu dois faire toutes les possibilités et mettre une condition, avec un metadata par exemple, comme les escaliers, ça doit ressemblé à ça (en moins long sans doute)
          https://github.com/FFMT/nanotech_mod/blob/1.7/common/fr/mcnanotech/kevin_68/nanotechmod/city/client/renderer/tileentity/TileEntityTrailRenderISBRH.java
          Ce code sert d’exemple, il est sous licence donc merci de la respecter.


          Mettez à jours vers la dernière version stable (1.8.9 voir même…

          1 réponse Dernière réponse Répondre Citer 0
          • S
            sisidney dernière édition par 3 avr. 2014, 17:07

            Ok merci !

            Bon je crois savoir se que je vais faire se soir 😉

            1 réponse Dernière réponse Répondre Citer 0
            • environ 10 jours
            • S
              sisidney dernière édition par 13 avr. 2014, 19:41

              Salut !

              Cela fait quelque heurs que j’essaye de reglé se problème maintenant mais je n’est aucun resultat correct.

              J’utilise un Tile entity mais j ai toujours un résultat random. 😕

              Voic le code de mon bloc: ```java

              package modCrafttech.common;

              import modCrafttech.proxy.CraftechClientProxy;
              import net.minecraft.block.Block;
              import net.minecraft.block.material.Material;
              import net.minecraft.client.renderer.texture.IconRegister;
              import net.minecraft.entity.EntityLivingBase;
              import net.minecraft.item.ItemStack;
              import net.minecraft.tileentity.TileEntity;
              import net.minecraft.util.AxisAlignedBB;
              import net.minecraft.util.Icon;
              import net.minecraft.util.MathHelper;
              import net.minecraft.world.IBlockAccess;
              import net.minecraft.world.World;
              import cpw.mods.fml.relauncher.Side;
              import cpw.mods.fml.relauncher.SideOnly;

              public class lamp1 extends Block {

              int test2 =0;

              public lamp1(int id)
              {
              super(id, Material.rock);

              this.setCreativeTab(ModCraftech.Craftech);
              }

              public boolean renderAsNormalBlock()
              {

              return false;
              }

              public boolean isOpaqueCube()
              {
              return false;
              }

              @SideOnly(Side.CLIENT)
              public boolean shouldSideBeRendered(IBlockAccess blockAccess, int x, int y, int z, int side)
              {
              return true;
              }
              public TileEntity createTileEntity(World world, int metadata)
              {
              if(metadata == 0)
              return new TileEntitylamp();

              else
              return null;

              }

              public boolean hasTileEntity(int metadata)
              {
              if(metadata == 0 || metadata == 2)
              return true;
              else
              return false;
              }
              public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase living, ItemStack stack)
              {
              int direction1 = MathHelper.floor_double((double)(living.rotationYaw * 4.0F / 360.0F) + 2.5D) & 3;
              TileEntity te = world.getBlockTileEntity(x, y, z);
              if(te instanceof TileEntitylamp)
              {
              ((TileEntitylamp)te).setDirection((byte)direction1);
              world.markBlockForUpdate(x, y, z);
              }
              }

              public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z)
              {
              TileEntity te = world.getBlockTileEntity(x, y, z);

              if(te instanceof TileEntitylamp)
              {
              int direction1 = ((TileEntitylamp)te).getDirection();
              test2 = direction1;
              if(direction1 == 0)
              {

              // direction 0
              return AxisAlignedBB.getAABBPool().getAABB((double)x +this.minX, (double)y + this.minY, (double)z + this.minZ, (double)x + this.maxX, (double)y + this.maxY, (double)z + (1.0F-(0.0625F*14)));

              }
              else if(direction1 == 1)
              {

              return AxisAlignedBB.getAABBPool().getAABB((double)x +(1.0F-(0.0625F2)), (double)y + this.minY, (double)z + this.minZ, (double)x + this.maxX, (double)y + this.maxY, (double)z + this.maxZ);
              //direction 1 Correct
              //etc … jusqu’à 3
              }
              else if(direction1 == 2)
              {
              return AxisAlignedBB.getAABBPool().getAABB((double)x +this.minX, (double)y + this.minY, (double)z + (1.0F-(0.0625F
              2)), (double)x + this.maxX, (double)y + this.maxY, (double)z + this.maxZ);
              //direction 1
              //etc … jusqu’à 3
              }
              else if(direction1 == 3)
              {
              return AxisAlignedBB.getAABBPool().getAABB((double)x +this.minX, (double)y + this.minY, (double)z + this.minZ, (double)x + (1.0F-(0.0625F*14)), (double)y + this.maxY, (double)z + this.maxZ);
              //direction 1
              //etc … jusqu’à 3
              }
              }
              return AxisAlignedBB.getAABBPool().getAABB((double)x + this.minX, (double)y + this.minY, (double)z + this.minZ, (double)x + this.maxX, (double)y + this.maxY, (double)z + this.maxZ);
              // tile entity invalide, pas de direction, donc valeur par défaut (ne devrait pas arriver en temps normal)
              }

              @SideOnly(Side.CLIENT)
              public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z)
              {
              TileEntity te = world.getBlockTileEntity(x, y, z);
              if(te instanceof TileEntitylamp)
              {
              int direction1 = ((TileEntitylamp)te).getDirection();
              if(direction1 == 0)
              {
              // direction 0
              return AxisAlignedBB.getAABBPool().getAABB((double)x +this.minX, (double)y + this.minY, (double)z + this.minZ, (double)x + this.maxX, (double)y + this.maxY, (double)z + (1.0F-(0.0625F*14)));

              }
              else if(direction1 == 1)
              {
              return AxisAlignedBB.getAABBPool().getAABB((double)x +(1.0F-(0.0625F*2)), (double)y + this.minY, (double)z + this.minZ, (double)x + this.maxX, (double)y + this.maxY, (double)z + this.maxZ);
              //direction 1 Correct
              //etc … jusqu’à 3
              }

              else if(direction1 == 2)
              {
              return AxisAlignedBB.getAABBPool().getAABB((double)x +this.minX, (double)y + this.minY, (double)z + (1.0F-(0.0625F2)), (double)x + this.maxX, (double)y + this.maxY, (double)z + this.maxZ);
              //direction 1
              //etc … jusqu’à 3
              }
              else if(direction1 == 3)
              {
              return AxisAlignedBB.getAABBPool().getAABB((double)x +this.minX, (double)y + this.minY, (double)z + this.minZ, (double)x + (1.0F-(0.0625F
              14)), (double)y + this.maxY, (double)z + this.maxZ);
              //direction 1
              //etc … jusqu’à 3
              }
              }
              return AxisAlignedBB.getAABBPool().getAABB((double)x + this.minX, (double)y + this.minY, (double)z + this.minZ, (double)x + this.maxX, (double)y + this.maxY, (double)z + this.maxZ);
              }
              @SideOnly(Side.CLIENT)

              public int getRenderType()
              {

              if(test2 == 0)
              {

              return CraftechClientProxy.lamp2;
              }
              else if(test2 == 1)
              {

              return CraftechClientProxy.lamp2;
              }
              else if(test2 == 2)
              {

              return CraftechClientProxy.lamp;
              }
              else if(test2 == 3)
              {

              return CraftechClientProxy.lamp;
              }
              return test2;
              }

              }

              
              Cordialement Sidney
              1 réponse Dernière réponse Répondre Citer 0
              • robin4002
                robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 13 avr. 2014, 20:09

                Tes conditions dans getRenderType ne servent à rien, ça ne fonctionnera pas comme ça.
                À mon avis le plus simple est de faire le rendu dans le sens voulu en fonction de la direction. Donc en gros, tu laisse la classe du bloc comme ça (enfin sans les conditions dans getRenderType) et dans la fonction renderWorldBlock du rendu, utilise :

                {
                TileEntity te = world.getBlockTileEntity(x, y, z);
                if(te instanceof TileEntitylamp)
                {
                int direction = ((TileEntitylamp)te).getDirection();
                if(direction == 0)
                {
                renderer.setRenderBounds(0F, 0F, 0F, 0.5F, 1F, 1F);
                }
                else if(direction == 1)
                {
                renderer.setRenderBounds(0F, 0F, 0F, 1F, 1F, 0.5F);
                // etc …
                }
                return true;
                }
                1 réponse Dernière réponse Répondre Citer 0
                • S
                  sisidney dernière édition par 13 avr. 2014, 20:30

                  Merci beaucoup !
                  😄

                  1 réponse Dernière réponse Répondre Citer 0
                  • 1 / 1
                  2 sur 8
                  • Premier message
                    2/8
                    Dernier message
                  Design by Woryk
                  Contact / Mentions Légales

                  MINECRAFT FORGE FRANCE © 2018

                  Powered by NodeBB