SensorEntityPrioritiserDefault class
Пакет: com.hypixel.hytale.server.npc.corecomponents.entity.prioritisers
Файл: com/hypixel/hytale/server/npc/corecomponents/entity/prioritisers/SensorEntityPrioritiserDefault.java
implements: ISensorEntityPrioritiser
Поля (13)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
ComponentType<EntityStore, TransformComponent> |
TRANSFORM_COMPONENT_TYPE |
|
private Ref<EntityStore> |
target |
|
Vector3d |
var10 |
|
Vector3d |
var11 |
|
double |
var12 |
|
|
var12 |
|
|
var12 |
|
double |
var14 |
|
|
var14 |
|
|
var14 |
|
MotionController |
var16 |
|
TransformComponent |
var8 |
|
TransformComponent |
var9 |
Методы (7)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
private |
DefaultPrioritiserprivate DefaultPrioritiser() |
|
public void |
cleanuppublic void cleanup() |
|
public Ref<EntityStore> |
getHighestPriorityTargetpublic Ref<EntityStore> getHighestPriorityTarget() |
|
|
if if(var6) |
|
|
if if(this.target == null) |
|
public void |
initpublic void init(ExecutionSupport var1) |
|
public boolean |
testpublic boolean test(@Nonnull Ref<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull ComponentAccessor<EntityStore> var3) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.corecomponents.entity.prioritisers;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
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.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.IEntityFilter;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.ISensorEntityPrioritiser;
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.util.IEntityByPriorityFilter;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;
class="kw">public class SensorEntityPrioritiserDefault class="kw">implements ISensorEntityPrioritiser {
class="kw">private class="kw">static class="kw">final ComponentType<EntityStore, TransformComponent> TRANSFORM_COMPONENT_TYPE = TransformComponent.getComponentType();
class="kw">private class="kw">final SensorEntityPrioritiserDefault.DefaultPrioritiser playerPrioritiser = new SensorEntityPrioritiserDefault.DefaultPrioritiser();
class="kw">private class="kw">final SensorEntityPrioritiserDefault.DefaultPrioritiser npcPrioritiser = new SensorEntityPrioritiserDefault.DefaultPrioritiser();
class="kw">public SensorEntityPrioritiserDefault() {
}
@Nonnull
@Override
class="kw">public IEntityByPriorityFilter getNPCPrioritiser() {
class="kw">return this.npcPrioritiser;
}
@Nonnull
@Override
class="kw">public IEntityByPriorityFilter getPlayerPrioritiser() {
class="kw">return this.playerPrioritiser;
}
@Nonnull
@Override
class="kw">public Ref<EntityStore> pickTarget(
Ref<EntityStore> var1,
@Nonnull ExecutionSupport var2,
@Nonnull Vector3d var3,
@Nonnull Ref<EntityStore> var4,
@Nonnull Ref<EntityStore> var5,
boolean var6,
@Nonnull Store<EntityStore> var7
) {
TransformComponent var8 = var7.getComponent(var4, TRANSFORM_COMPONENT_TYPE);
assert var8 != null;
TransformComponent var9 = var7.getComponent(var5, TRANSFORM_COMPONENT_TYPE);
assert var9 != null;
Vector3d var10 = var8.getPosition();
Vector3d var11 = var9.getPosition();
double var12;
double var14;
if (var6) {
MotionController var16 = var2.getMotionContextSupport().getActiveMotionController();
var12 = var16.getSquaredDistance(var3, var10, true);
var14 = var16.getSquaredDistance(var3, var11, true);
} else {
var12 = var3.distanceSquared(var10);
var14 = var3.distanceSquared(var11);
}
class="kw">return var12 <= var14 ? var4 : var5;
}
@Override
class="kw">public boolean providesFilters() {
class="kw">return false;
}
@Override
class="kw">public void buildProvidedFilters(List<IEntityFilter> var1) {
}
class="kw">public class="kw">static class DefaultPrioritiser class="kw">implements IEntityByPriorityFilter {
@Nullable
class="kw">private Ref<EntityStore> target;
class="kw">private DefaultPrioritiser() {
}
@Override
class="kw">public void init(ExecutionSupport var1) {
}
@Nullable
@Override
class="kw">public Ref<EntityStore> getHighestPriorityTarget() {
class="kw">return this.target;
}
@Override
class="kw">public void cleanup() {
this.target = null;
}
class="kw">public boolean test(@Nonnull Ref<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull ComponentAccessor<EntityStore> var3) {
if (this.target == null) {
this.target = var2;
}
class="kw">return true;
}
}
}