OverrideNearbyRespawnPointPage class

Пакет: com.hypixel.hytale.builtin.beds.respawn

Файл: com/hypixel/hytale/builtin/beds/respawn/OverrideNearbyRespawnPointPage.java

extends: RespawnPointPage

Поля (10)

МодификаторыТипИмя
String var10
PlayerRespawnPointData var11
Vector3i var12
int var13
double var14
String var4
HeadRotation var5
Player var5
PlayerRef var6
double var7

Методы (7)

МодификаторыВозвратСигнатура
for for(int var9 = 0; var9 < this.nearbyRespawnPoints.length; var9++)
public void handleDataEventvoid handleDataEvent(@Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2, @Nonnull RespawnPointPage.RespawnPointEventData var3)
if if(var5 != null)
if if(var6 != null)
if if(var4 != null)
if if(var5 != null)
abstract super super(var1, var2)

Исходный код

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

class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.protocol.InteractionType;
class="kw">import com.hypixel.hytale.protocol.packets.interface_.CustomUIEventBindingType;
class="kw">import com.hypixel.hytale.protocol.packets.interface_.Page;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.entity.entities.player.data.PlayerRespawnPointData;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.HeadRotation;
class="kw">import com.hypixel.hytale.server.core.ui.builder.EventData;
class="kw">import com.hypixel.hytale.server.core.ui.builder.UICommandBuilder;
class="kw">import com.hypixel.hytale.server.core.ui.builder.UIEventBuilder;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
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.Vector3i;

class="kw">public class OverrideNearbyRespawnPointPage class="kw">extends RespawnPointPage {
   @Nonnull
   class="kw">private class="kw">static class="kw">final String PAGE_OVERRIDE_NEARBY_SPAWN_POINT_PAGE = "Pages/OverrideNearbyRespawnPointPage.ui";
   @Nonnull
   class="kw">private class="kw">final Vector3i respawnPointPosition;
   @Nonnull
   class="kw">private class="kw">final Ref<ChunkStore> blockRef;
   @Nonnull
   class="kw">private class="kw">final PlayerRespawnPointData[] nearbyRespawnPoints;
   class="kw">private class="kw">final int radiusLimitRespawnPoint;

   class="kw">public OverrideNearbyRespawnPointPage(
      @Nonnull PlayerRef var1,
      @Nonnull InteractionType var2,
      @Nonnull Vector3i var3,
      @Nonnull Ref<ChunkStore> var4,
      @Nonnull PlayerRespawnPointData[] var5,
      int var6
   ) {
      super(var1, var2);
      this.respawnPointPosition = var3;
      this.blockRef = var4;
      this.nearbyRespawnPoints = var5;
      this.radiusLimitRespawnPoint = var6;
   }

   @Override
   class="kw">public void build(@Nonnull Ref<EntityStore> var1, @Nonnull UICommandBuilder var2, @Nonnull UIEventBuilder var3, @Nonnull Store<EntityStore> var4) {
      var2.append("Pages/OverrideNearbyRespawnPointPage.ui");
      HeadRotation var5 = var4.getComponent(var1, HeadRotation.getComponentType());
      if (var5 != null) {
         PlayerRef var6 = var4.getComponent(var1, PlayerRef.getComponentType());
         if (var6 != null) {
            double var7 = Math.toDegrees(var5.getRotation().yaw());
            var2.set(
               "#DescriptionLabel.Text",
               Message.translation("server.customUI.overrideNearbyRespawnPoint.label")
                  .param("respawnPointCount", this.nearbyRespawnPoints.length)
                  .param("minDistance", this.radiusLimitRespawnPoint)
            );

            for (int var9 = 0; var9 < this.nearbyRespawnPoints.length; var9++) {
               String var10 = "#RespawnPointList[" + var9 + "]";
               PlayerRespawnPointData var11 = this.nearbyRespawnPoints[var9];
               var2.append("#RespawnPointList", "Pages/OverrideRespawnPointButton.ui");
               var2.set(var10 + ".Disabled", true);
               var2.set(var10 + " #Name.Text", var11.getName());
               Vector3i var12 = var11.getBlockPosition();
               int var13 = (int)this.respawnPointPosition.distance(var12.x, this.respawnPointPosition.y, var12.z);
               var2.set(var10 + " #Distance.Text", Message.translation("server.customUI.respawnPointDistance").param("distance", var13));
               double var14 = Math.atan2(var12.z - this.respawnPointPosition.z, var12.x - this.respawnPointPosition.x);
               var2.set(var10 + " #Icon.Angle", Math.toDegrees(var14) + var7 + 90.0);
            }

            var2.set("#NameInput.Value", Message.translation("server.customUI.defaultRespawnPointName").param("name", var6.getUsername()));
            var3.addEventBinding(CustomUIEventBindingType.Activating, "#ConfirmButton", EventData.of("@RespawnPointName", "#NameInput.Value"));
            var3.addEventBinding(CustomUIEventBindingType.Activating, "#CancelButton", EventData.of("Action", "Cancel"));
         }
      }
   }

   class="kw">public void handleDataEvent(@Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2, @Nonnull RespawnPointPage.RespawnPointEventData var3) {
      String var4 = var3.getRespawnPointName();
      if (var4 != null) {
         this.setRespawnPointForPlayer(var1, var2, this.respawnPointPosition, this.blockRef, var4, this.nearbyRespawnPoints);
      } else if ("Cancel".equals(var3.getAction())) {
         Player var5 = var2.getComponent(var1, Player.getComponentType());
         if (var5 != null) {
            var5.getPageManager().setPage(var1, var2, Page.None);
         }
      }
   }
}