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