JumpToRandomIndex class
Пакет: com.hypixel.hytale.builtin.buildertools.scriptedbrushes.operations.sequential.flowcontrol
Файл: com/hypixel/hytale/builtin/buildertools/scriptedbrushes/operations/sequential/flowcontrol/JumpToRandomIndex.java
extends: SequenceBrushOperation
Поля (3)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
BuilderCodec<JumpToRandomIndex> |
CODEC |
|
ArrayList |
var1 |
|
String |
var5 |
Методы (5)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(PairCodec.IntegerStringPair var6 : var1) |
|
|
if if(var1 != null && var1.length != 0) |
|
|
if if(var0.variableNameArg == null) |
|
|
if if(this.variableNameArg != null) |
abstract |
|
super super("Jump to Random Stored Index", "Jump the stack execution to a random location in the stack using the specified weights and saved index names", false) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.buildertools.scriptedbrushes.operations.sequential.flowcontrol;
class="kw">import com.hypixel.hytale.builtin.buildertools.scriptedbrushes.BrushConfig;
class="kw">import com.hypixel.hytale.builtin.buildertools.scriptedbrushes.BrushConfigCommandExecutor;
class="kw">import com.hypixel.hytale.builtin.buildertools.scriptedbrushes.operations.system.SequenceBrushOperation;
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.common.map.IWeightedMap;
class="kw">import com.hypixel.hytale.common.map.WeightedMap;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.server.core.codec.PairCodec;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import it.unimi.dsi.fastutil.Pair;
class="kw">import java.util.ArrayList;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class JumpToRandomIndex class="kw">extends SequenceBrushOperation {
class="kw">public class="kw">static class="kw">final BuilderCodec<JumpToRandomIndex> CODEC = BuilderCodec.builder(JumpToRandomIndex.class, JumpToRandomIndex::new)
.append(
new KeyedCodec<>("WeightedListOfIndexNames", new ArrayCodec<>(PairCodec.IntegerStringPair.CODEC, PairCodec.IntegerStringPair[]::new)),
(var0, var1) -> {
if (var1 != null && var1.length != 0) {
WeightedMap.Builder var2 = WeightedMap.builder(new String[0]);
for (PairCodec.IntegerStringPair var6 : var1) {
var2.put(var6.getRight(), var6.getLeft().doubleValue());
}
var0.variableNameArg = var2.build();
} else {
var0.variableNameArg = null;
}
},
var0 -> {
if (var0.variableNameArg == null) {
class="kw">return new PairCodec.IntegerStringPair[0];
}
ArrayList var1 = new ArrayList<>();
var0.variableNameArg.forEachEntry((var1x, var2) -> var1.add(PairCodec.IntegerStringPair.fromPair(Pair.of((int)var2, var1x))));
class="kw">return var1.toArray(new PairCodec.IntegerStringPair[0]);
}
)
.documentation("A weighted list of weights and their corresponding index names")
.add()
.documentation("Jump the stack execution to a random location in the stack using the specified weights and saved index names")
.build();
@Nullable
class="kw">public IWeightedMap<String> variableNameArg = null;
class="kw">public JumpToRandomIndex() {
super(
"Jump to Random Stored Index", "Jump the stack execution to a random location in the stack using the specified weights and saved index names", false
);
}
@Override
class="kw">public void modifyBrushConfig(
@Nonnull Ref<EntityStore> var1, @Nonnull BrushConfig var2, @Nonnull BrushConfigCommandExecutor var3, @Nonnull ComponentAccessor<EntityStore> var4
) {
if (this.variableNameArg != null) {
String var5 = this.variableNameArg.get(var2.getRandom());
var3.loadOperatingIndex(var5);
}
}
}