Таймер и смена текстурки

Подскажите, как менять текстурку у блока при каком- либо действии.
Как сделать таймер(например чтобы у блока текстурка менялась через определённый промежуток времени).
 
Agravaine написал(а):
Анимированную текстуру сделай и все.
Дык мне надо чтобы одна анимированная текстурка менялась на другую)
[merge_posts_bbcode]Добавлено: 11.12.2014 18:16:31[/merge_posts_bbcode]

timaxa007 написал(а):
Можно воспользоваться стандартной метадатой (от 0 до 15).
В методе написать, чтобы меняться на определённую метадату.
Текстура будет зависеть от метадаты.
На счёт времени, в onUpdate можно должна от определённого времени суток, менялось на определённую метудату.
Нет, со временем суток не подойдёт, можно ли как-то сделать чтобы через определённое кол-во тиков менялась?
 
timaxa007 написал(а):
Можно и через определённое количество тиков.
На бакките можно вот так сделать:

Код:
getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable()
            {
            public void run()
            {
                e.getPlayer().setVelocity( new Vector(0, 0.1, -0.4));
            }
            }, 30, -10);
Какой аналог на фордже?
 
Аналога на фордже не знаю как будет выглядеть. Но на 1.7.10, приблизительно такое наверное понадобиться:
Код:
public class BlockTimer extends Block {

@SideOnly(Side.CLIENT) private IIcon[] icon_array = new IIcon[16];

public BlockTimer() {
super(Material.circuits);
}

public void updateTick(World world, int x, int y, int z, Random random) {
if (world.getWorldTime() % (20 * 1) == 0) {
if (world.getBlockMetadata(x, y, z) >= 0 && world.getBlockMetadata(x, y, z) < 16)
world.setBlockMetadataWithNotify(x, y, z, world.getBlockMetadata(x, y, z) + 1, 3);
}
}

@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int meta) {
return icon_array[meta];
}

@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister ir) {
for (int i = 0; i < 16; ++i) {
icon_array[i] = ir.registerIcon("mod_id:btick/tick_" + i);
}
}

}
 
timaxa007 написал(а):
Аналога на фордже не знаю как будет выглядеть. Но на 1.7.10, приблизительно такое наверное понадобиться:
Код:
public class BlockTimer extends Block {

@SideOnly(Side.CLIENT) private IIcon[] icon_array = new IIcon[16];

public BlockTimer() {
super(Material.circuits);
}

public void updateTick(World world, int x, int y, int z, Random random) {
if (world.getWorldTime() % (20 * 1) == 0) {
if (world.getBlockMetadata(x, y, z) >= 0 && world.getBlockMetadata(x, y, z) < 16)
world.setBlockMetadataWithNotify(x, y, z, world.getBlockMetadata(x, y, z) + 1, 3);
}
}

@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int meta) {
return icon_array[meta];
}

@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister ir) {
for (int i = 0; i < 16; ++i) {
icon_array[i] = ir.registerIcon("mod_id:btick/tick_" + i);
}
}

}

Спасибо, можно ссылку на Forge API (если есть, то русифицированный)?
 
Назад
Сверху