FitsAPortal class
Пакет: com.hypixel.hytale.builtin.portals.utils.posqueries.predicates
Файл: com/hypixel/hytale/builtin/portals/utils/posqueries/predicates/FitsAPortal.java
implements: PositionPredicate
Поля (13)
| Модификаторы | Тип | Имя |
|---|---|---|
|
Vector3i |
var12 |
|
long |
var13 |
|
WorldChunk |
var15 |
|
Ref |
var16 |
|
Store |
var17 |
|
ChunkColumn |
var18 |
|
BlockChunk |
var19 |
|
ChunkStore |
var2 |
|
int |
var20 |
|
BlockSection |
var21 |
|
int |
var22 |
|
BlockType |
var23 |
|
BlockMaterial |
var24 |
Методы (10)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
static |
boolean |
checkboolean check(@Nonnull World var0, @Nonnull Vector3d var1) |
abstract |
return |
checkreturn check(var1, var2) |
|
|
for for(int var6 : THREES) |
|
|
for for(int var10 : THREES) |
|
|
for for(int var11 = -1; var11 <= 3; var11++) |
|
|
if if(var15 == null) |
|
|
if if(var18 == null) |
|
|
if if(var19 == null) |
|
|
if if(var20 != 0) |
|
|
if if(var23 == null) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.portals.utils.posqueries.predicates;
class="kw">import com.hypixel.hytale.builtin.portals.utils.posqueries.PositionPredicate;
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.vector.Vector3dUtil;
class="kw">import com.hypixel.hytale.protocol.BlockMaterial;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType;
class="kw">import com.hypixel.hytale.server.core.modules.collision.WorldUtil;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.BlockChunk;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.ChunkColumn;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.WorldChunk;
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 javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3i;
class="kw">public class FitsAPortal class="kw">implements PositionPredicate {
@Nonnull
class="kw">private class="kw">static class="kw">final int[] THREES = new int[]{-1, 0, 1};
class="kw">public FitsAPortal() {
}
@Override
class="kw">public boolean test(@Nonnull World var1, @Nonnull Vector3d var2) {
class="kw">return check(var1, var2);
}
class="kw">public class="kw">static boolean check(@Nonnull World var0, @Nonnull Vector3d var1) {
ChunkStore var2 = var0.getChunkStore();
for (int var6 : THREES) {
for (int var10 : THREES) {
for (int var11 = -1; var11 <= 3; var11++) {
Vector3i var12 = Vector3dUtil.toVector3i(var1).add(var6, var11, var10);
long var13 = ChunkUtil.indexChunkFromBlock(var12.x, var12.z);
WorldChunk var15 = var0.getChunk(var13);
if (var15 == null) {
class="kw">return false;
}
Ref var16 = var15.getReference();
if (var16 == null || !var16.isValid()) {
class="kw">return false;
}
Store var17 = var2.getStore();
ChunkColumn var18 = var17.getComponent(var16, ChunkColumn.getComponentType());
if (var18 == null) {
class="kw">return false;
}
BlockChunk var19 = var17.getComponent(var16, BlockChunk.getComponentType());
if (var19 == null) {
class="kw">return false;
}
int var20 = WorldUtil.getFluidIdAtPosition(var17, var18, var12.x, var12.y, var12.z);
if (var20 != 0) {
class="kw">return false;
}
BlockSection var21 = var19.getSectionAtBlockY(var12.y);
int var22 = var21.get(var12.x, var12.y, var12.z);
BlockType var23 = BlockType.getAssetMap().getAsset(var22);
if (var23 == null) {
class="kw">return false;
}
BlockMaterial var24 = var11 < 0 ? BlockMaterial.Solid : BlockMaterial.Empty;
if (var23.getMaterial() != var24) {
class="kw">return false;
}
}
}
}
class="kw">return true;
}
}