Дроп с блока

Как настроить дроп со своего блока , чтобы выпал мой написанный предмет
public class darkore extends Block
{

protected darkore()
{
super(Material.rock);

this.setBlockName("Shadow Diamond");
this.setCreativeTab(CreativeTabs.tabBlock);
this.setHardness(2F);
this.setResistance(10F);
this.setHarvestLevel("pickaxe", 3);
this.setBlockTextureName("greenqubes:shadow");


}

    @Override
    public Item getItemDropped(int par1, Random par2Random, int par3)
    {
        return Items.diamond; //Что тут написать?
    }
}
 
Для 1.7.Х


@Override
public Item getItemDropped(int par1, Random par2Random, int par3)
{
return //Сюда Класс где зареган предмет.переменная итема;
}
 
Код:
  @Override
    public Item getItemDropped(int par1, Random par2Random, int par3)
    {
        return YourItemsStoreClass.youItemVariable;
    }
 
О боже, спасибо. Я уже думал почему не работает, оказывается я с маленькой буквы класс указал
 
Эм... Нет. Нельзя закрывать )))
Что делать, если для дропа мне нужно какое-то условие?
На if методы типа Item реагировать отказываются.

Если я забиваю переменную вверху типа:
Код:
private Item mydrop = бла,бла,бла;


Далее произвожу над переменной некие действие в иных методах и пишу:
Код:
return mydrop;


ничего не происходит. Дропа нет.
Что я делаю не так?

Спасибо за ответы )
 
timaxa007 написал(а):
Код:
...
    public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
        ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
        ret.add(new ItemStack(ModMetadata.block_metadata, 1, metadata));
        return ret;
    }
...
 
И, в том месте, где я произвожу операции писать не mydrop = бла, бла, бла, а 
Код:
if ...
{
ret.add(new ItemStack(блаблабла, 1, metadata));
}

???
И затем выводить его в getItemDropped? Или этого уже совсем не надо?

Честно, пока с аррей листом не разбирался (
 
"блаблабла"? Там должна указана твоя переменная блока или предмета.
И "getItemDropped", вроде не нужен с этим методом.
Удачи.
 
Не ребяты, я совсем тупой.
Что опять не так?
Код:
    public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune)
    {
        ArrayList<ItemStack> drops = new ArrayList<ItemStack>();
        if (iii = true)
        {
            drops.add(new ItemStack(TestMod.testBlock));
        }
        
        else
        {
            drops.add(new ItemStack(TestMod.testItem));    
        }
    
        return drops;
    }

До этого, в самом начале я публикую
Код:
public boolean iii = false;


И в других методах выше присваиваю этой переменной разные значения. Но в итоге так или иначе выпадает только TestMod.testBlock.
 
Мать!... (извините)))

Всё было так просто?

Спасибо, помогло )
[merge_posts_bbcode]Добавлено: 27.04.2015 22:52:34[/merge_posts_bbcode]

Да что ж ты будешь делать! :(
Как сделать, чтобы iii после разрушения блока возвращалась в первоначальное положение false?

Что-то типа:
Код:
    public void onBlockDamage()
    {
    iii = false;
    }
???

Просто сейчас, если условия не выполняются, эта переменная фиксируется в последнем положении и выпадает только последний выпавший дроп.
 
Если я правильно понял, тебе нужно типа:
Код:
if (iii) {
drops.add(new ItemStack(TestMod.testBlock));
iii = false;
} else {
drops.add(new ItemStack(TestMod.testItem));
iii = true;
}
 
Пожалуйста.
Но вроде как, ты не автор этой темы, чтобы просить о закрытии этой темы.
 
Назад
Сверху