LaserPointerOperation class

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

Файл: com/hypixel/hytale/builtin/buildertools/tooloperations/LaserPointerOperation.java

extends: ToolOperation

Поля (17)

МодификаторыТипИмя
final double MAX_DISTANCE
NetworkId var10
int var11
Transform var12
Vector3d var13
Vector3d var14
Vector3d var15
Vector3d var16
BuilderToolLaserPointer var17
String var6
int var7
var7
Object var8
int var9
var9
var9
var9

Методы (2)

МодификаторыВозвратСигнатура
if if(var8 instanceof Integer)
abstract super super(var1, var4, var5)

Исходный код

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

class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.math.vector.Transform;
class="kw">import com.hypixel.hytale.protocol.packets.buildertools.BuilderToolLaserPointer;
class="kw">import com.hypixel.hytale.protocol.packets.buildertools.BuilderToolOnUseInteraction;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.asset.util.ColorParseUtil;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.modules.entity.tracker.NetworkId;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.PlayerUtil;
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 org.joml.Vector3d;

class="kw">public class LaserPointerOperation class="kw">extends ToolOperation {
   class="kw">private class="kw">static class="kw">final double MAX_DISTANCE = 128.0;

   class="kw">public LaserPointerOperation(
      @Nonnull Ref<EntityStore> var1,
      @Nonnull Player var2,
      @Nonnull PlayerRef var3,
      @Nonnull BuilderToolOnUseInteraction var4,
      @Nonnull ComponentAccessor<EntityStore> var5
   ) {
      super(var1, var4, var5);
      String var6 = (String)this.args.tool().get("LaserColor");

      int var7;
      try {
         var7 = ColorParseUtil.hexStringToRGBInt(var6);
      } catch (NumberFormatException var19) {
         var3.sendMessage(Message.translation("server.builderTools.laserPointer.colorParseError").param("value", var6));
         throw var19;
      }

      Object var8 = this.args.tool().get("Duration");
      int var9;
      if (var8 class="kw">instanceof Integer) {
         var9 = (Integer)var8;
      } else if (var8 class="kw">instanceof String) {
         try {
            var9 = Integer.parseInt((String)var8);
         } catch (NumberFormatException var18) {
            var3.sendMessage(Message.translation("server.builderTools.laserPointer.durationParseError").param("value", String.valueOf(var8)));
            throw var18;
         }
      } else {
         var9 = 300;
      }

      NetworkId var10 = var5.getComponent(var1, NetworkId.getComponentType());
      assert var10 != null;
      int var11 = var10.getId();
      Transform var12 = TargetUtil.getLook(var1, var5);
      Vector3d var13 = var12.getPosition();
      Vector3d var14 = var12.getDirection();
      Vector3d var15 = TargetUtil.getTargetLocation(var1, var0 -> var0 != 0, 128.0, var5);
      Vector3d var16 = var15 != null ? var15 : new Vector3d(var13).add(new Vector3d(var14).mul(128.0));
      BuilderToolLaserPointer var17 = new BuilderToolLaserPointer();
      var17.playerNetworkId = var11;
      var17.startX = (float)var13.x;
      var17.startY = (float)var13.y;
      var17.startZ = (float)var13.z;
      var17.endX = (float)var16.x;
      var17.endY = (float)var16.y;
      var17.endZ = (float)var16.z;
      var17.color = var7;
      var17.durationMs = var9;
      PlayerUtil.broadcastPacketToPlayers(var5, var17);
   }

   @Override
   class="kw">public boolean showEditNotification() {
      class="kw">return false;
   }

   @Override
   class="kw">public void execute(ComponentAccessor<EntityStore> var1) {
   }

   @Override
   class="kw">protected boolean executeBlock(int var1, int var2, int var3) {
      class="kw">return false;
   }
}