[1.5.2] [Решено] Сделать самочинящуюся вещь

Статус
В этой теме нельзя размещать новые ответы.
1,990
18
105
Переменная-таймер. Заводишь переменную, в onUpdate инкрементишь и смотришь, прошел ли нужный тебе промежуток времени через оператор %, если да - твои действия.
Игра тикает 20 раз в секунду.
 
183
1
4
Oldestkon написал(а):
Переменная-таймер. Заводишь переменную, в onUpdate инкрементишь и смотришь, прошел ли нужный тебе промежуток времени через оператор %, если да - твои действия.
Игра тикает 20 раз в секунду.
К сожалению, я так и не понял. Обьявил переменную t, в метод onUpdate вписал "t = t + 1" 
Код:
       public void onUpdate()
       {
           t = t + 1;
           if (t%20==0)//20 - каждую секунду?
           {
                     //Но как мне вызвать тут ItemStack?
           }
       }
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
1. Итемы - синглетоны, переменную хранить и доставать в/из NBT.
2. Тебе дают ItemStack в этом методе, поставь @Override и узрей ошибку.
 
1,990
18
105
Да ну вас. Неинтересно же с плюсами и минусами.

Код:
public int ascendBit(int i) {
    int mask = 0b1;
    while (i & mask) {
        i &= ~mask;
        mask <<= 1;
    }
    i |= mask;
    
    return i;
}
 
905
5
У меня для этого есть int = MethodHelper.ascend(int);
 
183
1
4
В итоге у меня получилось вот так: 
Код:
       public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) {

             if (par1ItemStack.stackTagCompound == null)
             {
                      par1ItemStack.stackTagCompound = new NBTTagCompound();
                      par1ItemStack.stackTagCompound.setInteger("repairIncrement", 0);
             }

             else
             {
                      int tag = par1ItemStack.stackTagCompound.getInteger("repairIncrement");

                      par1ItemStack.stackTagCompound.setInteger("repairIncrement", tag + 1);

                      if (tag % 6000 == 0) // Каждые 5 минут
                      {
                               par1ItemStack.setItemDamage(par1ItemStack.getItemDamage() - 1);
                      }
             }
    }
 
771
5
Лучше таг обнулять переодически, а то вдруг переполнится(врятли, но все равно) о_О.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху