MultipleItemDropContainer class
Пакет: com.hypixel.hytale.server.core.asset.type.item.config.container
Файл: com/hypixel/hytale/server/core/asset/type/item/config/container/MultipleItemDropContainer.java
extends: ItemDropContainer
Поля (2)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
BuilderCodec<MultipleItemDropContainer> |
CODEC |
|
int |
var4 |
Методы (4)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(int var5 = 0; var5 < var4; var5++) |
|
|
for for(ItemDropContainer var9 : this.containers) |
|
|
for for(ItemDropContainer var5 : this.containers) |
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.codec.codecs.array.ArrayCodec;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.server.core.asset.type.item.config.ItemDrop;
class="kw">import java.util.Arrays;
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 MultipleItemDropContainer class="kw">extends ItemDropContainer {
class="kw">public class="kw">static class="kw">final BuilderCodec<MultipleItemDropContainer> CODEC = BuilderCodec.<ItemDropContainer>builder(
MultipleItemDropContainer.class, MultipleItemDropContainer::new, ItemDropContainer.DEFAULT_CODEC
)
.addField(new KeyedCodec<>("MinCount", Codec.INTEGER), (var0, var1) -> var0.minCount = var1, var0 -> var0.minCount)
.addField(new KeyedCodec<>("MaxCount", Codec.INTEGER), (var0, var1) -> var0.maxCount = var1, var0 -> var0.maxCount)
.addField(
new KeyedCodec<>("Containers", new ArrayCodec<>(ItemDropContainer.CODEC, ItemDropContainer[]::new)),
(var0, var1) -> var0.containers = var1,
var0 -> var0.containers
)
.build();
class="kw">protected ItemDropContainer[] containers;
class="kw">protected int minCount = 1;
class="kw">protected int maxCount = 1;
class="kw">public MultipleItemDropContainer(ItemDropContainer[] var1, double var2, int var4, int var5) {
super(var2);
this.containers = var1;
this.minCount = var4;
this.maxCount = var5;
}
class="kw">public MultipleItemDropContainer() {
}
@Override
class="kw">protected void populateDrops(List<ItemDrop> var1, @Nonnull DoubleSupplier var2, Set<String> var3) {
int var4 = (int)MathUtil.fastRound(var2.getAsDouble() * (this.maxCount - this.minCount) + this.minCount);
for (int var5 = 0; var5 < var4; var5++) {
for (ItemDropContainer var9 : this.containers) {
if (var9.getWeight() >= var2.getAsDouble() * 100.0) {
var9.populateDrops(var1, var2, var3);
}
}
}
}
@Override
class="kw">public List<ItemDrop> getAllDrops(List<ItemDrop> var1) {
for (ItemDropContainer var5 : this.containers) {
var5.getAllDrops(var1);
}
class="kw">return var1;
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "MultipleItemDropContainer{weight=" + this.weight + ", containers=" + Arrays.toString(this.containers) + "}";
}
}