ContentCopyNodeAction class
Пакет: com.hypixel.hytale.builtin.hytalegenerator.graph.nodeactions
Файл: com/hypixel/hytale/builtin/hytalegenerator/graph/nodeactions/ContentCopyNodeAction.java
extends: NodeAction
Поля (5)
| Модификаторы | Тип | Имя |
|---|---|---|
|
int |
var3 |
|
GraphSpace.Node |
var4 |
|
int |
var4 |
|
int |
var5 |
|
GraphSpace.Content |
var6 |
Методы (1)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
if if(var3 != 0) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.graph.nodeactions;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.graph.GraphSpace;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.rng.RngField;
class="kw">import com.hypixel.hytale.math.util.FastRandom;
class="kw">import it.unimi.dsi.fastutil.ints.IntSet;
class="kw">import java.util.ArrayList;
class="kw">import java.util.List;
class="kw">import java.util.function.Consumer;
class="kw">import java.util.function.Predicate;
class="kw">import javax.annotation.Nonnull;
class="kw">public class ContentCopyNodeAction class="kw">extends NodeAction {
@Nonnull
class="kw">private class="kw">final Predicate<IntSet> contentPredicate;
@Nonnull
class="kw">private class="kw">final RngField rngField;
@Nonnull
class="kw">private class="kw">final FastRandom random;
@Nonnull
class="kw">private class="kw">final List<GraphSpace.Content> rContentPool;
class="kw">public ContentCopyNodeAction(@Nonnull Predicate<IntSet> var1, int var2) {
this.contentPredicate = var1;
this.rngField = new RngField(var2);
this.random = new FastRandom();
this.rContentPool = new ArrayList<>(1);
}
@Override
class="kw">public void run(@Nonnull GraphSpace var1, @Nonnull GraphSpace.Node var2) {
int var3 = var2.getEdgesCount();
if (var3 != 0) {
this.rContentPool.clear();
var2.viewConnections((var2x, var3x) -> {
GraphSpace.Node var4 = var2x.otherNode(var2);
if (this.contentPredicate.test(var4.content().tagSet)) {
this.rContentPool.add(var4.content());
}
});
if (!this.rContentPool.isEmpty()) {
int var4 = this.rngField.get(var2.position());
this.random.setSeed(var4);
int var5 = this.random.nextInt(this.rContentPool.size());
GraphSpace.Content var6 = this.rContentPool.get(var5);
var1.schedule(() -> var2.setContent(var6));
this.rContentPool.clear();
}
}
}
@Override
class="kw">public double getInteractionRange(double var1) {
class="kw">return var1;
}
@Override
class="kw">public double getLongestCreatedEdgeLength() {
class="kw">return 0.0;
}
@Override
class="kw">public double getCausalRangeIncrement() {
class="kw">return 0.0;
}
@Override
class="kw">public void viewAllPossibleContent(@Nonnull Consumer<GraphSpace.Content> var1) {
}
}