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