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