[1.6.4] Угол и предмет

435
1
В общем у меня в тикере есть такое:
Код:
if(player.worldObj.getTotalWorldTime()%(distance*2) == 0 && distance <= 15)
{
  Minecraft.getMinecraft().sndManager.playSoundFX("mrcreppo:beep", 1.0F, 1.0F);
}
Меня раздражает проигрывание звука дважды за раз. Как это чинить?
 
фазы тикхандлера проверяешь? Там вроде есть что-то уровня tickPhase.START/END
[merge_posts_bbcode]Добавлено: 14.07.2015 16:49:08[/merge_posts_bbcode]

http://nationcrafttown.chunkyhosting.net/forgejd/cpw/mods/fml/common/ITickHandler.html
Там упоминается что тики могут быть почти одновременно, но вызывается, якобы, всего раз.
Вообще вспомнил, у меня подобное было, я пофиксил костылём.
Просто завёл приватную переменную типа long и при каждом перехваченном тике сравнивал её значение со значением аналогичной переменной из кубача.
Было как-то так:
Код:
private long tick = -1;

public void tickEnd(EnumSet<TickType> type, Object... tickData) {
    if (type.equals(EnumSet.of(TickType.WORLD))) {
        long l = MinecraftServer.getServer().getTickCounter();
        if (tick == l)
            return;
            
        tick = l;
        ...
    }
}
 
А ты код посмотри, что я выше привёл.
У меня в tickEnd всё равно несколько раз тикало.
 
Конь правду говорит. У меня была точно такая же проблема и точно такое же решение.
 
Назад
Сверху