AimingHelper class
Пакет: com.hypixel.hytale.server.npc.util
Файл: com/hypixel/hytale/server/npc/util/AimingHelper.java
Поля (16)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
int |
MIN_GRAVITY_FOR_PARABOLA |
|
double |
var10 |
|
double |
var11 |
|
double |
var12 |
|
double |
var13 |
|
double |
var14 |
|
double |
var15 |
|
double |
var15 |
|
|
var15 |
|
double |
var17 |
|
double |
var18 |
|
float |
var19 |
|
|
var19 |
|
|
var19 |
|
double |
var8 |
|
double |
var9 |
Методы (13)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
throw new |
IllegalArgumentExceptionthrow new IllegalArgumentException("computePitch requires a result array of size 2 for storing the resulting pitch") |
static |
boolean |
computePitchboolean computePitch(double var0, double var2, double var4, double var6, @Nonnull float[] var8) |
static |
double |
ensurePossibleThrowSpeeddouble ensurePossibleThrowSpeed(double var0, double var2, double var4, double var6) |
|
|
if if(var8 < 1.0000000000000002E-10) |
|
|
if if(var14 <= 0.0) |
|
|
if if(var0 * var0 < 1.0000000000000002E-10) |
|
|
if if(var17 <= 0.0) |
|
|
if if(var2 > 0.0) |
|
|
if if(var18 < var2 - 1.0E-5) |
|
|
if if(var18 > var2 + 1.0E-5) |
|
|
if if(var2 == 0.0 && var0 == 0.0) |
|
|
if if(var8.length != 2) |
|
|
if if(var15 < 0.0) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.util;
class="kw">import com.hypixel.hytale.math.util.TrigMathUtil;
class="kw">import javax.annotation.Nonnull;
class="kw">public class AimingHelper {
class="kw">public class="kw">static class="kw">final int MIN_GRAVITY_FOR_PARABOLA = 3;
class="kw">public AimingHelper() {
}
class="kw">public class="kw">static double ensurePossibleThrowSpeed(double var0, double var2, double var4, double var6) {
double var8 = var0 * var0;
if (var8 < 1.0000000000000002E-10) {
double var14 = var2 * var4;
if (var14 <= 0.0) {
class="kw">return var6;
}
double var15 = Math.sqrt(2.0 * var14);
class="kw">return Math.max(var15, var6);
} else {
double var10 = (Math.sqrt(var2 * var2 + var8) - var2) / var8;
double var12 = Math.sqrt(var4 / var10);
class="kw">return Math.max(var12, var6);
}
}
class="kw">public class="kw">static boolean computePitch(double var0, double var2, double var4, double var6, @Nonnull float[] var8) {
if (var0 * var0 < 1.0000000000000002E-10) {
double var17 = var2 * var6;
if (var17 <= 0.0) {
var8[0] = var2 > 0.0 ? (float) (Math.PI / 2) : (float) (-Math.PI / 2);
var8[1] = -var8[0];
class="kw">return true;
}
double var18 = 0.5 * var4 * var4 / var6;
float var19;
if (var2 > 0.0) {
if (var18 < var2 - 1.0E-5) {
class="kw">return false;
}
var19 = (float) (Math.PI / 2);
} else {
if (var18 > var2 + 1.0E-5) {
class="kw">return false;
}
var19 = (float) (-Math.PI / 2);
}
var8[0] = var8[1] = var19;
class="kw">return true;
} else if (var6 < 3.0) {
if (var2 == 0.0 && var0 == 0.0) {
class="kw">return false;
}
var8[0] = var8[1] = TrigMathUtil.atan2(var2, var0);
class="kw">return true;
} else {
if (var8.length != 2) {
throw new IllegalArgumentException("computePitch requires a result array of size 2 for storing the resulting pitch");
}
double var9 = var6 / (var4 * var4);
double var11 = var9 * var0 - 1.0E-5;
double var13 = var9 * var2 - 1.0E-5;
double var15 = 1.0 - var11 * var11 - 2.0 * var13;
if (var15 < 0.0) {
class="kw">return false;
}
var15 = Math.sqrt(var15);
var8[0] = TrigMathUtil.atan((1.0 - var15) / var11);
var8[1] = TrigMathUtil.atan((1.0 + var15) / var11);
class="kw">return true;
}
}
}