Разный дроп с блока

Статус
В этой теме нельзя размещать новые ответы.
Версия Minecraft
1.12+
192
2
9
Я смотрел на темки по 1.7.10, но эклипс подсказывает, что что-то не так)
Видимо в 1.12 и здесь есть отличия тоже?

Так вот, интересует много комбинаций дропа с разрушенного блока, а именно:

1. Выдача случайного дропа со случайным количеством
Случайный дроп в виде списка возможных дропов
Случайное количество в виде 1-10 или (1, 3, 5, 6), из которого берется любое число


2. Выдача случайного дропа с точным количеством
Случайный дроп в виде списка возможных дропов
Точное количество в виде N

3. Точный дроп со случайным количеством аналогично пункту 1

4. Точный дроп с точным количеством аналогично пункту 2

5. Несколько видов дропа сразу в одном блоке. То есть к примеру, как с ведьмы
 
Решение
Код:
 @Override
 public List<ItemStack> getDrops(IBlockAccess world, BlockPos pos,IBlockState state, int fortune) {
 Random rand = new Random();
 java.util.List<ItemStack> ret = super.getDrops(world, pos, state,fortune);
 ret.add(new ItemStack(Items.DYE, 1+ rand.nextInt(4), 4));
 return ret;
 }
Ну ты ленивый, все тебе расписать надо. Я же сказал, посмотри как у меня сделано)
192
2
9
Maxik001 написал(а):
изи. Юзаешь метод getDrops. Делаешь лист с дропами, из них выбираешь

А как правильно вообще дропать в 1.12? Пишу по-старинке ItemStack(Item.DYE, 1, 4) и эклипс ругается.
То есть хочу дропнуть лазурит, а он как краситель с метадатой 4
 
5,018
47
783
Можешь посмотреть как у меня сделано в Realism. Ссылка на гит там в теме
В классе BasicBlockWithDropsItem. Вообще советую сделать как у меня структуру. Бейсик классы под разные нужды
....
[font=Monaco, Consolas, Courier, monospace]ItemStack(Items.DYE, 1, 4) надо[/font]
 
192
2
9
Так в том и беда, пишу return ItemStack(Items.DYE, 1, 4);
А мне эклипс пишет, что не найдет метод ItemStack... Что за бред? Не помню такого в 1.7.10


Напоминаю, что я пытаюсь дропнуть лазурит с блока
 
5,018
47
783
Код:
 @Override
 public List<ItemStack> getDrops(IBlockAccess world, BlockPos pos,IBlockState state, int fortune) {
 Random rand = new Random();
 java.util.List<ItemStack> ret = super.getDrops(world, pos, state,fortune);
 ret.add(new ItemStack(Items.DYE, 1+ rand.nextInt(4), 4));
 return ret;
 }
Ну ты ленивый, все тебе расписать надо. Я же сказал, посмотри как у меня сделано)
 
192
2
9
Лол... А зачем столько кода на какой-то краситель? :D


Я так понимаю, что в коде этом задается количество возможного дропа? Ну и метадата самого предмета?
Код:
   ret.add(new ItemStack(Items.DYE, 1+ rand.nextInt(4), 4));

То есть со строкой выше можно уже не юзать код этот?
Код:
 @Override
 public int quantityDropped(Random rand) {
 return 5 + rand.nextInt(7);
 }
 
5,018
47
783
Pycckuu_gap написал(а):
Лол... А зачем столько кода на какой-то краситель? :D


Я так понимаю, что в коде этом задается количество возможного дропа? Ну и метадата самого предмета?
Код:
   ret.add(new ItemStack(Items.DYE, 1+ rand.nextInt(4), 4));

То есть со строкой выше можно уже не юзать код этот?
Код:
 @Override
 public int quantityDropped(Random rand) {
 return 5 + rand.nextInt(7);
 }



да. 
Это ванильный метод, неудобный, а getDrops форджевский, отличный

Код:
@Override
public int quantityDropped(Random rand) {
return 5 + rand.nextInt(7);
}
 
1,038
57
229
напиши в Intellij idea
new BlockFurnace
удерживая Ctrl нажми левой кнопкой мыши по BlockFurnace и тебе откроются тайны мироздания..
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху