- 15
- 0
Привет всем. Пишу мод для сервера, в классе предмета в методе onEaten, т.е. после использования предмета, должны заспавнится 8 партиклов, с задержкой спавна каждого партикла между собой в 2 тика, т.е. "спавн, ждем 2 тика, спавн, ждем 2 тика". Как спавнить частицы я знаю, весь вопрос в самой задержке. Пытался это реализовать тикхандлером через onTick, но не учел что onEaten выполняется 1 раз, т.е. не циклично. while замораживал майн, нбт для меня дремучий лес. Подскажите пожалуйста, как мне это сделать?
Вот кусок кода класса предмета, если надо (там где комментарий "waiting" - там должна быть задержка):
Вот кусок кода класса предмета, если надо (там где комментарий "waiting" - там должна быть задержка):
FireExt.java:
public ItemStack onEaten(ItemStack stack, World world, EntityPlayer player) {
FireExt usedConsumable = getUsedConsumable(player);
if (player.inventory.consumeInventoryItem(ModItems.match)) {
this.isParticleSpawn = true;
Vec3 vec3 = player.getLook(1.0F);
stack.damageItem(1, player);
player.worldObj.spawnParticle("explode", player.posX, player.posY, player.posZ, vec3.xCoord / 5, vec3.yCoord / 5, vec3.zCoord / 5);
//waiting
player.worldObj.spawnParticle("explode", player.posX, player.posY, player.posZ, vec3.xCoord / 5, vec3.yCoord / 5, vec3.zCoord / 5);
//waiting
player.worldObj.spawnParticle("explode", player.posX, player.posY, player.posZ, vec3.xCoord / 5, vec3.yCoord / 5, vec3.zCoord / 5);
//waiting
player.worldObj.spawnParticle("explode", player.posX, player.posY, player.posZ, vec3.xCoord / 5, vec3.yCoord / 5, vec3.zCoord / 5);
//waiting
player.worldObj.spawnParticle("explode", player.posX, player.posY, player.posZ, vec3.xCoord / 5, vec3.yCoord / 5, vec3.zCoord / 5);
//waiting
player.worldObj.spawnParticle("explode", player.posX, player.posY, player.posZ, vec3.xCoord / 5, vec3.yCoord / 5, vec3.zCoord / 5);
//waiting
player.worldObj.spawnParticle("explode", player.posX, player.posY, player.posZ, vec3.xCoord / 5, vec3.yCoord / 5, vec3.zCoord / 5);
//waiting
player.worldObj.spawnParticle("explode", player.posX, player.posY, player.posZ, vec3.xCoord / 5, vec3.yCoord / 5, vec3.zCoord / 5);
//waiting
player.worldObj.spawnParticle("explode", player.posX, player.posY, player.posZ, vec3.xCoord / 5, vec3.yCoord / 5, vec3.zCoord / 5);
//}
}else{
player.addChatMessage((IChatComponent)new ChatComponentText((Object)EnumChatFormatting.RED + "Отладка: предмет не найден!"));
}
return stack;
}