CreateWarpWhenTeleporterPlacedSystem class

Пакет: com.hypixel.hytale.builtin.adventure.teleporter.system

Файл: com/hypixel/hytale/builtin/adventure/teleporter/system/CreateWarpWhenTeleporterPlacedSystem.java

extends: RefChangeSystem<ChunkStore, PlacedByInteractionComponent>

Поля (26)

МодификаторыТипИмя
String var10
int var10
BlockModule.BlockStateInfo var11
int var11
Ref var12
BlockSection var12
String var13
int var13
Teleporter var14
RotationTuple var14
Rotation var15
float var16
Vector3d var17
Transform var18
Warp var19
ChunkSection var4
World var5
int var5
EntityStore var6
int var6
UUID var7
int var7
Ref var8
int var8
PlayerRef var9
int var9

Методы (8)

МодификаторыВозвратСигнатура
static void createWarpvoid createWarp(@Nonnull ComponentAccessor<ChunkStore> var0, @Nonnull Ref<ChunkStore> var1, @Nonnull BlockModule.BlockStateInfo var2, @Nonnull String var3)
abstract createWarp createWarp(var4, var12, var11, var13)
if if(var10 != null)
if if(var13 != null)
if if(var12 != null)
public void onComponentAddedvoid onComponentAdded(@Nonnull Ref<ChunkStore> var1, @Nonnull PlacedByInteractionComponent var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4)
public void onComponentRemovedvoid onComponentRemoved(@Nonnull Ref<ChunkStore> var1, @Nonnull PlacedByInteractionComponent var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4)
public void onComponentSetvoid onComponentSet(@Nonnull Ref<ChunkStore> var1, @Nullable PlacedByInteractionComponent var2, @Nonnull PlacedByInteractionComponent var3, @Nonnull Store<ChunkStore> var4, @Nonnull CommandBuffer<ChunkStore> var5)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.adventure.teleporter.system;

class="kw">import com.hypixel.hytale.builtin.adventure.teleporter.component.Teleporter;
class="kw">import com.hypixel.hytale.builtin.adventure.teleporter.util.CannedWarpNames;
class="kw">import com.hypixel.hytale.builtin.teleport.TeleportPlugin;
class="kw">import com.hypixel.hytale.builtin.teleport.Warp;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
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.component.query.Query;
class="kw">import com.hypixel.hytale.component.system.RefChangeSystem;
class="kw">import com.hypixel.hytale.math.util.ChunkUtil;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
class="kw">import com.hypixel.hytale.math.vector.Transform;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.Rotation;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.RotationTuple;
class="kw">import com.hypixel.hytale.server.core.modules.block.BlockModule;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.components.PlacedByInteractionComponent;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.section.BlockSection;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.section.ChunkSection;
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 java.time.Instant;
class="kw">import java.util.UUID;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;

class="kw">public class CreateWarpWhenTeleporterPlacedSystem class="kw">extends RefChangeSystem<ChunkStore, PlacedByInteractionComponent> {
   @Nonnull
   class="kw">private class="kw">final ComponentType<ChunkStore, PlacedByInteractionComponent> placedByInteractionComponentType;
   @Nonnull
   class="kw">private class="kw">final ComponentType<ChunkStore, Teleporter> teleporterComponentType;
   @Nonnull
   class="kw">private class="kw">final ComponentType<ChunkStore, BlockModule.BlockStateInfo> blockStateInfoComponentType;
   @Nonnull
   class="kw">private class="kw">final ComponentType<EntityStore, PlayerRef> playerRefComponentType;
   @Nonnull
   class="kw">private class="kw">final Query<ChunkStore> query;

