BlockConsumer interface

Пакет: com.hypixel.hytale.server.core.modules.interaction.interaction.config.selector

Файл: com/hypixel/hytale/server/core/modules/interaction/interaction/config/selector/Selector.java

Методы (1)

МодификаторыВозвратСигнатура
abstract void acceptvoid accept(int var1, int var2, int var3, int var4, int var5, int var6)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.interaction.interaction.config.selector;

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.spatial.SpatialResource;
class="kw">import com.hypixel.hytale.function.consumer.TriIntConsumer;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.server.core.modules.entity.EntityModule;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.ModelComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.List;
class="kw">import java.util.function.BiConsumer;
class="kw">import java.util.function.Consumer;
class="kw">import java.util.function.Predicate;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector4d;

class="kw">public class="kw">interface Selector {
   class="kw">static void selectNearbyBlocks(double var0, double var2, double var4, double var6, @Nonnull TriIntConsumer var8) {
      int var9 = MathUtil.floor(var0 - var6);
      int var10 = MathUtil.floor(var2 - var6);
      int var11 = MathUtil.floor(var4 - var6);
      int var12 = MathUtil.floor(var0 + var6);
      int var13 = MathUtil.floor(var2 + var6);
      int var14 = MathUtil.floor(var4 + var6);

      for (int var15 = var9; var15 < var12; var15++) {
         for (int var16 = var10; var16 < var13; var16++) {
            for (int var17 = var11; var17 < var14; var17++) {
               var8.accept(var15, var16, var17);
            }
         }
      }
   }

   class="kw">static void selectNearbyEntities(
      @Nonnull CommandBuffer<EntityStore> var0,
      @Nonnull Ref<EntityStore> var1,
      double var2,
      @Nonnull Consumer<Ref<EntityStore>> var4,
      @Nonnull Predicate<Ref<EntityStore>> var5
   ) {
      TransformComponent var6 = var0.getComponent(var1, TransformComponent.getComponentType());
      assert var6 != null;
      Vector3d var7 = var6.getPosition();
      float var8 = ModelComponent.getEyeHeight(var1, var0);
      Vector3d var9 = new Vector3d(var7).add(0.0, var8, 0.0);
      selectNearbyEntities(var0, var9, var2, var4, var5);
   }

   class="kw">static void selectNearbyEntities(
      @Nonnull ComponentAccessor<EntityStore> var0,
      @Nonnull Vector3d var1,
      double var2,
      @Nonnull Consumer<Ref<EntityStore>> var4,
      @Nullable Predicate<Ref<EntityStore>> var5
   ) {
      List var6 = SpatialResource.getThreadLocalReferenceList();
      SpatialResource var7 = var0.getResource(EntityModule.get().getPlayerSpatialResourceType());
      var7.getSpatialStructure().collect(var1, var2, var6);
      SpatialResource var8 = var0.getResource(EntityModule.get().getEntitySpatialResourceType());
      var8.getSpatialStructure().collect(var1, var2, var6);
      SpatialResource var9 = var0.getResource(EntityModule.get().getItemSpatialResourceType());
      var9.getSpatialStructure().collect(var1, var2, var6);

      for (Ref var11 : var6) {
         if (var11 != null && var11.isValid() && (var5 == null || var5.test(var11))) {
            var4.accept(var11);
         }
      }
   }

   void tick(@Nonnull CommandBuffer<EntityStore> var1, @Nonnull Ref<EntityStore> var2, float var3, float var4);

   void selectTargetEntities(
      @Nonnull CommandBuffer<EntityStore> var1, @Nonnull Ref<EntityStore> var2, BiConsumer<Ref<EntityStore>, Vector4d> var3, Predicate<Ref<EntityStore>> var4
   );

   void selectTargetBlocks(@Nonnull CommandBuffer<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull Selector.BlockConsumer var3);

   @FunctionalInterface
   class="kw">interface BlockConsumer {
      void accept(int var1, int var2, int var3, int var4, int var5, int var6);
   }
}