Вверх ↑
Этот топик читают: Гость
Ответов: 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
Сообщение
...