   class="kw">public CreateWarpWhenTeleporterPlacedSystem(
      @Nonnull ComponentType<ChunkStore, PlacedByInteractionComponent> var1,
      @Nonnull ComponentType<ChunkStore, Teleporter> var2,
      @Nonnull ComponentType<ChunkStore, BlockModule.BlockStateInfo> var3,
      @Nonnull ComponentType<EntityStore, PlayerRef> var4
   ) {
      this.placedByInteractionComponentType = var1;
      this.teleporterComponentType = var2;
      this.blockStateInfoComponentType = var3;
      this.playerRefComponentType = var4;
      this.query = Query.and(var1, var2, var3);
   }

   class="kw">public void onComponentAdded(
      @Nonnull Ref<ChunkStore> var1, @Nonnull PlacedByInteractionComponent var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4
   ) {
      World var5 = var3.getExternalData().getWorld();
      EntityStore var6 = var5.getEntityStore();
      UUID var7 = var2.getWhoPlacedUuid();
      Ref var8 = var6.getRefFromUUID(var7);
      if (var8 != null && var8.isValid()) {
         PlayerRef var9 = var6.getStore().getComponent(var8, this.playerRefComponentType);
         String var10 = var9 == null ? null : var9.getLanguage();
         if (var10 != null) {
            BlockModule.BlockStateInfo var11 = var4.getComponent(var1, this.blockStateInfoComponentType);
            assert var11 != null;
            Ref var12 = var11.getSectionRef();
            if (var12.isValid()) {
               String var13 = CannedWarpNames.generateCannedWarpName(var1, var10);
               if (var13 != null) {
                  createWarp(var4, var12, var11, var13);
                  Teleporter var14 = var4.getComponent(var1, this.teleporterComponentType);
                  assert var14 != null;
                  var14.setOwnedWarp(var13);
               }
            }
         }
      }
   }

   class="kw">public class="kw">static void createWarp(
      @Nonnull ComponentAccessor<ChunkStore> var0, @Nonnull Ref<ChunkStore> var1, @Nonnull BlockModule.BlockStateInfo var2, @Nonnull String var3
   ) {
      ChunkSection var4 = var0.getComponent(var1, ChunkSection.getComponentType());
      assert var4 != null;
      int var5 = var4.getX() << 5;
      int var6 = var4.getY() << 5;
      int var7 = var4.getZ() << 5;
      int var8 = var2.getIndex();
      int var9 = var5 + ChunkUtil.xFromIndex(var8);
      int var10 = var6 + ChunkUtil.yFromIndex(var8);
      int var11 = var7 + ChunkUtil.zFromIndex(var8);
      BlockSection var12 = var0.getComponent(var1, BlockSection.getComponentType());
      if (var12 != null) {
         int var13 = var12.getRotationIndex(var9, var10, var11);
         RotationTuple var14 = RotationTuple.get(var13);
         Rotation var15 = var14.yaw();
         float var16 = (float)var15.getRadians() + (float)Math.toRadians(180.0);
         Vector3d var17 = new Vector3d(var9, var10, var11).add(0.5, 0.65, 0.5);
         Transform var18 = new Transform(var17, new Rotation3f(Float.NaN, var16, Float.NaN));
         Warp var19 = new Warp(var18, var3, var0.getExternalData().getWorld(), "*Teleporter", Instant.now());
         TeleportPlugin.get().addWarp(var19, false);
      }
   }

   class="kw">public void onComponentSet(
      @Nonnull Ref<ChunkStore> var1,
      @Nullable PlacedByInteractionComponent var2,
      @Nonnull PlacedByInteractionComponent var3,
      @Nonnull Store<ChunkStore> var4,
      @Nonnull CommandBuffer<ChunkStore> var5
   ) {
   }

   class="kw">public void onComponentRemoved(
      @Nonnull Ref<ChunkStore> var1, @Nonnull PlacedByInteractionComponent var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4
   ) {
   }

   @Nonnull
   @Override
   class="kw">public ComponentType<ChunkStore, PlacedByInteractionComponent> componentType() {
      class="kw">return this.placedByInteractionComponentType;
   }

   @Nonnull
   @Override
   class="kw">public Query<ChunkStore> getQuery() {
      class="kw">return this.query;
   }
}