LaunchPad class
Пакет: com.hypixel.hytale.server.core.universe.world.meta.state
Файл: com/hypixel/hytale/server/core/universe/world/meta/state/LaunchPad.java
implements: Component<ChunkStore>
Поля (17)
| Модификаторы | Тип | Имя |
|---|---|---|
|
public static final BuilderCodec<LaunchPad.LaunchPadSettingsPage.LaunchPadSettingsPageEventData> |
CODEC |
|
public static final String |
KEY_PLAYERS_ONLY |
|
public static final String |
KEY_X |
|
public static final String |
KEY_Y |
|
public static final String |
KEY_Z |
final |
int |
MAX_VELOCITY |
|
private boolean |
playersOnly |
|
private final Ref<ChunkStore> |
ref |
|
ChunkStore |
var4 |
|
ChunkStore |
var5 |
|
LaunchPad |
var5 |
|
LaunchPad |
var6 |
|
BlockModule.BlockStateInfo |
var6 |
|
Player |
var7 |
|
private double |
x |
|
private double |
y |
|
private double |
z |
Методы (10)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public |
LaunchPadSettingsPagepublic LaunchPadSettingsPage(@Nonnull PlayerRef var1, Ref<ChunkStore> var2, @Nonnull CustomPageLifetime var3) |
|
public |
LaunchPadSettingsPageEventDatapublic LaunchPadSettingsPageEventData() |
|
public void |
buildpublic void build(@Nonnull Ref<EntityStore> var1, @Nonnull UICommandBuilder var2, @Nonnull UIEventBuilder var3, @Nonnull Store<EntityStore> var4) |
static |
float |
clampVelocityfloat clampVelocity(float var0) |
public |
float |
getVelocityXfloat getVelocityX() |
public |
float |
getVelocityYfloat getVelocityY() |
public |
float |
getVelocityZfloat getVelocityZ() |
|
public void |
handleDataEventpublic void handleDataEvent(@Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2, @Nonnull LaunchPad.LaunchPadSettingsPage.LaunchPadSettingsPageEventData var3) |
public |
boolean |
isPlayersOnlyboolean isPlayersOnly() |
abstract |
|
super super(var1, var3, LaunchPad.LaunchPadSettingsPage.LaunchPadSettingsPageEventData.CODEC) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.universe.world.meta.state;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.component.Component;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime;
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.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.entity.entities.player.pages.InteractiveCustomUIPage;
class="kw">import com.hypixel.hytale.server.core.modules.block.BlockModule;
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 javax.annotation.Nullable;
class="kw">public class LaunchPad class="kw">implements Component<ChunkStore> {
class="kw">private class="kw">static class="kw">final int MAX_VELOCITY = 50000;
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<LaunchPad> CODEC = BuilderCodec.builder(LaunchPad.class, LaunchPad::new)
.append(new KeyedCodec<>("VelocityX", Codec.DOUBLE), (var0, var1) -> var0.velocityX = var1.floatValue(), var0 -> (double)var0.velocityX)
.documentation("The X velocity of the launch pad.")
.add()
.<Double>append(new KeyedCodec<>("VelocityY", Codec.DOUBLE), (var0, var1) -> var0.velocityY = var1.floatValue(), var0 -> (double)var0.velocityY)
.documentation("The Y velocity of the launch pad.")
.add()
.<Double>append(new KeyedCodec<>("VelocityZ", Codec.DOUBLE), (var0, var1) -> var0.velocityZ = var1.floatValue(), var0 -> (double)var0.velocityZ)
.documentation("The Z velocity of the launch pad.")
.add()
.<Boolean>append(new KeyedCodec<>("PlayersOnly", Codec.BOOLEAN), (var0, var1) -> var0.playersOnly = var1, var0 -> var0.playersOnly)
.documentation("Determines whether only players can use this launch pad.")
.add()
.build();
class="kw">private float velocityX;
class="kw">private float velocityY;
class="kw">private float velocityZ;
class="kw">private boolean playersOnly;
@Nonnull
class="kw">public class="kw">static ComponentType<ChunkStore, LaunchPad> getComponentType() {
class="kw">return BlockModule.get().getLaunchPadComponentType();
}
class="kw">public LaunchPad() {
}
class="kw">public LaunchPad(float var1, float var2, float var3, boolean var4) {
this.velocityX = var1;
this.velocityY = var2;
this.velocityZ = var3;
this.playersOnly = var4;
}
class="kw">public float getVelocityX() {
class="kw">return this.velocityX;
}
class="kw">public float getVelocityY() {
class="kw">return this.velocityY;
}
class="kw">public float getVelocityZ() {
class="kw">return this.velocityZ;
}
class="kw">public boolean isPlayersOnly() {
class="kw">return this.playersOnly;
}
class="kw">private class="kw">static float clampVelocity(float var0) {
class="kw">return Math.max(Math.min(var0, 50000.0F), -50000.0F);
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "LaunchPad{velocityX="
+ this.velocityX
+ ", velocityY="
+ this.velocityY
+ ", velocityZ="
+ this.velocityZ
+ ", playersOnly="
+ this.playersOnly
+ "}";
}
@Nullable
@Override
class="kw">public Component<ChunkStore> clone() {
class="kw">return new LaunchPad(this.velocityX, this.velocityY, this.velocityZ, this.playersOnly);
}
class="kw">public class="kw">static class LaunchPadSettingsPage class="kw">extends InteractiveCustomUIPage<LaunchPad.LaunchPadSettingsPage.LaunchPadSettingsPageEventData> {
class="kw">private class="kw">final Ref<ChunkStore> ref;
class="kw">public LaunchPadSettingsPage(@Nonnull PlayerRef var1, Ref<ChunkStore> var2, @Nonnull CustomPageLifetime var3) {
super(var1, var3, LaunchPad.LaunchPadSettingsPage.LaunchPadSettingsPageEventData.CODEC);
this.ref = var2;
}
@Override
class="kw">public void build(@Nonnull Ref<EntityStore> var1, @Nonnull UICommandBuilder var2, @Nonnull UIEventBuilder var3, @Nonnull Store<EntityStore> var4) {
var2.append("Pages/LaunchPadSettingsPage.ui");
ChunkStore var5 = var4.getExternalData().getWorld().getChunkStore();
LaunchPad var6 = var5.getStore().getComponent(this.ref, LaunchPad.getComponentType());
var2.set("#VelocityX.Value", var6.velocityX);
var2.set("#VelocityY.Value", var6.velocityY);
var2.set("#VelocityZ.Value", var6.velocityZ);
var2.set("#PlayersOnlyContainer #CheckBox.Value", var6.playersOnly);
var3.addEventBinding(
CustomUIEventBindingType.Activating,
"#SaveButton",
new EventData()
.append("@X", "#VelocityX.Value")
.append("@Y", "#VelocityY.Value")
.append("@Z", "#VelocityZ.Value")
.append("@PlayersOnly", "#PlayersOnlyContainer #CheckBox.Value")
);
}
class="kw">public void handleDataEvent(
@Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2, @Nonnull LaunchPad.LaunchPadSettingsPage.LaunchPadSettingsPageEventData var3
) {
ChunkStore var4 = var2.getExternalData().getWorld().getChunkStore();
LaunchPad var5 = var4.getStore().getComponent(this.ref, LaunchPad.getComponentType());
assert var5 != null;
BlockModule.BlockStateInfo var6 = var4.getStore().getComponent(this.ref, BlockModule.BlockStateInfo.getComponentType());
assert var6 != null;
var5.velocityX = LaunchPad.clampVelocity((float)var3.x);
var5.velocityY = LaunchPad.clampVelocity((float)var3.y);
var5.velocityZ = LaunchPad.clampVelocity((float)var3.z);
var5.playersOnly = var3.playersOnly;
var6.markNeedsSaving();
Player var7 = var2.getComponent(var1, Player.getComponentType());
assert var7 != null;
var7.getPageManager().setPage(var1, var2, Page.None);
}
class="kw">public class="kw">static class LaunchPadSettingsPageEventData {
class="kw">public class="kw">static class="kw">final String KEY_X = "@X";
class="kw">public class="kw">static class="kw">final String KEY_Y = "@Y";
class="kw">public class="kw">static class="kw">final String KEY_Z = "@Z";
class="kw">public class="kw">static class="kw">final String KEY_PLAYERS_ONLY = "@PlayersOnly";
class="kw">public class="kw">static class="kw">final BuilderCodec<LaunchPad.LaunchPadSettingsPage.LaunchPadSettingsPageEventData> CODEC = BuilderCodec.builder(
LaunchPad.LaunchPadSettingsPage.LaunchPadSettingsPageEventData.class, LaunchPad.LaunchPadSettingsPage.LaunchPadSettingsPageEventData::new
)
.addField(new KeyedCodec<>("@X", Codec.DOUBLE), (var0, var1) -> var0.x = var1, var0 -> var0.x)
.addField(new KeyedCodec<>("@Y", Codec.DOUBLE), (var0, var1) -> var0.y = var1, var0 -> var0.y)
.addField(new KeyedCodec<>("@Z", Codec.DOUBLE), (var0, var1) -> var0.z = var1, var0 -> var0.z)
.addField(new KeyedCodec<>("@PlayersOnly", Codec.BOOLEAN), (var0, var1) -> var0.playersOnly = var1, var0 -> var0.playersOnly)
.build();
class="kw">private double x;
class="kw">private double y;
class="kw">private double z;
class="kw">private boolean playersOnly;
class="kw">public LaunchPadSettingsPageEventData() {
}
}
}
}