Лавовое зрение(в MCreator)

Версия Minecraft
1.19.2
API
Forge
Я бы хотел сделать эффект зелья ЛАВОВОЕ ЗРЕНИЕ который позволит смотреть сквозь лаву. Можете помочь реализовать?
 
Сквозь лаву - это как? Чтобы лава полностью пропадала или когда игрок находится в ней? Уточняй, уточняй!!
 
1,038
57
229
Я играл в 1.19 с модом hexerei и twilightforest вроде, с иммунитетом к огню в лаве можно плавать. И там даже что то видно.
То есть внутри неё можно видеть, выглядит как под водой, только туман сильный.
 
433
41
110
Мне надо когда игрок находится в лаве
Я практически уверен, что конкретного события под это нет (сверься в ОФ документации forge, загуглишь), так что декомпилятор в руки, и отправляйся в увлекательный мир поиска нужных строк кода (за тебя это никто не сделает), и после, с помощью миксинов меняешь логику

На 1.12.2 в GuiInGame я находил похожие на это элементы, рекомендую начать поиск с него
 
1,038
57
229
Чат выдал, в принипе норм решение. Если в 1.19 до сих пор не добавили определения
Checker:
public class LavaChecker {
    public static boolean isInLava(Entity entity) {
        // Получаем позицию сущности
        BlockPos pos = new BlockPos(entity.posX, entity.posY, entity.posZ);

        // Получаем блок, на котором стоит сущность
        Block block = Minecraft.getMinecraft().world.getBlockState(pos).getBlock();

        // Проверяем, является ли этот блок лавой
        if (block != null && block.getDefaultState().getMaterial() == Material.LAVA) {
            return true;
        }

        return false;
    }
}

c форумов

DamageEvent:
@ForgeSubscribe
public void onBurnDamage(LivingAttackEvent event)
{
    if(event.entity instanceof EntityPlayer)
    {
        EntityPlayer player = (EntityPlayer)event.entity;
        if(event.source.equals(DamageSource.lava)
            || event.source.equals(DamageSource.inFire)
            || event.source.equals(DamageSource.onFire))
            {
                 ...
            }
       }
   }
}
 
1,038
57
229
фига ты переобулся
1694962390705.png
а скобок то раньше не было
 
Советую перестать заниматься фигней и скачать идею, еклипс. Иначе у тебя точно ничего не получится

а так, тебе нужно просто выключить рендер лавы, когда игрок находится в ней
Java:
WorldRenderer.instance.getBlockColors().put(0x10, 0x0); // 0x10 - это ID лавы


проверяешь что игрок в лаве и вырубаешь рендер этой строкой, не забывай, что этот код выключает когда игрок попадает в лаву, но не включает когда выходит. Надеюсь сам сможешь додуматься как доделать?
 
Сверху