14 mai 2017, 20:49

Salut,
Voici ce qu’il faudrait rajouter :


/**
    * Called after the block is set in the Chunk data, but before the Tile Entity is set
    */
   public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state)
   {
       this.setDefaultFacing(worldIn, pos, state);
   }

   private void setDefaultFacing(World worldIn, BlockPos pos, IBlockState state)
   {
       if (!worldIn.isRemote)
       {
           IBlockState iblockstate = worldIn.getBlockState(pos.north());
           IBlockState iblockstate1 = worldIn.getBlockState(pos.south());
           IBlockState iblockstate2 = worldIn.getBlockState(pos.west());
           IBlockState iblockstate3 = worldIn.getBlockState(pos.east());
           EnumFacing enumfacing = (EnumFacing)state.getValue(FACING);

           if (enumfacing == EnumFacing.NORTH && iblockstate.isFullBlock() && !iblockstate1.isFullBlock())
           {
               enumfacing = EnumFacing.SOUTH;
           }
           else if (enumfacing == EnumFacing.SOUTH && iblockstate1.isFullBlock() && !iblockstate.isFullBlock())
           {
               enumfacing = EnumFacing.NORTH;
           }
           else if (enumfacing == EnumFacing.WEST && iblockstate2.isFullBlock() && !iblockstate3.isFullBlock())
           {
               enumfacing = EnumFacing.EAST;
           }
           else if (enumfacing == EnumFacing.EAST && iblockstate3.isFullBlock() && !iblockstate2.isFullBlock())
           {
               enumfacing = EnumFacing.WEST;
           }

           worldIn.setBlockState(pos, state.withProperty(FACING, enumfacing), 2);
       }
   }

   public IBlockState onBlockPlaced(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer)
   {
       return this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite());
   }

   /**
    * Convert the given metadata into a BlockState for this Block
    */
   public IBlockState getStateFromMeta(int meta)
   {
       EnumFacing enumfacing = EnumFacing.getFront(meta);

       if (enumfacing.getAxis() == EnumFacing.Axis.Y)
       {
           enumfacing = EnumFacing.NORTH;
       }

       return this.getDefaultState().withProperty(FACING, enumfacing);
   }

   /**
    * Convert the BlockState into the correct metadata value
    */
   public int getMetaFromState(IBlockState state)
   {
       return ((EnumFacing)state.getValue(FACING)).getIndex();
   }

   /**
    * Returns the blockstate with the given rotation from the passed blockstate. If inapplicable, returns the passed
    * blockstate.
    */
   public IBlockState withRotation(IBlockState state, Rotation rot)
   {
       return state.withProperty(FACING, rot.rotate((EnumFacing)state.getValue(FACING)));
   }

   /**
    * Returns the blockstate with the given mirror of the passed blockstate. If inapplicable, returns the passed
    * blockstate.
    */
   public IBlockState withMirror(IBlockState state, Mirror mirrorIn)
   {
       return state.withRotation(mirrorIn.toRotation((EnumFacing)state.getValue(FACING)));
   }

   protected BlockStateContainer createBlockState()
   {
       return new BlockStateContainer(this, new IProperty[] {FACING});
   }

   public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack)
   {
       worldIn.setBlockState(pos, state.withProperty(FACING, placer.getHorizontalFacing().getOpposite()), 2);
   }

EDIT = Question, tu as uniquement un problème d’orientation de block, ou tes textures sont également mal appliquées ?