EntityFilterStandingOnBlock class

Пакет: com.hypixel.hytale.server.npc.corecomponents.entity.filters

Файл: com/hypixel/hytale/server/npc/corecomponents/entity/filters/EntityFilterStandingOnBlock.java

extends: EntityFilterBase

Поля (18)

МодификаторыТипИмя
final int COST
Store var10
Vector3d var11
int var12
int var13
int var14
BlockSection var15
var15
var15
Ref var16
Role var17
MotionController var18
int var19
NPCEntity var5
TransformComponent var6
Ref var7
World var8
ChunkStore var9

Методы (2)

МодификаторыВозвратСигнатура
if if(var5 != null)
if if(var15 == null)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.corecomponents.entity.filters;

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.math.util.ChunkUtil;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.server.core.modules.blockset.BlockSetModule;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
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.storage.ChunkStore;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderSupport;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.EntityFilterBase;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.entity.filters.builders.BuilderEntityFilterStandingOnBlock;
class="kw">import com.hypixel.hytale.server.npc.entities.NPCEntity;
class="kw">import com.hypixel.hytale.server.npc.instructions.ExecutionSupport;
class="kw">import com.hypixel.hytale.server.npc.movement.controllers.MotionController;
class="kw">import com.hypixel.hytale.server.npc.role.Role;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;

class="kw">public class EntityFilterStandingOnBlock class="kw">extends EntityFilterBase {
   class="kw">public class="kw">static class="kw">final int COST = 300;
   @Nullable
   class="kw">protected class="kw">static class="kw">final ComponentType<EntityStore, NPCEntity> NPC_COMPONENT_TYPE = NPCEntity.getComponentType();
   @Nonnull
   class="kw">protected class="kw">static class="kw">final ComponentType<EntityStore, TransformComponent> TRANSFORM_COMPONENT_TYPE = TransformComponent.getComponentType();
   class="kw">protected class="kw">final int blockSet;

   class="kw">public EntityFilterStandingOnBlock(@Nonnull BuilderEntityFilterStandingOnBlock var1, @Nonnull BuilderSupport var2) {
      this.blockSet = var1.getBlockSet(var2);
   }

   @Override
   class="kw">public boolean matchesEntity(
      @Nonnull Ref<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull ExecutionSupport var3, @Nonnull Store<EntityStore> var4
   ) {
      NPCEntity var5 = var4.getComponent(var2, NPC_COMPONENT_TYPE);
      if (var5 != null) {
         Role var17 = var5.getRole();
         assert var17 != null;
         MotionController var18 = var17.getActiveMotionController();
         class="kw">return var18.standingOnBlockOfType(this.blockSet);
      }

      TransformComponent var6 = var4.getComponent(var2, TRANSFORM_COMPONENT_TYPE);
      assert var6 != null;
      Ref var7 = var6.getSectionRef();
      if (var7 != null && var7.isValid()) {
         World var8 = var4.getExternalData().getWorld();
         ChunkStore var9 = var8.getChunkStore();
         Store var10 = var9.getStore();
         Vector3d var11 = var6.getPosition();
         int var12 = MathUtil.floor(var11.x);
         int var13 = MathUtil.floor(var11.y - 1.0);
         int var14 = MathUtil.floor(var11.z);
         BlockSection var15;
         if (ChunkUtil.chunkCoordinate(var13) != ChunkUtil.chunkCoordinate(MathUtil.floor(var11.y))) {
            Ref var16 = var9.getChunkSectionReferenceAtBlock(var12, var13, var14);
            if (var16 == null || !var16.isValid()) {
               class="kw">return false;
            }

            var15 = var10.getComponent(var16, BlockSection.getComponentType());
         } else {
            var15 = var10.getComponent(var7, BlockSection.getComponentType());
         }

         if (var15 == null) {
            class="kw">return false;
         }

         int var19 = var15.get(var12, var13, var14);
         class="kw">return BlockSetModule.getInstance().blockInSet(this.blockSet, var19);
      } else {
         class="kw">return false;
      }
   }

   @Override
   class="kw">public int cost() {
      class="kw">return 300;
   }
}