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();
}
}