Создание блока с прозрачной текстурой

Версия Minecraft
1.12.2
Здравствуйте, сразу хочу предупредить, что в моддинге и Java я новичок, а в программировании нет, до этого писал на C, C++, Python.
Теперь ближе к сути, я пытаюсь создать блок стекла с трещинами, но места на текстуре которые должны быть прозрачными, заливаются белым цветом (также, как если бы цветовая схема .png была бы не RGB, а индексированные цвета), а в инвентаре всё отображается правильно. В поисках решения проблемы я зашёл на этот форум и решил попробовать решение, которое предложил пользователь под ником Зарак.
Вот это решение:
Java:
    @Override
    public boolean isOpaqueCube(IBlockState state) {
        return false;
    }

    @Override
    @SideOnly(Side.CLIENT)
    public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side) {
        return false;
    }

    @Override
    @SideOnly(Side.CLIENT)
    public boolean isFullCube(IBlockState state) {
        return false;
    }

    @Override
    @SideOnly(Side.CLIENT)
    public BlockRenderLayer getBlockLayer() {
        return BlockRenderLayer.TRANSLUCENT;
    }

Первые три метода работаю без нареканий (кроме того, что они устарели), а вот четвёртый выдаёт ошибку Method does not override method from its superclass
То есть в net.minecraft.util.BlockRenderLayer он полностью отсутствует, поэтому переопределять нечего.
Вот весь его код:
Java:
package net.minecraft.util;

public enum BlockRenderLayer
{
    SOLID("Solid"),
    CUTOUT_MIPPED("Mipped Cutout"),
    CUTOUT("Cutout"),
    TRANSLUCENT("Translucent");

    private final String layerName;

    private BlockRenderLayer(String layerNameIn)
    {
        this.layerName = layerNameIn;
    }

    public String toString()
    {
        return this.layerName;
    }
}

При этом если четвёртый метод удалить, то ничего не изменится, блок хоть и стал прозрачным, но и непрозрачные участки тоже пропали.
Как всё таки мне сделать текстуру прозрачной?
Я использую:
IDE - Intellij IDEA Community Edition 2022.2.1
Forge Version - 14.23.5.2846
Если понадобится, то снизу я прикрепил свою текстуру, которую я хочу добавить.
Заранее большое спасибо!
 

Вложения

  • cracked_glass.png
    cracked_glass.png
    387 байт · Просмотры: 7
Решение
Первые три метода работаю без нареканий (кроме того, что они устарели), а вот четвёртый выдаёт ошибку
В маппингах, скорее всего, дело. На эту версию их целый зоопарк навыпускали. Метод есть, но его название может немного отличаться, по сигнатуре попробуй подобрать.
1,074
72
372
Первые три метода работаю без нареканий (кроме того, что они устарели), а вот четвёртый выдаёт ошибку
В маппингах, скорее всего, дело. На эту версию их целый зоопарк навыпускали. Метод есть, но его название может немного отличаться, по сигнатуре попробуй подобрать.
 
Метод есть, но его название может немного отличаться, по сигнатуре попробуй подобрать.
Спасибо!
Скачав маппинги для 1.12.2, нашёл метод func_180664_k (getBlockLayer)
Я пошёл в интернет и загуглил его, поиск выдал лог, там я обнаружил, что этот метод используется в инициализации обычной варочной стойки, поэтому я открыл net.minecraft.block.BlockBrewingStand и нашёл похожий метод, им оказался getRenderLayer
 
Последнее редактирование:
Ещё чтобы блок не становился полностью прозрачным, а только на сторонах которые соединяются с другими такими же блоками, я заменил это:
Java:
    @Override
    @SideOnly(Side.CLIENT)
    public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side) 
    {
        return false;
    }

На это:
Java:
    @Override
    @SideOnly(Side.CLIENT)
    public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side)
    {
        if (blockState != blockAccess.getBlockState(pos.offset(side)))
            return true;
        else
            return false;
    }
 
Сверху