PositionProbeWater class
Пакет: com.hypixel.hytale.server.npc.util
Файл: com/hypixel/hytale/server/npc/util/PositionProbeWater.java
extends: PositionProbeBase
Поля (6)
| Модификаторы | Тип | Имя |
|---|---|---|
|
boolean |
var4 |
|
boolean |
var5 |
|
boolean |
var6 |
|
boolean |
var7 |
|
double |
var9 |
private |
double |
ySwim |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
private |
boolean |
blockTestboolean blockTest(int var1, @Nonnull BoxBlockIntersectionEvaluator var2, @Nonnull CollisionConfig var3) |
|
|
if if(var7 && var3.blockY > this.groundLevel) |
public |
boolean |
probePositionboolean probePosition(@Nonnull Ref<EntityStore> var1,
@Nonnull Box var2,
@Nonnull Vector3d var3,
@Nonnull CollisionResult var4,
double var5,
@Nonnull ComponentAccessor<EntityStore> var7) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.util;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.math.shape.Box;
class="kw">import com.hypixel.hytale.server.core.modules.collision.BoxBlockIntersectionEvaluator;
class="kw">import com.hypixel.hytale.server.core.modules.collision.CollisionConfig;
class="kw">import com.hypixel.hytale.server.core.modules.collision.CollisionMath;
class="kw">import com.hypixel.hytale.server.core.modules.collision.CollisionResult;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">public class PositionProbeWater class="kw">extends PositionProbeBase {
class="kw">private double ySwim;
class="kw">public PositionProbeWater() {
}
class="kw">public boolean probePosition(
@Nonnull Ref<EntityStore> var1,
@Nonnull Box var2,
@Nonnull Vector3d var3,
@Nonnull CollisionResult var4,
double var5,
@Nonnull ComponentAccessor<EntityStore> var7
) {
this.ySwim = var3.y + var5 + 1.0E-6;
class="kw">return super.probePosition(var1, var2, var3, var4, this, PositionProbeWater::blockTest, 6, var7);
}
class="kw">private boolean blockTest(int var1, @Nonnull BoxBlockIntersectionEvaluator var2, @Nonnull CollisionConfig var3) {
boolean var4 = (var3.blockMaterialMask & 4) != 0;
boolean var5 = (var3.blockMaterialMask & 2) != 0;
boolean var6 = (var3.blockMaterialMask & 8) != 0;
if (var4 && CollisionMath.isTouching(var1)) {
boolean var7 = var2.isOnGround();
this.onGround |= var7;
this.touchCeil = this.touchCeil | var2.touchesCeil();
if (var7 && var3.blockY > this.groundLevel) {
this.groundLevel = var3.blockY;
}
}
if ((!var5 || !CollisionMath.isOverlapping(var1)) && !var6) {
class="kw">return var4;
}
double var9 = var3.blockY + 1;
this.inWater = this.inWater | var9 >= this.ySwim;
class="kw">return false;
}
@Override
class="kw">protected void reset() {
super.reset();
this.inWater = false;
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "PositionProbeWater{ySwim=" + this.ySwim + "} " + super.toString();
}
}