ObjectiveLocationAreaBox class

Пакет: com.hypixel.hytale.builtin.adventure.objectives.config.markerarea

Файл: com/hypixel/hytale/builtin/adventure/objectives/config/markerarea/ObjectiveLocationAreaBox.java

extends: ObjectiveLocationMarkerArea

Поля (5)

МодификаторыТипИмя
float var3
Box var4
Ref var5
Box var5
TransformComponent var6

Методы (7)

МодификаторыВозвратСигнатура
public Box getEntryAreaBox getEntryArea()
public Box getExitAreaBox getExitArea()
static void getPlayersInAreavoid getPlayersInArea(@Nonnull SpatialResource<Ref<EntityStore>, EntityStore> var0, @Nonnull List<Ref<EntityStore>> var1, @Nonnull Vector3d var2, @Nonnull Box var3)
abstract getPlayersInArea getPlayersInArea(var1, var2, var3, this.entryArea)
abstract getPlayersInArea getPlayersInArea(var1, var2, var3, this.exitArea)
if if(var5 == null)
abstract this this(DEFAULT_ENTRY_BOX, DEFAULT_EXIT_BOX)

Исходный код

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

class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.spatial.SpatialResource;
class="kw">import com.hypixel.hytale.math.shape.Box;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;

class="kw">public class ObjectiveLocationAreaBox class="kw">extends ObjectiveLocationMarkerArea {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<ObjectiveLocationAreaBox> CODEC = BuilderCodec.builder(ObjectiveLocationAreaBox.class, ObjectiveLocationAreaBox::new)
      .append(new KeyedCodec<>("EntryBox", Box.CODEC), (var0, var1) -> var0.entryArea = var1, var0 -> var0.entryArea)
      .addValidator(Validators.nonNull())
      .add()
      .<Box>append(new KeyedCodec<>("ExitBox", Box.CODEC), (var0, var1) -> var0.exitArea = var1, var0 -> var0.exitArea)
      .addValidator(Validators.nonNull())
      .add()
      .afterDecode(ObjectiveLocationAreaBox::computeAreaBoxes)
      .build();
   @Nonnull
   class="kw">private class="kw">static class="kw">final Box DEFAULT_ENTRY_BOX = new Box(-5.0, -5.0, -5.0, 5.0, 5.0, 5.0);
   @Nonnull
   class="kw">private class="kw">static class="kw">final Box DEFAULT_EXIT_BOX = new Box(-10.0, -10.0, -10.0, 10.0, 10.0, 10.0);
   class="kw">private Box entryArea;
   class="kw">private Box exitArea;

   class="kw">public ObjectiveLocationAreaBox(Box var1, Box var2) {
      this.entryArea = var1;
      this.exitArea = var2;
      this.computeAreaBoxes();
   }

   class="kw">protected ObjectiveLocationAreaBox() {
      this(DEFAULT_ENTRY_BOX, DEFAULT_EXIT_BOX);
   }

   class="kw">public Box getEntryArea() {
      class="kw">return this.entryArea;
   }

   class="kw">public Box getExitArea() {
      class="kw">return this.exitArea;
   }

   @Override
   class="kw">public void getPlayersInEntryArea(@Nonnull SpatialResource<Ref<EntityStore>, EntityStore> var1, @Nonnull List<Ref<EntityStore>> var2, @Nonnull Vector3d var3) {
      getPlayersInArea(var1, var2, var3, this.entryArea);
   }

   @Override
   class="kw">public void getPlayersInExitArea(@Nonnull SpatialResource<Ref<EntityStore>, EntityStore> var1, @Nonnull List<Ref<EntityStore>> var2, @Nonnull Vector3d var3) {
      getPlayersInArea(var1, var2, var3, this.exitArea);
   }

   @Override
   class="kw">public boolean hasPlayerInExitArea(
      @Nonnull SpatialResource<Ref<EntityStore>, EntityStore> var1,
      @Nonnull ComponentType<EntityStore, PlayerRef> var2,
      @Nonnull Vector3d var3,
      @Nonnull CommandBuffer<EntityStore> var4
   ) {
      Ref var5 = var1.getSpatialStructure().closest(var3);
      if (var5 == null) {
         class="kw">return false;
      }

      TransformComponent var6 = var4.getComponent(var5, TransformComponent.getComponentType());
      assert var6 != null;
      class="kw">return this.exitArea.containsPosition(var3, var6.getPosition());
   }

   @Override
   class="kw">public boolean isPlayerInEntryArea(@Nonnull Vector3d var1, @Nonnull Vector3d var2) {
      class="kw">return this.entryArea.containsPosition(var2, var1);
   }

   @Nonnull
   @Override
   class="kw">public ObjectiveLocationMarkerArea getRotatedArea(float var1, float var2) {
      float var3 = Math.round(var1 / (float) (Math.PI / 2)) * (float) (Math.PI / 2);
      if (Math.abs(var3 % (float) (Math.PI * 2)) > (float) (Math.PI / 4)) {
         Box var4 = this.entryArea.clone().rotateY(var3).normalize();
         Box var5 = this.exitArea.clone().rotateY(var3).normalize();
         class="kw">return new ObjectiveLocationAreaBox(var4, var5);
      } else {
         class="kw">return this;
      }
   }

   @Override
   class="kw">protected void computeAreaBoxes() {
      this.entryAreaBox = this.entryArea;
      this.exitAreaBox = this.exitArea;
   }

   class="kw">private class="kw">static void getPlayersInArea(
      @Nonnull SpatialResource<Ref<EntityStore>, EntityStore> var0, @Nonnull List<Ref<EntityStore>> var1, @Nonnull Vector3d var2, @Nonnull Box var3
   ) {
      var0.getSpatialStructure().collect(var2, var3.getMaximumExtent(), var1);
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "ObjectiveLocationAreaBox{} " + super.toString();
   }
}