WeightedAssignments class
Пакет: com.hypixel.hytale.builtin.hytalegenerator.assignments
Файл: com/hypixel/hytale/builtin/hytalegenerator/assignments/WeightedAssignments.java
extends: Assignments
Поля (1)
| Модификаторы | Тип | Имя |
|---|---|---|
|
ArrayList |
var1 |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.assignments;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.WeightedMap;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.props.EmptyProp;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.props.Prop;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.rng.RngField;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.workerindexer.WorkerIndexer;
class="kw">import com.hypixel.hytale.math.util.FastRandom;
class="kw">import java.util.ArrayList;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">public class WeightedAssignments class="kw">extends Assignments {
@Nonnull
class="kw">private class="kw">final WeightedMap<Assignments> weightedDistributions;
@Nonnull
class="kw">private class="kw">final RngField rngField;
class="kw">private class="kw">final double skipCHance;
@Nonnull
class="kw">private class="kw">final FastRandom rRandom;
class="kw">public WeightedAssignments(@Nonnull WeightedMap<Assignments> var1, int var2, double var3) {
this.weightedDistributions = new WeightedMap<>(var1);
this.rngField = new RngField(var2);
this.skipCHance = var3;
this.rRandom = new FastRandom();
}
@Override
class="kw">public Prop propAt(@Nonnull Vector3d var1, @Nonnull WorkerIndexer.Id var2, double var3) {
if (this.weightedDistributions.size() == 0) {
class="kw">return EmptyProp.INSTANCE;
}
this.rRandom.setSeed(this.rngField.get(var1.x, var1.y, var1.z));
class="kw">return this.rRandom.nextDouble() < this.skipCHance ? EmptyProp.INSTANCE : this.weightedDistributions.pick(this.rRandom).propAt(var1, var2, var3);
}
@Nonnull
@Override
class="kw">public List<Prop> getAllPossibleProps() {
ArrayList var1 = new ArrayList<>();
for (Assignments var3 : this.weightedDistributions.elements()) {
var1.addAll(var3.getAllPossibleProps());
}
class="kw">return var1;
}
}