RelativeIntPosition class

Пакет: com.hypixel.hytale.server.core.command.system.arguments.types

Файл: com/hypixel/hytale/server/core/command/system/arguments/types/RelativeIntPosition.java

Поля (10)

МодификаторыТипИмя
TransformComponent var3
boolean var3
int var3
Vector3d var4
Vector3d var4
int var4
World var5
Ref var5
int var5
World var6

Методы (6)

МодификаторыВозвратСигнатура
abstract throw new GeneralCommandExceptionthrow new GeneralCommandException(MESSAGE_COMMANDS_ERRORS_PLAYER_NOT_IN_WORLD)
abstract throw new GeneralCommandExceptionthrow new GeneralCommandException(MESSAGE_COMMANDS_ERRORS_RELATIVE_POSITION_ARG)
abstract return new Vector3ireturn new Vector3i(var3, var5, var4)
if if(var5 != null)
if if(var3)
public boolean isRelativeboolean isRelative()

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.command.system.arguments.types;

class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandContext;
class="kw">import com.hypixel.hytale.server.core.command.system.exceptions.GeneralCommandException;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3i;

class="kw">public class RelativeIntPosition {
   @Nonnull
   class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_ERRORS_PLAYER_NOT_IN_WORLD = Message.translation("server.commands.errors.playerNotInWorld");
   @Nonnull
   class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_ERRORS_RELATIVE_POSITION_ARG = Message.translation("server.commands.errors.relativePositionArg");
   @Nonnull
   class="kw">private class="kw">final IntCoord x;
   @Nonnull
   class="kw">private class="kw">final IntCoord y;
   @Nonnull
   class="kw">private class="kw">final IntCoord z;

   class="kw">public RelativeIntPosition(@Nonnull IntCoord var1, @Nonnull IntCoord var2, @Nonnull IntCoord var3) {
      this.x = var1;
      this.y = var2;
      this.z = var3;
   }

   @Nonnull
   class="kw">public Vector3i getBlockPosition(@Nonnull Ref<EntityStore> var1, @Nonnull ComponentAccessor<EntityStore> var2) {
      TransformComponent var3 = var2.getComponent(var1, TransformComponent.getComponentType());
      assert var3 != null;
      Vector3d var4 = var3.getPosition();
      World var5 = var2.getExternalData().getWorld();
      class="kw">return this.getBlockPosition(var4, var5.getChunkStore());
   }

   @Nonnull
   class="kw">public Vector3i getBlockPosition(@Nonnull CommandContext var1, @Nonnull ComponentAccessor<EntityStore> var2) {
      boolean var3 = this.isRelative();
      Ref var5 = var1.isPlayer() ? var1.senderAsPlayerRef() : null;
      if (var5 != null) {
         if (!var5.isValid()) {
            throw new GeneralCommandException(MESSAGE_COMMANDS_ERRORS_PLAYER_NOT_IN_WORLD);
         } else {
            class="kw">return this.getBlockPosition(var5, var2);
         }
      } else {
         if (var3) {
            throw new GeneralCommandException(MESSAGE_COMMANDS_ERRORS_RELATIVE_POSITION_ARG);
         }

         Vector3d var4 = new Vector3d();
         World var6 = var2.getExternalData().getWorld();
         class="kw">return this.getBlockPosition(var4, var6.getChunkStore());
      }
   }

   @Nonnull
   class="kw">public Vector3i getBlockPosition(@Nonnull Vector3d var1, @Nonnull ChunkStore var2) {
      int var3 = this.x.resolveXZ(MathUtil.floor(var1.x));
      int var4 = this.z.resolveXZ(MathUtil.floor(var1.z));
      int var5 = this.y.resolveYAtWorldCoords(MathUtil.floor(var1.y), var2, var3, var4);
      class="kw">return new Vector3i(var3, var5, var4);
   }

   class="kw">public boolean isRelative() {
      class="kw">return this.x.isRelative() || this.y.isRelative() || this.z.isRelative();
   }
}