Knockback class
Пакет: com.hypixel.hytale.server.core.modules.interaction.interaction.config.server.combat
Файл: com/hypixel/hytale/server/core/modules/interaction/interaction/config/server/combat/Knockback.java
Поля (1)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
CodecMapCodec<Knockback> |
CODEC |
Методы (5)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract abstract |
Vector3d |
calculateVectorVector3d calculateVector(Vector3d var1, float var2, Vector3d var3) |
public |
float |
getDurationfloat getDuration() |
public |
float |
getForcefloat getForce() |
public |
VelocityConfig |
getVelocityConfigVelocityConfig getVelocityConfig() |
public |
ChangeVelocityType |
getVelocityTypeChangeVelocityType getVelocityType() |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.interaction.interaction.config.server.combat;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.lookup.CodecMapCodec;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.protocol.ChangeVelocityType;
class="kw">import com.hypixel.hytale.server.core.codec.ProtocolCodecs;
class="kw">import com.hypixel.hytale.server.core.modules.splitvelocity.VelocityConfig;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">public class="kw">abstract class Knockback {
class="kw">public class="kw">static class="kw">final CodecMapCodec<Knockback> CODEC = new CodecMapCodec<>("Type", true);
class="kw">public class="kw">static class="kw">final BuilderCodec<Knockback> BASE_CODEC = BuilderCodec.abstractBuilder(Knockback.class)
.append(new KeyedCodec<>("Force", Codec.DOUBLE), (var0, var1) -> var0.force = var1.floatValue(), var0 -> (double)var0.force)
.add()
.<Float>append(new KeyedCodec<>("Duration", Codec.FLOAT), (var0, var1) -> var0.duration = var1, var0 -> var0.duration)
.addValidator(Validators.greaterThanOrEqual(0.0F))
.documentation("The duration for which the knockback force should be continuously applied. If 0, force is applied once.")
.add()
.append(new KeyedCodec<>("VelocityType", ProtocolCodecs.CHANGE_VELOCITY_TYPE_CODEC), (var0, var1) -> var0.velocityType = var1, var0 -> var0.velocityType)
.add()
.appendInherited(
new KeyedCodec<>("VelocityConfig", VelocityConfig.CODEC),
(var0, var1) -> var0.velocityConfig = var1,
var0 -> var0.velocityConfig,
(var0, var1) -> var0.velocityConfig = var1.velocityConfig
)
.add()
.build();
class="kw">protected float force;
class="kw">protected float duration;
class="kw">protected ChangeVelocityType velocityType = ChangeVelocityType.Add;
class="kw">private VelocityConfig velocityConfig;
class="kw">protected Knockback() {
}
class="kw">public float getForce() {
class="kw">return this.force;
}
class="kw">public float getDuration() {
class="kw">return this.duration;
}
class="kw">public ChangeVelocityType getVelocityType() {
class="kw">return this.velocityType;
}
class="kw">public VelocityConfig getVelocityConfig() {
class="kw">return this.velocityConfig;
}
class="kw">public class="kw">abstract Vector3d calculateVector(Vector3d var1, float var2, Vector3d var3);
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "Knockback{force="
+ this.force
+ ", duration="
+ this.duration
+ ", velocityType="
+ this.velocityType
+ ", velocityConfig="
+ this.velocityConfig
+ "}";
}
}