StaticDirectionalityAsset class

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

Файл: com/hypixel/hytale/builtin/hytalegenerator/assets/props/prefabprop/directionality/StaticDirectionalityAsset.java

extends: DirectionalityAsset

Поля (1)

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

Методы (3)

МодификаторыВозвратСигнатура
public void acceptpublic void accept(Integer var1, ValidationResults var2)
if if(var1 != 0 && var1 != 90 && var1 != 180 && var1 != 270)
public void updateSchemapublic void updateSchema(SchemaContext var1, Schema var2)

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.patterns.ConstantPatternAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.assets.patterns.PatternAsset;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.props.deprecated.directionality.Directionality;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.props.deprecated.directionality.StaticDirectionality;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.schema.SchemaContext;
class="kw">import com.hypixel.hytale.codec.schema.config.Schema;
class="kw">import com.hypixel.hytale.codec.validation.ValidationResults;
class="kw">import com.hypixel.hytale.codec.validation.Validator;
class="kw">import com.hypixel.hytale.server.core.prefab.PrefabRotation;
class="kw">import javax.annotation.Nonnull;

class="kw">public class StaticDirectionalityAsset class="kw">extends DirectionalityAsset {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<StaticDirectionalityAsset> CODEC = BuilderCodec.builder(
         StaticDirectionalityAsset.class, StaticDirectionalityAsset::new, DirectionalityAsset.ABSTRACT_CODEC
      )
      .append(new KeyedCodec<>("Rotation", Codec.INTEGER, false), (var0, var1) -> var0.rotation = var1, var0 -> var0.rotation)
      .addValidator(new Validator<Integer>() {
         class="kw">public void accept(Integer var1, ValidationResults var2) {
            if (var1 != 0 && var1 != 90 && var1 != 180 && var1 != 270) {
               var2.fail("Rotation can only have the values: 0, 90, 180, 270");
            }
         }

         @Override
         class="kw">public void updateSchema(SchemaContext var1, Schema var2) {
         }
      })
      .add()
      .append(new KeyedCodec<>("Pattern", PatternAsset.CODEC, true), (var0, var1) -> var0.patternAsset = var1, var0 -> var0.patternAsset)
      .add()
      .build();
   class="kw">private int rotation = 0;
   class="kw">private PatternAsset patternAsset = new ConstantPatternAsset();

   class="kw">public StaticDirectionalityAsset() {
   }

   @Nonnull
   @Override
   class="kw">public Directionality build(@Nonnull DirectionalityAsset.Argument var1) {
      PrefabRotation var2 = class="kw">switch (this.rotation) {
         case 90 -> PrefabRotation.ROTATION_90;
         case 180 -> PrefabRotation.ROTATION_180;
         case 270 -> PrefabRotation.ROTATION_270;
         class="kw">default -> PrefabRotation.ROTATION_0;
      };
      class="kw">return new StaticDirectionality(var2, this.patternAsset.build(PatternAsset.argumentFrom(var1)));
   }

   @Override
   class="kw">public void cleanUp() {
      this.patternAsset.cleanUp();
   }
}