Porte qui prend la texture du block en dessous d'elle



  • Bonjour, je cherche à faire une porte qui prend la texture du block qui es en-dessous d'elle, mais mon code est faut es pendant plusieurs heures j'ai essayer mais impossible de trouver la cause du problème, je demande donc votre aide. Je suis vraiment bloquer, j’espère que vous m’aiderez 😄

    Mon code:

    package com.mod.tgotg.init;
    
    import java.util.Random;
    
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.block.BlockDoor;
    import net.minecraft.block.material.Material;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.item.Item;
    import net.minecraft.util.IIcon;
    import net.minecraft.world.IBlockAccess;
    import net.minecraft.world.World;
    
    public class GhostDoor extends BlockDoor
    {
    
    public GhostDoor(Material material)
    {
    super(material);
    this.setHardness(3.0F);
       this.setResistance(5.0F);
       this.disableStats();
    
    }
    
    public IIcon getIcon(IBlockAccess world,int x, int y, int z, int side)
    {
     return world.getBlock(x, y - 1, z).getIcon(world, x, y - 1, z, side);
    }
    
    @Override
      public Item getItemDropped(int par1, Random rand, int par3)
      {
          return BlockMod.ghost_door ; //LE code est faut mais je ne comprend pas pourquoi
      }
    
      @Override
      @SideOnly(Side.CLIENT)
      public Item getItem(World world, int x, int y, int z)
      {
          return BlockMod.ghost_door; //LE code est faut mais je ne comprend pas pourquoi
      }
    
      @Override
      public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
      {
          int i1 = this.func_150012_g(world, x, y, z);
          int j1 = i1 & 7;
          j1 ^= 4;
    
          if ((i1 & 8) == 0)
          {
              world.setBlockMetadataWithNotify(x, y, z, j1, 2);
              world.markBlockRangeForRenderUpdate(x, y, z, x, y, z);
          }
          else
          {
              world.setBlockMetadataWithNotify(x, y - 1, z, j1, 2);
              world.markBlockRangeForRenderUpdate(x, y - 1, z, x, y, z);
          }
    
          world.playAuxSFXAtEntity(player, 1003, x, y, z, 0);
    
          return true;
      }
    
    }
    

    Dans ma classe BlockMod:

    ghost_door = new GhostDoor(Material.wood).setCreativeTab(tgotg.Tgotg);
    
    GameRegistry.registerBlock(ghost_door, ghost_door.getUnlocalizedName().substring(5));
    
    

  • Rédacteurs

    La fonction getIcon n'existe plus en 1.8. Pour faire ce que tu veux il faut que tu crée un modèle custom pour le rendu de ta porte afin d'utiliser la texture du modèle du bloc du dessous. Je ne peux pas te donner plus d'indications car je n'ai jamais expérimenter ce genre de chose



  • Merçi, je vais rechercher mais, pourrais tu me dire quel est le bug de ce code pour une version 1.7.10 (je dev le mod dans deux version)