PrefabEditSelectCommand class

Пакет: com.hypixel.hytale.builtin.buildertools.prefabeditor.commands

Файл: com/hypixel/hytale/builtin/buildertools/prefabeditor/commands/PrefabEditSelectCommand.java

extends: AbstractPlayerCommand

Поля (19)

МодификаторыТипИмя
break
return
Vector3d var10
double var11
var11
boolean var12
Vector3d var15
double var16
Vector3i var18
Player var19
Vector3i var2
Ref var3
TransformComponent var4
PrefabEditSessionManager var6
PrefabEditSession var7
PrefabEditingMetadata var8
var8
var8
TransformComponent var9

Методы (7)

МодификаторыВозвратСигнатура
if if(var7 == null)
if if(var11 > var16)
if if(var18 == null)
if if(var12)
if if(var8 == null)
if if(var2 != null)
abstract super super("select", "server.commands.editprefab.select.desc")

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.buildertools.prefabeditor.commands;

class="kw">import com.hypixel.hytale.builtin.buildertools.BuilderToolsPlugin;
class="kw">import com.hypixel.hytale.builtin.buildertools.prefabeditor.PrefabEditSession;
class="kw">import com.hypixel.hytale.builtin.buildertools.prefabeditor.PrefabEditSessionManager;
class="kw">import com.hypixel.hytale.builtin.buildertools.prefabeditor.PrefabEditingMetadata;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.vector.Vector3dUtil;
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.arguments.system.FlagArg;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.core.util.TargetUtil;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3i;

class="kw">public class PrefabEditSelectCommand class="kw">extends AbstractPlayerCommand {
   @Nonnull
   class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_EDIT_PREFAB_SELECT_ERROR_NO_TARGET_FOUND = Message.translation(
      "server.commands.editprefab.select.error.noTargetFound"
   );
   @Nonnull
   class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_EDIT_PREFAB_SELECT_ERROR_NO_PREFAB_FOUND = Message.translation(
      "server.commands.editprefab.select.error.noPrefabFound"
   );
   @Nonnull
   class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_EDIT_PREFAB_NOT_IN_EDIT_SESSION = Message.translation("server.commands.editprefab.notInEditSession");
   @Nonnull
   class="kw">private class="kw">final FlagArg nearestArg = this.withFlagArg("nearest", "server.commands.editprefab.select.nearest.desc");

   class="kw">public PrefabEditSelectCommand() {
      super("select", "server.commands.editprefab.select.desc");
   }

   @Override
   class="kw">protected void execute(
      @Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
   ) {
      PrefabEditSessionManager var6 = BuilderToolsPlugin.get().getPrefabEditSessionManager();
      PrefabEditSession var7 = var6.getPrefabEditSession(var4.getUuid());
      if (var7 == null) {
         var1.sendMessage(MESSAGE_COMMANDS_EDIT_PREFAB_NOT_IN_EDIT_SESSION);
      } else {
         PrefabEditingMetadata var8 = null;
         if (this.nearestArg.get(var1)) {
            TransformComponent var9 = var2.getComponent(var3, TransformComponent.getComponentType());
            assert var9 != null;
            Vector3d var10 = new Vector3d(var9.getPosition());
            var10.y = 0.0;
            double var11 = 2.147483647E9;

            for (PrefabEditingMetadata var14 : var7.getLoadedPrefabMetadata().values()) {
               Vector3d var15 = new Vector3d((var14.getMaxPoint().x + var14.getMinPoint().x) / 2.0, 0.0, (var14.getMaxPoint().z + var14.getMinPoint().z) / 2.0);
               double var16 = var15.distance(var10);
               if (var11 > var16) {
                  var11 = var16;
                  var8 = var14;
               }
            }
         } else {
            Vector3i var18 = getTargetLocation(var3, var2);
            if (var18 == null) {
               var1.sendMessage(MESSAGE_COMMANDS_EDIT_PREFAB_SELECT_ERROR_NO_TARGET_FOUND);
               class="kw">return;
            }

            for (PrefabEditingMetadata var21 : var7.getLoadedPrefabMetadata().values()) {
               boolean var12 = var21.isLocationWithinPrefabBoundingBox(var18);
               if (var12) {
                  var8 = var21;
                  break;
               }
            }
         }

         if (var8 == null) {
            var1.sendMessage(MESSAGE_COMMANDS_EDIT_PREFAB_SELECT_ERROR_NO_PREFAB_FOUND);
         } else {
            Player var19 = var2.getComponent(var3, Player.getComponentType());
            assert var19 != null;
            var7.setSelectedPrefab(var3, var8, var2);
         }
      }
   }

   @Nullable
   class="kw">private class="kw">static Vector3i getTargetLocation(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1) {
      Vector3i var2 = TargetUtil.getTargetBlock(var0, 200.0, var1);
      if (var2 != null) {
         class="kw">return var2;
      } else {
         Ref var3 = TargetUtil.getTargetEntity(var0, var1);
         if (var3 != null && var3.isValid()) {
            TransformComponent var4 = var1.getComponent(var3, TransformComponent.getComponentType());
            class="kw">return var4 == null ? null : Vector3dUtil.toVector3i(var4.getPosition());
         } else {
            class="kw">return null;
         }
      }
   }
}