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) + "}";
   }
}