WeightedTrade class

Пакет: com.hypixel.hytale.builtin.adventure.shop.barter

Файл: com/hypixel/hytale/builtin/adventure/shop/barter/WeightedTrade.java

implements: IWeightedElement

Поля (3)

МодификаторыТипИмя
String var1
int var2
int var3

Методы (4)

МодификаторыВозвратСигнатура
public int getStockMaxint getStockMax()
public int getStockMinint getStockMin()
public boolean hasStockRangeboolean hasStockRange()
public int resolveStockint resolveStock(@Nonnull Random var1)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.adventure.shop.barter;

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.codec.validation.Validators;
class="kw">import com.hypixel.hytale.common.map.IWeightedElement;
class="kw">import java.util.Arrays;
class="kw">import java.util.Random;
class="kw">import javax.annotation.Nonnull;

class="kw">public class WeightedTrade class="kw">implements IWeightedElement {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<WeightedTrade> CODEC = BuilderCodec.builder(WeightedTrade.class, WeightedTrade::new)
      .append(new KeyedCodec<>("Weight", Codec.DOUBLE), (var0, var1) -> var0.weight = var1, var0 -> var0.weight)
      .add()
      .<BarterItemStack>append(new KeyedCodec<>("Output", BarterItemStack.CODEC), (var0, var1) -> var0.output = var1, var0 -> var0.output)
      .addValidator(Validators.nonNull())
      .add()
      .<BarterItemStack[]>append(
         new KeyedCodec<>("Input", new ArrayCodec<>(BarterItemStack.CODEC, BarterItemStack[]::new)), (var0, var1) -> var0.input = var1, var0 -> var0.input
      )
      .addValidator(Validators.nonNull())
      .add()
      .append(new KeyedCodec<>("Stock", Codec.INT_ARRAY), (var0, var1) -> var0.stockRange = var1, var0 -> var0.stockRange)
      .add()
      .build();
   @Nonnull
   class="kw">public class="kw">static class="kw">final WeightedTrade[] EMPTY_ARRAY = new WeightedTrade[0];
   class="kw">protected double weight = 100.0;
   class="kw">protected BarterItemStack output;
   class="kw">protected BarterItemStack[] input;
   class="kw">protected int[] stockRange = new int[]{10};

   class="kw">public WeightedTrade(double var1, @Nonnull BarterItemStack var3, @Nonnull BarterItemStack[] var4, int var5) {
      this.weight = var1;
      this.output = var3;
      this.input = var4;
      this.stockRange = new int[]{var5};
   }

   class="kw">public WeightedTrade(double var1, @Nonnull BarterItemStack var3, @Nonnull BarterItemStack[] var4, int var5, int var6) {
      this.weight = var1;
      this.output = var3;
      this.input = var4;
      this.stockRange = new int[]{var5, var6};
   }

   class="kw">protected WeightedTrade() {
   }

   @Override
   class="kw">public double getWeight() {
      class="kw">return this.weight;
   }

   @Nonnull
   class="kw">public BarterItemStack getOutput() {
      class="kw">return this.output;
   }

   @Nonnull
   class="kw">public BarterItemStack[] getInput() {
      class="kw">return this.input;
   }

   @Nonnull
   class="kw">public int[] getStockRange() {
      class="kw">return this.stockRange;
   }

   class="kw">public boolean hasStockRange() {
      class="kw">return this.stockRange != null && this.stockRange.length == 2;
   }

   class="kw">public int getStockMin() {
      class="kw">return this.stockRange != null && this.stockRange.length > 0 ? this.stockRange[0] : 10;
   }

   class="kw">public int getStockMax() {
      class="kw">return this.stockRange != null && this.stockRange.length > 1 ? this.stockRange[1] : this.getStockMin();
   }

   class="kw">public int resolveStock(@Nonnull Random var1) {
      if (!this.hasStockRange()) {
         class="kw">return this.getStockMin();
      }

      int var2 = this.getStockMin();
      int var3 = this.getStockMax();
      class="kw">return var2 >= var3 ? var2 : var2 + var1.nextInt(var3 - var2 + 1);
   }

   @Nonnull
   class="kw">public BarterTrade toBarterTrade(@Nonnull Random var1) {
      class="kw">return new BarterTrade(this.output, this.input, this.resolveStock(var1));
   }

   @Deprecated
   @Nonnull
   class="kw">public BarterTrade toBarterTrade() {
      class="kw">return new BarterTrade(this.output, this.input, this.getStockMin());
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      String var1 = this.hasStockRange() ? "[" + this.getStockMin() + ", " + this.getStockMax() + "]" : String.valueOf(this.getStockMin());
      class="kw">return "WeightedTrade{weight=" + this.weight + ", output=" + this.output + ", input=" + Arrays.toString(this.input) + ", stock=" + var1 + "}";
   }
}