BuilderWeightedAction class

Пакет: com.hypixel.hytale.server.npc.corecomponents.builders

Файл: com/hypixel/hytale/server/npc/corecomponents/builders/BuilderWeightedAction.java

extends: BuilderBase<WeightedAction>

Поля (2)

МодификаторыТипИмя
final BuilderObjectReferenceHelper<Action> action
Action var2

Методы (1)

МодификаторыВозвратСигнатура
public double getWeightdouble getWeight(@Nonnull BuilderSupport var1)

Исходный код

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

class="kw">import com.google.gson.JsonElement;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.Builder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderBase;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderDescriptorState;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderObjectReferenceHelper;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderSupport;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.holder.DoubleHolder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.DoubleSingleValidator;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.WeightedAction;
class="kw">import com.hypixel.hytale.server.npc.instructions.Action;
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 javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class BuilderWeightedAction class="kw">extends BuilderBase<WeightedAction> {
   class="kw">private class="kw">final BuilderObjectReferenceHelper<Action> action = new BuilderObjectReferenceHelper<>(Action.class, this);
   class="kw">private class="kw">final DoubleHolder weight = new DoubleHolder();

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

   @Nullable
   class="kw">public WeightedAction build(@Nonnull BuilderSupport var1) {
      Action var2 = this.getAction(var1);
      class="kw">return var2 == null ? null : new WeightedAction(this, var1, var2);
   }

   @Nonnull
   @Override
   class="kw">public Class<WeightedAction> category() {
      class="kw">return WeightedAction.class;
   }

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

   @Nonnull
   @Override
   class="kw">public String getShortDescription() {
      class="kw">return "A wrapped and weighted action intended to be used for Random action lists.";
   }

   @Nonnull
   @Override
   class="kw">public String getLongDescription() {
      class="kw">return this.getShortDescription();
   }

   @Nonnull
   @Override
   class="kw">public BuilderDescriptorState getBuilderDescriptorState() {
      class="kw">return BuilderDescriptorState.Stable;
   }

   @Nonnull
   @Override
   class="kw">public Builder<WeightedAction> readConfig(@Nonnull JsonElement var1) {
      this.requireObject(var1, "Action", this.action, BuilderDescriptorState.Stable, "The action to run", null, this.validationHelper);
      this.requireDouble(
         var1,
         "Weight",
         this.weight,
         DoubleSingleValidator.greater0(),
         BuilderDescriptorState.Stable,
         "The weight representing how likely this action is to run",
         null
      );
      class="kw">return this;
   }

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

   @Nullable
   class="kw">public Action getAction(@Nonnull BuilderSupport var1) {
      class="kw">return this.action.build(var1);
   }

   class="kw">public double getWeight(@Nonnull BuilderSupport var1) {
      class="kw">return this.weight.get(var1.getExecutionContext());
   }
}