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