- 3
- 0
Здравствуйте, сразу хочу предупредить, что в моддинге и Java я новичок, а в программировании нет, до этого писал на C, C++, Python.
Теперь ближе к сути, я пытаюсь создать блок стекла с трещинами, но места на текстуре которые должны быть прозрачными, заливаются белым цветом (также, как если бы цветовая схема .png была бы не RGB, а индексированные цвета), а в инвентаре всё отображается правильно. В поисках решения проблемы я зашёл на этот форум и решил попробовать решение, которое предложил пользователь под ником Зарак.
Вот это решение:
Первые три метода работаю без нареканий (кроме того, что они устарели), а вот четвёртый выдаёт ошибку
То есть в
Вот весь его код:
При этом если четвёртый метод удалить, то ничего не изменится, блок хоть и стал прозрачным, но и непрозрачные участки тоже пропали.
Как всё таки мне сделать текстуру прозрачной?
Я использую:
IDE - Intellij IDEA Community Edition 2022.2.1
Forge Version - 14.23.5.2846
Если понадобится, то снизу я прикрепил свою текстуру, которую я хочу добавить.
Заранее большое спасибо!
Теперь ближе к сути, я пытаюсь создать блок стекла с трещинами, но места на текстуре которые должны быть прозрачными, заливаются белым цветом (также, как если бы цветовая схема .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
Если понадобится, то снизу я прикрепил свою текстуру, которую я хочу добавить.
Заранее большое спасибо!