TurnOffTeleportersSystem class

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

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

extends: RefSystem<ChunkStore>

Поля (18)

МодификаторыТипИмя
final Query<ChunkStore> QUERY
Store var1
BlockType var10
String var11
Warp var12
String var13
String var14
AndQuery var2
Teleporter var2
Ref var3
BlockModule.BlockStateInfo var3
Ref var3
BlockSection var4
ChunkSection var5
int var6
int var7
int var8
int var9

Методы (12)

МодификаторыВозвратСигнатура
abstract for for(int var2 = 0; var2 < var0x.size()
if if(var2 == AddReason.LOAD)
if if(var2 == RemoveReason.REMOVE)
if if(var4 != null)
if if(var5 != null)
if if(var10 != null)
if if(var12 == null)
static void updatePortalBlockInWorldvoid updatePortalBlockInWorld(Ref<ChunkStore> var0, ComponentAccessor<ChunkStore> var1)
static void updatePortalBlockInWorldvoid updatePortalBlockInWorld(ComponentAccessor<ChunkStore> var0, Teleporter var1, BlockModule.BlockStateInfo var2)
abstract updatePortalBlockInWorld updatePortalBlockInWorld(var3, var1x)
abstract updatePortalBlockInWorld updatePortalBlockInWorld(var1, var2, var3)
static void updatePortalBlocksInWorldvoid updatePortalBlocksInWorld(World var0)

Исходный код

Показать/скрыть
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.teleport.TeleportPlugin;
class="kw">import com.hypixel.hytale.builtin.teleport.Warp;
class="kw">import com.hypixel.hytale.component.AddReason;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.RemoveReason;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.component.query.AndQuery;
class="kw">import com.hypixel.hytale.component.query.Query;
class="kw">import com.hypixel.hytale.component.system.RefSystem;
class="kw">import com.hypixel.hytale.math.util.ChunkUtil;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType;
class="kw">import com.hypixel.hytale.server.core.modules.block.BlockModule;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.BlockOperations;
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 java.util.Locale;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.checkerframework.checker.nullness.compatqual.NullableDecl;

class="kw">public class TurnOffTeleportersSystem class="kw">extends RefSystem<ChunkStore> {
   class="kw">public class="kw">static class="kw">final Query<ChunkStore> QUERY = Query.and(Teleporter.getComponentType(), BlockModule.BlockStateInfo.getComponentType());

   class="kw">public TurnOffTeleportersSystem() {
   }

   @Override
   class="kw">public void onEntityAdded(@Nonnull Ref<ChunkStore> var1, @Nonnull AddReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4) {
      if (var2 == AddReason.LOAD) {
         updatePortalBlocksInWorld(var3.getExternalData().getWorld());
      }
   }

   @Override
   class="kw">public void onEntityRemove(
      @Nonnull Ref<ChunkStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4
   ) {
      if (var2 == RemoveReason.REMOVE) {
         updatePortalBlocksInWorld(var3.getExternalData().getWorld());
      }
   }

   class="kw">public class="kw">static void updatePortalBlocksInWorld(World var0) {
      Store var1 = var0.getChunkStore().getStore();
      AndQuery var2 = Query.and(Teleporter.getComponentType(), BlockModule.BlockStateInfo.getComponentType());
      var1.forEachChunk(var2, (var0x, var1x) -> {
         for (int var2 = 0; var2 < var0x.size(); var2++) {
            Ref var3 = var0x.getReferenceTo(var2);
            updatePortalBlockInWorld(var3, var1x);
         }
      });
   }

   class="kw">private class="kw">static void updatePortalBlockInWorld(Ref<ChunkStore> var0, ComponentAccessor<ChunkStore> var1) {
      if (var0.isValid()) {
         Teleporter var2 = var1.getComponent(var0, Teleporter.getComponentType());
         BlockModule.BlockStateInfo var3 = var1.getComponent(var0, BlockModule.BlockStateInfo.getComponentType());
         updatePortalBlockInWorld(var1, var2, var3);
      }
   }

   class="kw">public class="kw">static void updatePortalBlockInWorld(ComponentAccessor<ChunkStore> var0, Teleporter var1, BlockModule.BlockStateInfo var2) {
      Ref var3 = var2.getSectionRef();
      if (var3.isValid()) {
         BlockSection var4 = var0.getComponent(var3, BlockSection.getComponentType());
         if (var4 != null) {
            ChunkSection var5 = var0.getComponent(var3, ChunkSection.getComponentType());
            if (var5 != null) {
               int var6 = var2.getIndex();
               int var7 = ChunkUtil.worldCoordFromLocalCoord(var5.getX(), ChunkUtil.xFromIndex(var6));
               int var8 = ChunkUtil.worldCoordFromLocalCoord(var5.getY(), ChunkUtil.yFromIndex(var6));
               int var9 = ChunkUtil.worldCoordFromLocalCoord(var5.getZ(), ChunkUtil.zFromIndex(var6));
               BlockType var10 = BlockType.getAssetMap().getAsset(var4.get(var6));
               if (var10 != null) {
                  String var11 = var1.getWarp();
                  Warp var12 = var11 == null ? null : TeleportPlugin.get().getWarps().get(var11.toLowerCase(Locale.ROOT));
                  String var13 = var10.getStateForBlock(var10);
                  String var14 = var12 == null ? "class="kw">default" : "Active";
                  if (!var14.equals(var13)) {
                     BlockOperations.setBlockInteractionState(var0.getExternalData(), var3, var7, var8, var9, var10, var14, false);
                     var2.markNeedsSaving(var0);
                  }

                  if (var12 == null) {
                     var1.setWarp(null);
                     var2.markNeedsSaving(var0);
                  }
               }
            }
         }
      }
   }

   @NullableDecl
   @Override
   class="kw">public Query<ChunkStore> getQuery() {
      class="kw">return QUERY;
   }
}