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);
}
}