FitsAPortal class

Пакет: com.hypixel.hytale.builtin.portals.utils.posqueries.predicates

Файл: com/hypixel/hytale/builtin/portals/utils/posqueries/predicates/FitsAPortal.java

implements: PositionPredicate

Поля (13)

МодификаторыТипИмя
Vector3i var12
long var13
WorldChunk var15
Ref var16
Store var17
ChunkColumn var18
BlockChunk var19
ChunkStore var2
int var20
BlockSection var21
int var22
BlockType var23
BlockMaterial var24

Методы (10)

МодификаторыВозвратСигнатура
static boolean checkboolean check(@Nonnull World var0, @Nonnull Vector3d var1)
abstract return checkreturn check(var1, var2)
for for(int var6 : THREES)
for for(int var10 : THREES)
for for(int var11 = -1; var11 <= 3; var11++)
if if(var15 == null)
if if(var18 == null)
if if(var19 == null)
if if(var20 != 0)
if if(var23 == null)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.portals.utils.posqueries.predicates;

class="kw">import com.hypixel.hytale.builtin.portals.utils.posqueries.PositionPredicate;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.util.ChunkUtil;
class="kw">import com.hypixel.hytale.math.vector.Vector3dUtil;
class="kw">import com.hypixel.hytale.protocol.BlockMaterial;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType;
class="kw">import com.hypixel.hytale.server.core.modules.collision.WorldUtil;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.BlockChunk;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.ChunkColumn;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.WorldChunk;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.section.BlockSection;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3i;

class="kw">public class FitsAPortal class="kw">implements PositionPredicate {
   @Nonnull
   class="kw">private class="kw">static class="kw">final int[] THREES = new int[]{-1, 0, 1};

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

   @Override
   class="kw">public boolean test(@Nonnull World var1, @Nonnull Vector3d var2) {
      class="kw">return check(var1, var2);
   }

   class="kw">public class="kw">static boolean check(@Nonnull World var0, @Nonnull Vector3d var1) {
      ChunkStore var2 = var0.getChunkStore();

      for (int var6 : THREES) {
         for (int var10 : THREES) {
            for (int var11 = -1; var11 <= 3; var11++) {
               Vector3i var12 = Vector3dUtil.toVector3i(var1).add(var6, var11, var10);
               long var13 = ChunkUtil.indexChunkFromBlock(var12.x, var12.z);
               WorldChunk var15 = var0.getChunk(var13);
               if (var15 == null) {
                  class="kw">return false;
               }

               Ref var16 = var15.getReference();
               if (var16 == null || !var16.isValid()) {
                  class="kw">return false;
               }

               Store var17 = var2.getStore();
               ChunkColumn var18 = var17.getComponent(var16, ChunkColumn.getComponentType());
               if (var18 == null) {
                  class="kw">return false;
               }

               BlockChunk var19 = var17.getComponent(var16, BlockChunk.getComponentType());
               if (var19 == null) {
                  class="kw">return false;
               }

               int var20 = WorldUtil.getFluidIdAtPosition(var17, var18, var12.x, var12.y, var12.z);
               if (var20 != 0) {
                  class="kw">return false;
               }

               BlockSection var21 = var19.getSectionAtBlockY(var12.y);
               int var22 = var21.get(var12.x, var12.y, var12.z);
               BlockType var23 = BlockType.getAssetMap().getAsset(var22);
               if (var23 == null) {
                  class="kw">return false;
               }

               BlockMaterial var24 = var11 < 0 ? BlockMaterial.Solid : BlockMaterial.Empty;
               if (var23.getMaterial() != var24) {
                  class="kw">return false;
               }
            }
         }
      }

      class="kw">return true;
   }
}