- Баллы
- 76
- Имя в Minecraft
- NoooobKa
Есть набор итемов, каждый айтем имеет свой шанс выпадения(0-100%). Как реализовать появление рандомного айтема? На уме только такая реализация:
Есть ли какие-то более простые пути?
Код:
List<RandomizedItem> list = new ArrayList<>();//Лист предметов имеющих процент выпадения
Map<Integer, ItemStack> map = new HashMap<>();//Мапа из которой будем получать рандомный айтем
for (RandomizedItem item : list) {//Забиваем карту ключами = процентам(0-100), каждый ключ имеет свой айтем
int size = map.size();
for (int i = size + 1; i < item.getRandomValue(); i++) {
map.put(i, item.getItem());
}
}
ItemStack randomItem = map.get(new Random().nextInt(100) + 1);//Получаем рандомный айтем