BuilderMotionControllerBase class

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

Файл: com/hypixel/hytale/server/npc/movement/controllers/builders/BuilderMotionControllerBase.java

extends: BuilderBaseWithType<MotionController>

Поля (3)

МодификаторыТипИмя
protected float epsilonAngle
BuilderInfo var1
boolean var6

Методы (7)

МодификаторыВозвратСигнатура
public float getEpsilonAnglefloat getEpsilonAngle()
public double getEpsilonSpeeddouble getEpsilonSpeed()
public double getExternalVelocityDampingdouble getExternalVelocityDamping()
public double getFastHorizontalThresholddouble getFastHorizontalThreshold(@Nonnull BuilderSupport var1)
public double getFastHorizontalThresholdRangedouble getFastHorizontalThresholdRange()
public float getMaxHeadRotationSpeedfloat getMaxHeadRotationSpeed(@Nonnull BuilderSupport var1)
public double getMaxHorizontalSpeeddouble getMaxHorizontalSpeed(@Nonnull BuilderSupport var1)

Исходный код

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

class="kw">import com.google.gson.JsonElement;
class="kw">import com.hypixel.hytale.server.npc.NPCPlugin;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.Builder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderBaseWithType;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderDescriptorState;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderInfo;
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.holder.FloatHolder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.DoubleRangeValidator;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.DoubleSingleValidator;
class="kw">import com.hypixel.hytale.server.npc.movement.MovementMode;
class="kw">import com.hypixel.hytale.server.npc.movement.controllers.MotionController;
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.Objects;
class="kw">import java.util.Set;
class="kw">import javax.annotation.Nonnull;

class="kw">public class="kw">abstract class BuilderMotionControllerBase class="kw">extends BuilderBaseWithType<MotionController> {
   class="kw">protected float epsilonAngle;
   class="kw">protected double epsilonSpeed;
   class="kw">protected double externalVelocityDamping;
   class="kw">protected class="kw">final DoubleHolder maxHorizontalSpeed = new DoubleHolder();
   class="kw">protected class="kw">final DoubleHolder fastHorizontalThreshold = new DoubleHolder();
   class="kw">protected double fastHorizontalThresholdRange;
   class="kw">protected class="kw">final FloatHolder maxHeadRotationSpeed = new FloatHolder();

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

   @Nonnull
   @Override
   class="kw">public Builder<MotionController> readCommonConfig(@Nonnull JsonElement var1) {
      super.readCommonConfig(var1);
      this.readTypeKey(var1);
      this.getDouble(
         var1,
         "EpsilonSpeed",
         var1x -> this.epsilonSpeed = var1x,
         1.0E-5,
         DoubleSingleValidator.greater0(),
         BuilderDescriptorState.Experimental,
         "Minimum speed considered non 0",
         null
      );
      this.getFloat(
         var1,
         "EpsilonAngle",
         var1x -> this.epsilonAngle = var1x,
         3.0F,
         DoubleSingleValidator.greater0(),
         BuilderDescriptorState.Experimental,
         "Minimum angle difference considered non 0 in degrees",
         null
      );
      this.getFloat(
         var1,
         "MaxHeadRotationSpeed",
         this.maxHeadRotationSpeed,
         360.0,
         DoubleRangeValidator.between(0.0, 360.0),
         BuilderDescriptorState.Stable,
         "Maximum rotation speed of the head in degrees",
         null
      );
      this.getDouble(
         var1,
         "ExternalVelocityDamping",
         var1x -> this.externalVelocityDamping = var1x,
         0.5,
         DoubleSingleValidator.greater0(),
         BuilderDescriptorState.Experimental,
         "Damping of external velocity over time",
         null
      );
      this.getDouble(
         var1,
         "RunThreshold",
         this.fastHorizontalThreshold,
         0.7,
         DoubleRangeValidator.between01(),
         BuilderDescriptorState.WorkInProgress,
         "Relative threshold when running animation should be used",
         null
      );
      this.getDouble(
         var1,
         "RunThresholdRange",
         var1x -> this.fastHorizontalThresholdRange = var1x,
         0.15,
         DoubleRangeValidator.between01(),
         BuilderDescriptorState.WorkInProgress,
         "Relative threshold range for switching between running/walking",
         null
      );
      class="kw">return this;
   }

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

   @Nonnull
   @Override
   class="kw">public String getIdentifier() {
      BuilderInfo var1 = NPCPlugin.get().getBuilderInfo(this);
      Objects.requireNonNull(var1, "Have builder but can't get builderInfo for it");
      class="kw">return var1.getKeyName();
   }

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

   class="kw">public float getEpsilonAngle() {
      class="kw">return (float) (Math.PI / 180.0) * this.epsilonAngle;
   }

   class="kw">public double getEpsilonSpeed() {
      class="kw">return this.epsilonSpeed;
   }

   class="kw">public double getExternalVelocityDamping() {
      class="kw">return this.externalVelocityDamping;
   }

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

   class="kw">public float getMaxHeadRotationSpeed(@Nonnull BuilderSupport var1) {
      class="kw">return this.maxHeadRotationSpeed.get(var1.getExecutionContext()) * (float) (Math.PI / 180.0);
   }

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

   class="kw">public double getFastHorizontalThresholdRange() {
      class="kw">return this.fastHorizontalThresholdRange;
   }

   class="kw">public class="kw">abstract Class<? class="kw">extends MotionController> getClassType();

   @Nonnull
   class="kw">public class="kw">abstract Set<MovementMode> getSupportedMovementModes();
}