WeightedProp class

Пакет: com.hypixel.hytale.builtin.hytalegenerator.props

Файл: com/hypixel/hytale/builtin/hytalegenerator/props/WeightedProp.java

extends: Prop

Поля (2)

МодификаторыТипИмя
int var2
Prop var3

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.props;

class="kw">import com.hypixel.hytale.builtin.hytalegenerator.WeightedMap;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.bounds.Bounds3i;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.rng.RngField;
class="kw">import com.hypixel.hytale.math.util.FastRandom;
class="kw">import javax.annotation.Nonnull;

class="kw">public class WeightedProp class="kw">extends Prop {
   @Nonnull
   class="kw">private class="kw">final WeightedMap<Prop> props;
   @Nonnull
   class="kw">private class="kw">final Bounds3i readBounds_voxelGrid;
   @Nonnull
   class="kw">private class="kw">final Bounds3i writeBounds_voxelGrid;
   @Nonnull
   class="kw">private class="kw">final RngField rngField;
   @Nonnull
   class="kw">private class="kw">final FastRandom random;

   class="kw">public WeightedProp(@Nonnull WeightedMap<Prop> var1, int var2) {
      this.props = new WeightedMap<>(var1);
      this.readBounds_voxelGrid = new Bounds3i();
      this.writeBounds_voxelGrid = new Bounds3i();
      this.rngField = new RngField(var2);
      this.random = new FastRandom();

      for (Prop var4 : this.props.elements()) {
         this.readBounds_voxelGrid.encompass(var4.getReadBounds_voxelGrid());
         this.writeBounds_voxelGrid.encompass(var4.getWriteBounds_voxelGrid());
      }
   }

   @Override
   class="kw">public boolean generate(@Nonnull Prop.Context var1) {
      if (this.props.size() == 0) {
         class="kw">return false;
      }

      int var2 = this.rngField.get(var1.position.x, var1.position.y, var1.position.z);
      this.random.setSeed(var2);
      Prop var3 = this.props.pick(this.random);
      class="kw">return var3.generate(var1);
   }

   @Nonnull
   @Override
   class="kw">public Bounds3i getReadBounds_voxelGrid() {
      class="kw">return this.readBounds_voxelGrid;
   }

   @Nonnull
   @Override
   class="kw">public Bounds3i getWriteBounds_voxelGrid() {
      class="kw">return this.writeBounds_voxelGrid;
   }
}