SplitChanceBlockGrowthProcedure class
Пакет: com.hypixel.hytale.builtin.blocktick.procedure
Файл: com/hypixel/hytale/builtin/blocktick/procedure/SplitChanceBlockGrowthProcedure.java
extends: BasicChanceBlockGrowthProcedure
Поля (4)
| Модификаторы | Тип | Имя |
|---|---|---|
|
BsonDocument |
var2 |
|
int |
var3 |
|
int |
var6 |
|
String |
var6 |
Методы (6)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(int var3 = 0; var3 < var0.data.length; var3++) |
|
|
for for(int var10 : var3) |
|
|
if if(var0.data != null && var0.chances != null) |
|
|
if if(var3.length != var4.length) |
|
|
if if(var10 < 0) |
abstract |
|
super super(var1, var2, null, var5) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.blocktick.procedure;
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.validation.Validators;
class="kw">import com.hypixel.hytale.common.util.RandomUtil;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktick.config.TickProcedure;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import java.util.Arrays;
class="kw">import java.util.Map.Entry;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.bson.BsonDocument;
class="kw">import org.bson.BsonValue;
class="kw">public class SplitChanceBlockGrowthProcedure class="kw">extends BasicChanceBlockGrowthProcedure {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<SplitChanceBlockGrowthProcedure> CODEC = BuilderCodec.builder(
SplitChanceBlockGrowthProcedure.class, SplitChanceBlockGrowthProcedure::new, TickProcedure.BASE_CODEC
)
.append(new KeyedCodec<>("NextIds", Codec.BSON_DOCUMENT), (var0, var1, var2) -> {
var0.data = new String[var1.size()];
var0.chances = new int[var0.data.length];
int var3 = 0;
for (Entry var5 : var1.entrySet()) {
var0.data[var3] = var5.getKey();
var0.chances[var3] = Codec.INTEGER.decode(var5.getValue(), var2);
var0.sumChances = var0.sumChances + var0.chances[var3];
var3++;
}
}, (var0, var1) -> {
if (var0.data != null && var0.chances != null) {
BsonDocument var2 = new BsonDocument();
for (int var3 = 0; var3 < var0.data.length; var3++) {
var2.append(var0.data[var3], Codec.INTEGER.encode(var0.chances[var3], var1));
}
class="kw">return var2;
} else {
class="kw">return null;
}
})
.addValidator(Validators.nonNull())
.add()
.addField(new KeyedCodec<>("ChanceMin", Codec.INTEGER), (var0, var1) -> var0.chanceMin = var1, var0 -> var0.chanceMin)
.addField(new KeyedCodec<>("Data", Codec.INTEGER), (var0, var1) -> var0.chance = var1, var0 -> var0.chance)
.addField(new KeyedCodec<>("NextTicking", Codec.BOOLEAN), (var0, var1) -> var0.nextTicking = var1, var0 -> var0.nextTicking)
.build();
class="kw">protected int[] chances;
class="kw">protected String[] data;
class="kw">protected int sumChances;
class="kw">public SplitChanceBlockGrowthProcedure() {
}
class="kw">public SplitChanceBlockGrowthProcedure(int var1, int var2, @Nonnull int[] var3, @Nonnull String[] var4, boolean var5) {
super(var1, var2, null, var5);
this.chances = var3;
this.data = var4;
if (var3.length != var4.length) {
throw new IllegalArgumentException(String.valueOf(var4.length));
}
int var6 = 0;
for (int var10 : var3) {
if (var10 < 0) {
throw new IllegalArgumentException(String.valueOf(var10));
}
var6 += var10;
}
this.sumChances = var6;
}
@Override
class="kw">protected boolean executeToBlock(@Nonnull World var1, int var2, int var3, int var4, String var5) {
String var6 = RandomUtil.roll(this.getRandom().nextInt(this.sumChances), this.data, this.chances);
class="kw">return super.executeToBlock(var1, var2, var3, var4, var6);
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "SplitChanceBlockGrowthProcedure{chanceMin="
+ this.chanceMin
+ ", chance="
+ this.chance
+ ", to="
+ this.to
+ ", nextTicking="
+ this.nextTicking
+ ", chances="
+ Arrays.toString(this.chances)
+ ", data="
+ Arrays.toString(this.data)
+ ", sumChances="
+ this.sumChances
+ "}";
}
}