Не получается анимировать блок

Версия Minecraft
1.18.2
API
Fabric
78
3
10
Делаю блок, который должен быть частью контроллера АЕ2. Внешне он должен выглядеть в точности как контроллер, но поверх иметь "наклейку" из полупрозрачной текстуры.

Начал с простого копирования ассета blockstates. С ним всё в порядке, он реагирует на изменение стейта. offline имеет серую текстурку, а вот online... С ним странности.
JSON:
{
    "multipart": [
        {
            "apply": {
                "model": "applied-equivalence:block/controller/controller_block_offline"
            },
            "when": {
                "online": false
            }
        },
        {
            "apply": {
                "model": "applied-equivalence:block/controller/controller_block_online"
            },
            "when": {
                "online": true
            }
        }
    ]
}

Модель online уже содержит два слоя - статичный с прозрачными линиями, и динамический по UV с радугой.
Его я полностью сюда копипастить не буду, он километровый. Суть в том, что я полностью скопировал его из АЕ2, заменив идентификатор мода.

JSON:
{
    "parent": "block/block",
    "textures": {
        "particle": "applied-equivalence:block/controller"
    },
    "elements": [
        // ...
    ]
}

Соответственно, скопировал и все текстуры. Включая .mcmeta для радуги (lights).

Обчитался мануалов и вики, всё как и предполагалось. Этого должно быть достаточно для простого анимирования.
Но нет. В итоге в стейте online=true блок рисуется с белыми линиями, радуги никакой нет. В оффлайне переключается на серый, как положено.

1669133653260.png 1669133661015.png

Что я делю не так? Где-то в коде запрятано переключение поддержки прозрачности? Поскрёб по клиентской части АЕ2 - ничего не нашел.
 
437
41
112
Если у тебя не получается сделать так, чтобы не было проблем с прозрачностью - поставь в java коде isOpaqueCube. Если тебе нужно ,,анимировать,, блок - то посмотри как это устроено у воды (там вертикальная текстура и что-то еще в json-е)
 
1,374
113
241
проблем с прозрачностью - поставь в java коде isOpaqueCube
С версии 1.16 оно работает иначе.
Если тебе нужно ,,анимировать,, блок - то посмотри как это устроено у воды (там вертикальная текстура и что-то еще в json-е)
Товарищ выше использует анимацию через json от forge, вода же анимируется через mcmeta.
 
78
3
10
Товарищ выше использует анимацию через json от forge, вода же анимируется через mcmeta.
Шютка юмора в том, что я использую копипасту из АЕ2 для Fabric. У них работает, у меня - нет. Пол дня уже сижу воюю с это фигней.
 
1,374
113
241
Шютка юмора в том, что я использую копипасту из АЕ2 для Fabric
Честно, я бы забил на это и сделал через блокстейты + mcmeta + predicate. Возможно слегка костыльно, но зато нервишки будут целы.
 
1,374
113
241
То что ты их используешь и так ясно. Другое дело, что, вероятно, ты всё таки будешь подвязывать всё это к predicate через blockstates. Т.е. условный offline true/false будут давать разные модельки с разными анимированными текстурками. К блокстейтами, кстати, можно подвязать создание тайла. Т.е. если у тебя offline true, то тайл не создаётся, в случае если false - создаётся.
 
78
3
10
ты всё таки будешь подвязывать всё это к predicate через blockstates
Не совсем понимаю, что ты имеешь в виду под predicate.
А блокстейты, да, использую. И от них текстура меняется.
Kotlin:
    class Block(props: Properties) : AEBaseEntityBlock<Entity>(props) {
        init {
            registerDefaultState(
                defaultBlockState()
                    .setValue(P_CONTROLLER_ONLINE, false)
            )
        }

        override fun createBlockStateDefinition(builder: StateDefinition.Builder<net.minecraft.world.level.block.Block, BlockState>) {
            super.createBlockStateDefinition(builder)
            builder.add(P_CONTROLLER_ONLINE)
        }

JSON:
{
    "multipart": [
        {
            "apply": {
                "model": "applied-equivalence:block/controller/controller_block_offline"
            },
            "when": {
                "online": false
            }
        },
        {
            "apply": {
                "model": "applied-equivalence:block/controller/controller_block_online"
            },
            "when": {
                "online": true
            }
        }
    ]
}

Я реально не понимаю, почему не работает анимация. Еще несколько сорцов поглядел, везде одинаково сделано. Везде работает, у меня - нет... Чертовщина.

Чисто в теории, мне в блокстейтах было достаточно не копипастить АЕшное, а переиспользовать их модели, прилепив поверх свою наклейку. Но так тоже фигня. Анимации нет, а если появляется стейт, который наклейку прилепляет - то она тоже без альфа-канала рисуется поверх.
 
78
3
10
Сверху