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