ChoiceItemDropContainer class
Пакет: com.hypixel.hytale.server.core.asset.type.item.config.container
Файл: com/hypixel/hytale/server/core/asset/type/item/config/container/ChoiceItemDropContainer.java
extends: ItemDropContainer
Поля (3)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
BuilderCodec<ChoiceItemDropContainer> |
CODEC |
|
int |
var4 |
|
ItemDropContainer |
var6 |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(int var5 = 0; var5 < var4; var5++) |
|
|
if if(var6 != null) |
abstract |
|
super super(var2) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.asset.type.item.config.container;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.common.map.IWeightedMap;
class="kw">import com.hypixel.hytale.common.map.WeightedMap;
class="kw">import com.hypixel.hytale.server.core.asset.type.item.config.ItemDrop;
class="kw">import com.hypixel.hytale.server.core.codec.WeightedMapCodec;
class="kw">import java.util.List;
class="kw">import java.util.Set;
class="kw">import java.util.function.DoubleSupplier;
class="kw">import javax.annotation.Nonnull;
class="kw">public class ChoiceItemDropContainer class="kw">extends ItemDropContainer {
class="kw">public class="kw">static class="kw">final BuilderCodec<ChoiceItemDropContainer> CODEC = BuilderCodec.builder(
ChoiceItemDropContainer.class, ChoiceItemDropContainer::new, ItemDropContainer.DEFAULT_CODEC
)
.append(
new KeyedCodec<>("Containers", new WeightedMapCodec<>(ItemDropContainer.CODEC, ItemDropContainer.EMPTY_ARRAY)),
(var0, var1) -> var0.containers = var1,
var0 -> var0.containers
)
.add()
.append(new KeyedCodec<>("RollsMin", Codec.INTEGER), (var0, var1) -> var0.rollsMin = var1, var0 -> var0.rollsMin)
.add()
.append(new KeyedCodec<>("RollsMax", Codec.INTEGER), (var0, var1) -> var0.rollsMax = var1, var0 -> var0.rollsMax)
.add()
.build();
class="kw">protected IWeightedMap<ItemDropContainer> containers;
class="kw">protected int rollsMin = 1;
class="kw">protected int rollsMax = 1;
class="kw">public ChoiceItemDropContainer(ItemDropContainer[] var1, double var2) {
super(var2);
this.containers = WeightedMap.builder(ItemDropContainer.EMPTY_ARRAY).putAll(var1, ItemDropContainer::getWeight).build();
}
class="kw">public ChoiceItemDropContainer() {
}
@Override
class="kw">protected void populateDrops(List<ItemDrop> var1, DoubleSupplier var2, Set<String> var3) {
int var4 = this.rollsMin + (int)(var2.getAsDouble() * (this.rollsMax - this.rollsMin + 1));
for (int var5 = 0; var5 < var4; var5++) {
ItemDropContainer var6 = this.containers.get(var2);
if (var6 != null) {
var6.populateDrops(var1, var2, var3);
}
}
}
@Override
class="kw">public List<ItemDrop> getAllDrops(List<ItemDrop> var1) {
for (ItemDropContainer var5 : this.containers.internalKeys()) {
var5.getAllDrops(var1);
}
class="kw">return var1;
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "ChoiceItemDropContainer{weight=" + this.weight + ", containers=" + this.containers + "}";
}
}