PositionProvider class

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

Файл: com/hypixel/hytale/server/npc/sensorinfo/PositionProvider.java

extends: InfoProviderBase

implements: IPositionProvider

Поля (2)

МодификаторыТипИмя
TransformComponent var4
protected double x

Методы (8)

МодификаторыВозвратСигнатура
public void clearOrientationvoid clearOrientation()
if if(var1 == null)
if if(!this.hasOrientation)
public void setOrientationvoid setOrientation(@Nonnull Rotation3fc var1)
public void setTargetvoid setTarget(@Nonnull Vector3d var1)
public void setTargetvoid setTarget(double var1, double var3, double var5)
abstract super super(var1)
abstract super super(var1, var2)

Исходный код

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

class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
class="kw">import com.hypixel.hytale.math.vector.Rotation3fc;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.damage.DeathComponent;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.npc.sensorinfo.parameterproviders.ParameterProvider;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;

class="kw">public class PositionProvider class="kw">extends InfoProviderBase class="kw">implements IPositionProvider {
   class="kw">protected double x = 2.147483647E9;
   class="kw">protected double y = 2.147483647E9;
   class="kw">protected double z = 2.147483647E9;
   class="kw">protected boolean isValid;
   @Nonnull
   class="kw">protected class="kw">final Rotation3f orientation = new Rotation3f();
   class="kw">protected boolean hasOrientation;

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

   class="kw">public PositionProvider(ParameterProvider var1) {
      super(var1);
   }

   class="kw">public PositionProvider(ParameterProvider var1, ExtraInfoProvider... var2) {
      super(var1, var2);
   }

   @Override
   class="kw">public void clear() {
      this.x = 2.147483647E9;
      this.y = 2.147483647E9;
      this.z = 2.147483647E9;
      this.isValid = false;
      this.hasOrientation = false;
   }

   @Nullable
   class="kw">public Ref<EntityStore> setTarget(@Nullable Ref<EntityStore> var1, @Nonnull ComponentAccessor<EntityStore> var2) {
      class="kw">return this.setTarget(var1, var2, false);
   }

   @Nullable
   class="kw">public Ref<EntityStore> setTarget(@Nullable Ref<EntityStore> var1, @Nonnull ComponentAccessor<EntityStore> var2, boolean var3) {
      if (var1 == null) {
         class="kw">return null;
      } else if (var1.isValid() && (var3 || !var2.getArchetype(var1).contains(DeathComponent.getComponentType()))) {
         TransformComponent var4 = var2.getComponent(var1, TransformComponent.getComponentType());
         assert var4 != null;
         this.setTarget(var4.getPosition());
         this.setOrientation(var4.getRotation());
         class="kw">return var1;
      } else {
         this.clear();
         class="kw">return null;
      }
   }

   class="kw">public void setTarget(@Nonnull Vector3d var1) {
      this.setTarget(var1.x, var1.y, var1.z);
   }

   class="kw">public void setTarget(double var1, double var3, double var5) {
      this.x = var1;
      this.y = var3;
      this.z = var5;
      this.isValid = true;
      this.hasOrientation = false;
   }

   @Override
   class="kw">public boolean providePosition(@Nonnull Vector3d var1) {
      if (!this.hasPosition()) {
         class="kw">return false;
      }

      var1.set(this.x, this.y, this.z);
      class="kw">return true;
   }

   @Override
   class="kw">public double getX() {
      class="kw">return this.x;
   }

   @Override
   class="kw">public double getY() {
      class="kw">return this.y;
   }

   @Override
   class="kw">public double getZ() {
      class="kw">return this.z;
   }

   @Nonnull
   @Override
   class="kw">public IPositionProvider getPositionProvider() {
      class="kw">return this;
   }

   @Override
   class="kw">public boolean hasPosition() {
      class="kw">return this.isValid;
   }

   @Nullable
   @Override
   class="kw">public Ref<EntityStore> getTarget() {
      class="kw">return null;
   }

   @Override
   class="kw">public boolean provideOrientation(@Nonnull Rotation3f var1) {
      if (!this.hasOrientation) {
         class="kw">return false;
      }

      var1.set(this.orientation);
      class="kw">return true;
   }

   class="kw">public void setOrientation(@Nonnull Rotation3fc var1) {
      this.orientation.set(var1);
      this.hasOrientation = true;
   }

   class="kw">public void clearOrientation() {
      this.hasOrientation = false;
   }
}