Дроп опыта с блока

Версия Minecraft
1.14.4

WantaSanchez

Опоздун
633
17
150
Доброго времени суток. При обновлении блока с дропом опыта на 1.14.4 я не могу понять как лучше это сделать.

Если бы можно было бы впихнуть добавление дропа опыта без создания лишнего класса сюда:
Java:
event.getRegistry().register(new Block(Block.Properties.create(Material.ROCK).hardnessAndResistance(3.0F, 15.0F).harvestLevel(2).harvestTool(ToolType.PICKAXE).noDrops()).setRegistryName(SimpleCompat.MODID, "experience_ore"));
А не создавать класс чисто чтобы указать метод с дропом опыта. В общем, кто-то знает, как компактно юзать getExpDrop()?
 
Последнее редактирование:

WantaSanchez

Опоздун
633
17
150
Ну создай класс, передай ему в конструктор опыт и создавай его объект
То-есть getExpDrop(..); в одну строчку, понятную для чтения нереально. Просто в 1.14 можно в одну строку кода с нуля и понятным языком создать блок/предмет, и было бы хорошо, если был бы параметр аля setExpDrop(min, max) а так, это как минимум весь метод юзать надобно. Эх.
 

tox1cozZ

aka Agravaine
8,454
598
2,890
Чо? Я тебе говорю создай свой класс extends Block, создай переменную опыта, создай конструктор с ней, переопредели в нем метод getExpDrop и верни туда переменную. Потом просто пиши new CustomBlock(опыт)...
 

WantaSanchez

Опоздун
633
17
150
создай свой класс extends Block
Да не, ты не понял, я просто хотел впихнуть дроп опыта только параметром а не всем методом для экономии кода. Я знаю как задавался дроп в 1.12, просто подумал, может на 1.14 можно только параметром это настроить. Как видимо нет, только если самому преобразовывать метод в параметр. А жаль.

Сейчас так юзаю метод:
Java:
@Override
public int getExpDrop(BlockState state, net.minecraft.world.IWorldReader reader, BlockPos pos, int fortune, int silktouch) {
          
    int s = 3 * fortune;
    int m = 7 * fortune;
        
    return MathHelper.nextInt(RANDOM, s, m);
          
}
 
Сверху