RandomRotatorPropAsset class
Пакет: com.hypixel.hytale.builtin.hytalegenerator.assets.props
Файл: com/hypixel/hytale/builtin/hytalegenerator/assets/props/RandomRotatorPropAsset.java
extends: PropAsset
Поля (6)
| Модификаторы | Тип | Имя |
|---|---|---|
|
Prop |
var2 |
|
WeightedMap |
var3 |
|
Prop |
var4 |
|
Prop |
var5 |
|
Prop |
var6 |
|
Prop |
var8 |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(OrthogonalRotationAsset var7 : this.rotationAssets) |
|
|
if if(!this.allHorizontal && this.rotationAssets.length == 0) |
|
|
if if(this.allHorizontal) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.assets.props;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.WeightedMap;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.material.OrthogonalRotationAsset;
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.props.StaticRotatorProp;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.props.WeightedProp;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.ArrayCodec;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.Rotation;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.RotationTuple;
class="kw">import javax.annotation.Nonnull;
class="kw">public class RandomRotatorPropAsset class="kw">extends PropAsset {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<RandomRotatorPropAsset> CODEC = BuilderCodec.builder(
RandomRotatorPropAsset.class, RandomRotatorPropAsset::new, PropAsset.ABSTRACT_CODEC
)
.append(new KeyedCodec<>("Prop", PropAsset.CODEC, true), (var0, var1) -> var0.propAsset = var1, var0 -> var0.propAsset)
.add()
.append(
new KeyedCodec<>("Rotations", new ArrayCodec<>(OrthogonalRotationAsset.CODEC, OrthogonalRotationAsset[]::new), true),
(var0, var1) -> var0.rotationAssets = var1,
var0 -> var0.rotationAssets
)
.add()
.append(new KeyedCodec<>("HorizontalRotations", BuilderCodec.BOOLEAN, false), (var0, var1) -> var0.allHorizontal = var1, var0 -> var0.allHorizontal)
.add()
.append(new KeyedCodec<>("Seed", BuilderCodec.STRING, true), (var0, var1) -> var0.seed = var1, var0 -> var0.seed)
.add()
.build();
@Nonnull
class="kw">private PropAsset propAsset = new EmptyPropAsset();
@Nonnull
class="kw">private OrthogonalRotationAsset[] rotationAssets = new OrthogonalRotationAsset[0];
class="kw">private boolean allHorizontal = false;
@Nonnull
class="kw">private String seed = "";
class="kw">public RandomRotatorPropAsset() {
}
@Nonnull
@Override
class="kw">public Prop build(@Nonnull PropAsset.Argument var1) {
if (super.skip()) {
class="kw">return EmptyProp.INSTANCE;
}
if (!this.allHorizontal && this.rotationAssets.length == 0) {
class="kw">return EmptyProp.INSTANCE;
}
Prop var2 = this.propAsset.build(var1);
WeightedMap var3 = new WeightedMap<>();
if (this.allHorizontal) {
Prop var4 = new StaticRotatorProp(var2, RotationTuple.of(Rotation.Ninety, Rotation.None, Rotation.None), var1.materialCache);
Prop var5 = new StaticRotatorProp(var2, RotationTuple.of(Rotation.OneEighty, Rotation.None, Rotation.None), var1.materialCache);
Prop var6 = new StaticRotatorProp(var2, RotationTuple.of(Rotation.TwoSeventy, Rotation.None, Rotation.None), var1.materialCache);
var3.add(var2, 1.0);
var3.add(var4, 1.0);
var3.add(var5, 1.0);
var3.add(var6, 1.0);
} else {
for (OrthogonalRotationAsset var7 : this.rotationAssets) {
Prop var8 = new StaticRotatorProp(var2, var7.build(), var1.materialCache);
var3.add(var8, 1.0);
}
}
class="kw">return new WeightedProp(var3, var1.parentSeed.child(this.seed).createSupplier().get());
}
@Override
class="kw">public void cleanUp() {
this.propAsset.cleanUp();
}
}