Анимация 3д блока

Версия Minecraft
1.7.10
1,202
31
185
При поступлении сигнала редстоуна на мой тайл, проигрывается анимация открытия дверей.
Однако, если поставить два одинаковых тайла, и на последнем поставленном поставить рычаг и включить его, анимация включается у обоих. А если на первый тайл поставить рычаг и включить, анимации не будет. Что за? Кто нибудь делал такое?
P.S
Сразу догадывался что так будет, ибо обьявляю переменные и булевы в классе рендера моего тайла. Но как сделать для каждого тайла отдельную анимку? Не зависящую от другой...
 

Вложения

  • 2018-07-29_21.32.37.png
    2018-07-29_21.32.37.png
    344.3 KB · Просмотры: 25
1,202
31
185
Решил попробовать сделать анимацию так

Java:
 @Override
     public void updateTick(World w, int par2, int par3, int par4, Random var5) {
         w.scheduleBlockUpdate(par2, par3, par4, this, 0);
         lastOpenProgress = openProgress;
         if(!w.isBlockIndirectlyGettingPowered(par2, par3, par4)) {
              openProgress *= 0.99F;
         }
         else
        {
                openProgress = 1F - (1F - openProgress) * 0.99F;
        }
       }
Это в коде блока в апдейт тике

В рендере тайла создаю новый флоат float adsSwitch = BlockTechne.lastOpenProgress + (BlockTechne.openProgress - BlockTechne.lastOpenProgress);
И перемещаю так GL11.glTranslatef(0, -6F * adsSwitch, 0);
Все равно открывается сразу 2 двери, и даже 3, эм
 
1,007
36
206
Я к примеру делал так(мне надо было кубик поворачивать в рендере)
Java:
public void updateEntity() {
      
          if (time >= 20 * 120) time = 0;
              ++time;
      
   }
В рендере
Java:
float trngl = (-360.0F + 5f) * ((ТвойТайл)tile).time;// там где tile это просто аргумент в методе рендера, указывай своё название аргумента
        GL11.glRotatef(trngl, 0.0F, 1.0F, 0F);
 
1,007
36
206
Я с момента релиза этот код не менял и вот пруф(если присмотреться, можно увидеть что кубики в разных фазах)
unknown-1.png
 
1,202
31
185
Зачем? Есть дефолт проверка в блоке на сигнал редстоуна. Просто у меня открывает сразу все двери, даже если сигнала нету лол
Типо вот такая if(w.isBlockIndirectlyGettingPowered(par2, par3, par4))

Собственно, немного недопонимаю, что мне делать с нбт в тайле? Как мне брать тег для рендера...

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