SelectOverrideRespawnPointPage class

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

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

extends: RespawnPointPage

Поля (12)

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

Методы (9)

МодификаторыВозвратСигнатура
for for(int var10 = 0; var10 < this.respawnPoints.length; var10++)
for for(int var3 = 0; var3 < this.respawnPoints.length; var3++)
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(this.selectedRespawnPointIndex == -1)
if if(var4 != null)
private void setSelectedRespawnPointvoid setSelectedRespawnPoint(@Nonnull RespawnPointPage.RespawnPointEventData var1)
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.Value;
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 SelectOverrideRespawnPointPage class="kw">extends RespawnPointPage {
   @Nonnull
   class="kw">private class="kw">static class="kw">final Message MESSAGE_SERVER_CUSTOM_UI_NEED_TO_SELECT_RESPAWN_POINT = Message.translation("server.customUI.needToSelectRespawnPoint");
   @Nonnull
   class="kw">private class="kw">static class="kw">final Value<String> DEFAULT_RESPAWN_BUTTON_STYLE = Value.ref("Pages/OverrideRespawnPointButton.ui", "DefaultRespawnButtonStyle");
   @Nonnull
   class="kw">private class="kw">static class="kw">final Value<String> SELECTED_RESPAWN_BUTTON_STYLE = Value.ref("Pages/OverrideRespawnPointButton.ui", "SelectedRespawnButtonStyle");
   @Nonnull
   class="kw">private class="kw">static class="kw">final String PAGE_SELECT_OVERRIDE_RESPAWN_POINT_PAGE = "Pages/SelectOverrideRespawnPointPage.ui";
   @Nonnull
   class="kw">private class="kw">final Vector3i respawnPointToAddPosition;
   @Nonnull
   class="kw">private class="kw">final Ref<ChunkStore> blockRef;
   @Nonnull
   class="kw">private class="kw">final PlayerRespawnPointData[] respawnPoints;
   class="kw">private int selectedRespawnPointIndex = -1;

   class="kw">public SelectOverrideRespawnPointPage(
      @Nonnull PlayerRef var1, @Nonnull InteractionType var2, @Nonnull Vector3i var3, @Nonnull Ref<ChunkStore> var4, @Nonnull PlayerRespawnPointData[] var5
   ) {
      super(var1, var2);
      this.respawnPointToAddPosition = var3;
      this.blockRef = var4;
      this.respawnPoints = var5;
   }

   @Override
   class="kw">public void build(@Nonnull Ref<EntityStore> var1, @Nonnull UICommandBuilder var2, @Nonnull UIEventBuilder var3, @Nonnull Store<EntityStore> var4) {
      var2.append("Pages/SelectOverrideRespawnPointPage.ui");
      var2.clear("#RespawnPointList");
      PlayerRef var5 = var4.getComponent(var1, PlayerRef.getComponentType());
      if (var5 != null) {
         HeadRotation var6 = var4.getComponent(var1, HeadRotation.getComponentType());
         if (var6 != null) {
            float var7 = var6.getRotation().yaw();
            double var8 = Math.toDegrees(var7);

            for (int var10 = 0; var10 < this.respawnPoints.length; var10++) {
               String var11 = "#RespawnPointList[" + var10 + "]";
               PlayerRespawnPointData var12 = this.respawnPoints[var10];
               var2.append("#RespawnPointList", "Pages/OverrideRespawnPointButton.ui");
               var2.set(var11 + " #Name.Text", var12.getName());
               Vector3i var13 = var12.getBlockPosition();
               int var14 = (int)this.respawnPointToAddPosition.distance(var13.x, this.respawnPointToAddPosition.y, var13.z);
               var2.set(var11 + " #Distance.Text", Message.translation("server.customUI.respawnPointDistance").param("distance", var14));
               double var15 = Math.atan2(var13.z - this.respawnPointToAddPosition.z, var13.x - this.respawnPointToAddPosition.x);
               var2.set(var11 + " #Icon.Angle", Math.toDegrees(var15) + var8 + 90.0);
               var3.addEventBinding(CustomUIEventBindingType.Activating, var11, EventData.of("Index", Integer.toString(var10)), false);
            }

            var2.set("#NameInput.Value", Message.translation("server.customUI.defaultRespawnPointName").param("name", var5.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) {
      if (var3.getIndex() != -1) {
         this.setSelectedRespawnPoint(var3);
         this.sendUpdate();
      } else if (var3.getRespawnPointName() != null) {
         if (this.selectedRespawnPointIndex == -1) {
            this.displayError(MESSAGE_SERVER_CUSTOM_UI_NEED_TO_SELECT_RESPAWN_POINT);
            class="kw">return;
         }

         this.setRespawnPointForPlayer(
            var1, var2, this.respawnPointToAddPosition, this.blockRef, var3.getRespawnPointName(), this.respawnPoints[this.selectedRespawnPointIndex]
         );
      } else if ("Cancel".equals(var3.getAction())) {
         Player var4 = var2.getComponent(var1, Player.getComponentType());
         if (var4 != null) {
            var4.getPageManager().setPage(var1, var2, Page.None);
         }
      }
   }

   class="kw">private void setSelectedRespawnPoint(@Nonnull RespawnPointPage.RespawnPointEventData var1) {
      this.selectedRespawnPointIndex = var1.getIndex();
      UICommandBuilder var2 = new UICommandBuilder();

      for (int var3 = 0; var3 < this.respawnPoints.length; var3++) {
         var2.set("#RespawnPointList[" + var3 + "].Style", DEFAULT_RESPAWN_BUTTON_STYLE);
      }

      var2.set("#RespawnPointList[" + this.selectedRespawnPointIndex + "].Style", SELECTED_RESPAWN_BUTTON_STYLE);
      this.sendUpdate(var2, null, false);
   }
}