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