LaunchPadSettingsPage class

Пакет: com.hypixel.hytale.server.core.universe.world.meta.state

Файл: com/hypixel/hytale/server/core/universe/world/meta/state/LaunchPad.java

extends: InteractiveCustomUIPage<LaunchPad.LaunchPadSettingsPage.LaunchPadSettingsPageEventData>

Поля (16)

МодификаторыТипИмя
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
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

Методы (4)

МодификаторыВозвратСигнатура
public LaunchPadSettingsPageEventDatapublic LaunchPadSettingsPageEventData()
public void buildpublic void build(@Nonnull Ref<EntityStore> var1, @Nonnull UICommandBuilder var2, @Nonnull UIEventBuilder var3, @Nonnull Store<EntityStore> var4)
public void handleDataEventpublic void handleDataEvent(@Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2, @Nonnull LaunchPad.LaunchPadSettingsPage.LaunchPadSettingsPageEventData var3)
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() {
         }
      }
   }
}