SteeringForceWander class
Пакет: com.hypixel.hytale.server.npc.movement.steeringforces
Файл: com/hypixel/hytale/server/npc/movement/steeringforces/SteeringForceWander.java
implements: SteeringForce
Поля (1)
| Модификаторы | Тип | Имя |
|---|---|---|
private |
double |
time |
Методы (4)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
if if(this.time < this.turnInterval) |
public |
void |
setHeadingvoid setHeading(float var1) |
public |
void |
setTurnTimevoid setTurnTime(double var1) |
public |
void |
updateTimevoid updateTime(double var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.movement.steeringforces;
class="kw">import com.hypixel.hytale.math.random.RandomExtra;
class="kw">import com.hypixel.hytale.server.core.modules.physics.util.PhysicsMath;
class="kw">import com.hypixel.hytale.server.npc.movement.Steering;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">public class SteeringForceWander class="kw">implements SteeringForce {
class="kw">private double time;
class="kw">private double turnInterval;
class="kw">private double jitter = 0.5;
class="kw">private class="kw">final Vector3d velocity = new Vector3d(0.0, 0.0, -1.0);
class="kw">public SteeringForceWander() {
this.setTurnTime(5.0);
this.jitter = 0.5;
}
class="kw">public void setTurnTime(double var1) {
this.turnInterval = 0.0;
this.time = this.turnInterval;
}
class="kw">public void updateTime(double var1) {
this.time += var1;
}
class="kw">public void setHeading(float var1) {
this.velocity.x = PhysicsMath.headingX(var1);
this.velocity.z = PhysicsMath.headingZ(var1);
}
@Override
class="kw">public boolean compute(@Nonnull Steering var1) {
if (this.time < this.turnInterval) {
this.velocity.x = this.velocity.x + RandomExtra.randomBinomial() * this.jitter;
this.velocity.z = this.velocity.z + RandomExtra.randomBinomial() * this.jitter;
this.velocity.normalize();
}
var1.clearRotation();
class="kw">return true;
}
}