BuilderComponent class

Пакет: com.hypixel.hytale.server.npc.asset.builder

Файл: com/hypixel/hytale/server/npc/asset/builder/BuilderComponent.java

extends: BuilderBase<T>

Поля (3)

МодификаторыТипИмя
final Class<T> classType
ObjectSchema var2
Map var3

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.asset.builder;

class="kw">import com.google.gson.JsonElement;
class="kw">import com.hypixel.hytale.codec.schema.SchemaContext;
class="kw">import com.hypixel.hytale.codec.schema.config.BooleanSchema;
class="kw">import com.hypixel.hytale.codec.schema.config.ObjectSchema;
class="kw">import com.hypixel.hytale.codec.schema.config.Schema;
class="kw">import com.hypixel.hytale.codec.schema.config.StringSchema;
class="kw">import com.hypixel.hytale.server.npc.instructions.Action;
class="kw">import com.hypixel.hytale.server.npc.instructions.Motion;
class="kw">import com.hypixel.hytale.server.npc.util.expression.ExecutionContext;
class="kw">import com.hypixel.hytale.server.npc.util.expression.Scope;
class="kw">import com.hypixel.hytale.server.npc.validators.NPCLoadTimeValidationHelper;
class="kw">import java.util.List;
class="kw">import java.util.Map;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class BuilderComponent<T> class="kw">extends BuilderBase<T> {
   class="kw">private class="kw">final Class<T> classType;
   @Nonnull
   class="kw">private class="kw">final BuilderObjectReferenceHelper<T> content;

   class="kw">public BuilderComponent(Class<T> var1) {
      this.classType = var1;
      this.content = new BuilderObjectReferenceHelper<>(var1, null);
   }

   @Nullable
   @Override
   class="kw">public String getShortDescription() {
      class="kw">return null;
   }

   @Nullable
   @Override
   class="kw">public String getLongDescription() {
      class="kw">return null;
   }

   @Override
   class="kw">public T build(@Nonnull BuilderSupport var1) {
      class="kw">return this.content.build(var1);
   }

   @Override
   class="kw">public Class<T> category() {
      class="kw">return this.classType;
   }

   @Nullable
   @Override
   class="kw">public BuilderDescriptorState getBuilderDescriptorState() {
      class="kw">return null;
   }

   @Override
   class="kw">public boolean isEnabled(ExecutionContext var1) {
      class="kw">return true;
   }

   @Nonnull
   @Override
   class="kw">public Builder<T> readConfig(@Nonnull JsonElement var1) {
      this.requireObject(var1, "Content", this.content, null, null, null, this.validationHelper);
      class="kw">return this;
   }

   @Override
   class="kw">public boolean validate(String var1, @Nonnull NPCLoadTimeValidationHelper var2, @Nonnull ExecutionContext var3, Scope var4, @Nonnull List<String> var5) {
      class="kw">return super.validate(var1, var2, var3, var4, var5) & this.content.validate(var1, var2, this.builderManager, var3, var4, var5);
   }

   @Override
   class="kw">public boolean canRequireFeature() {
      class="kw">return this.classType.isAssignableFrom(Action.class) || this.classType.isAssignableFrom(Motion.class);
   }

   @Nonnull
   @Override
   class="kw">public Schema toSchema(@Nonnull SchemaContext var1) {
      ObjectSchema var2 = (ObjectSchema)super.toSchema(var1);
      Map var3 = var2.getProperties();
      var3.put("Class", new StringSchema());
      var3.put("Interface", new StringSchema());
      var3.put("Default", new StringSchema());
      var3.put("DefaultState", new StringSchema());
      var3.put("ResetOnStateChange", new BooleanSchema());
      class="kw">return var2;
   }
}