Вверх ↑
Этот топик читают: Гость
Ответов: 123
Eternity
Inactive
#1: 2011-09-01 00:21:53 ЛС | профиль | цитата
Сейчас мы сделаем почти обычный TNT. При подключении редстоуна к блоку - он взорвется.

Откроем наш файлик BlockNew.java и добавим ниже строку:
public void onPoweredBlockChange(World world, int i, int j, int k, boolean flag)
{
if(world.multiplayerWorld)
{
return;

} else
{
float f = 5F;
world.createExplosion(null, i, j, k, f);
return;
}
}

Данной строкой мы проверяем, если блок активирован, то:
Устанавливаем силу взрыва.
float f = 5F;

Создается взрыв.
world.createExplosion(null, i, j, k, f);

Ну и добавляем настройки связывания редстоуна:
public void onNeighborBlockChange(World world, int i, int j, int k, int l)
{
int i1 = world.getBlockMetadata(i, j, k);
if((i1 & 8) != 0)
{
if(world.getBlockId(i, j - 1, k) != blockID)
{
world.setBlockWithNotify(i, j, k, 0);
}
if(l > 0 && Block.blocksList[l].canProvidePower())
{
onNeighborBlockChange(world, i, j - 1, k, l);
}
} else
{
boolean flag = false;
if(world.getBlockId(i, j + 1, k) != blockID)
{
world.setBlockWithNotify(i, j, k, 0);
flag = true;
}
if(!world.isBlockNormalCube(i, j - 1, k))
{
world.setBlockWithNotify(i, j, k, 0);
flag = true;
if(world.getBlockId(i, j + 1, k) == blockID)
{
world.setBlockWithNotify(i, j + 1, k, 0);
}
}
if(flag)
{
if(!world.multiplayerWorld)
{
dropBlockAsItem(world, i, j, k, i1);
}
} else
if(l > 0 && Block.blocksList[l].canProvidePower())
{
boolean flag1 = world.isBlockIndirectlyGettingPowered(i, j, k) || world.isBlockIndirectlyGettingPowered(i, j + 1, k);
onPoweredBlockChange(world, i, j, k, flag1);
}
}
}

Тут ничего менять не надо - все уже готовое.
Вот и все. Осталось только проверить
карма: 18
1
Голосовали:Analcunt
Ответов: 51
#2: 2015-04-02 10:50:53 ЛС | профиль | цитата

карма: -15
0
2
Сообщение
...