[РЕШЕНО] Как убрать стенки между полупрозрачными блоками?

Версия Minecraft
1.12.2
API
Forge
30
2
0
Ищу способ убрать стенки между прозрачными блоками, чтобы эффект был как у ванильного стекла.

q1.jpg
 
Решение
Наконец то удалось. Вот тот самый блок кода:
Java:
    @Override
    public boolean isOpaqueCube(IBlockState state) {
        return false;
    }
   
    @SideOnly(Side.CLIENT)
    public BlockRenderLayer getBlockLayer()
    {
        return BlockRenderLayer.TRANSLUCENT;
    }
   
    @Override
    public boolean isFullCube(IBlockState state) {
        return true;
    }
   
   
    @SuppressWarnings("deprecation")
    @SideOnly(Side.CLIENT)
    public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side) {
        switch (side) {
            case UP:
            case NORTH:
            case SOUTH:
            case WEST:
            case EAST:
            case DOWN...
7,099
324
1,510
Переопределить метод shouldSideBeRendered
 
30
2
0
В BlockGlass есть метод
Код:
@SideOnly(Side.CLIENT)
public BlockRenderLayer getBlockLayer() {
    return BlockRenderLayer.CUTOUT;
}
попробуй у себя в блоке такой же сделать
CUTOUT используется для полностью прозрачного стекла. для полупрозрачного я использую TRANSLUCENT, но стенки остаются
 
30
2
0
Переопределить метод shouldSideBeRendered
то есть с помощью него нужно создать 6 условий на каждую сторону, которые будут убирать рендер стороны, смежной с таким же блоком?
 
Последнее редактирование:
30
2
0
Наконец то удалось. Вот тот самый блок кода:
Java:
    @Override
    public boolean isOpaqueCube(IBlockState state) {
        return false;
    }
   
    @SideOnly(Side.CLIENT)
    public BlockRenderLayer getBlockLayer()
    {
        return BlockRenderLayer.TRANSLUCENT;
    }
   
    @Override
    public boolean isFullCube(IBlockState state) {
        return true;
    }
   
   
    @SuppressWarnings("deprecation")
    @SideOnly(Side.CLIENT)
    public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side) {
        switch (side) {
            case UP:
            case NORTH:
            case SOUTH:
            case WEST:
            case EAST:
            case DOWN:
                IBlockState iblockstate = blockAccess.getBlockState(pos.offset(side));
                Block block = iblockstate.getBlock();
                return !iblockstate.isOpaqueCube() && block != this;
            default:
                return super.shouldSideBeRendered(blockState, blockAccess, pos, side);
        }
    }
 

Вложения

  • a.jpg
    a.jpg
    610.9 KB · Просмотры: 7
Последнее редактирование:
Сверху