StaticModifier class
Пакет: com.hypixel.hytale.server.core.modules.entitystats.modifier
Файл: com/hypixel/hytale/server/core/modules/entitystats/modifier/StaticModifier.java
extends: Modifier
Поля (5)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
BuilderCodec<StaticModifier> |
CODEC |
|
com.hypixel.hytale.protocol.Modifier |
var1 |
|
int |
var1 |
|
|
var1 |
|
StaticModifier |
var2 |
Методы (9)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
CalculationType CalculationType() |
|
public float |
computepublic float compute(float var1, float var2) |
|
public float |
computepublic float compute(float var1, float var2) |
abstract |
public abstract float |
computepublic abstract float compute(float var1, float var2) |
|
public String |
createKeypublic String createKey(String var1) |
public |
float |
getAmountfloat getAmount() |
public |
StaticModifier.CalculationType |
getCalculationTypeStaticModifier.CalculationType getCalculationType() |
|
|
if if(this == var1) |
abstract |
|
super super(var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.entitystats.modifier;
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.codecs.EnumCodec;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class StaticModifier class="kw">extends Modifier {
class="kw">public class="kw">static class="kw">final BuilderCodec<StaticModifier> CODEC = BuilderCodec.builder(StaticModifier.class, StaticModifier::new, BASE_CODEC)
.append(
new KeyedCodec<>("CalculationType", new EnumCodec<>(StaticModifier.CalculationType.class)),
(var0, var1) -> var0.calculationType = var1,
var0 -> var0.calculationType
)
.addValidator(Validators.nonNull())
.add()
.append(new KeyedCodec<>("Amount", Codec.FLOAT), (var0, var1) -> var0.amount = var1, var0 -> var0.amount)
.add()
.build();
class="kw">public class="kw">static class="kw">final BuilderCodec<StaticModifier> ENTITY_CODEC = BuilderCodec.builder(StaticModifier.class, StaticModifier::new)
.append(
new KeyedCodec<>("CalculationType", new EnumCodec<>(StaticModifier.CalculationType.class, EnumCodec.EnumStyle.LEGACY)),
(var0, var1) -> var0.calculationType = var1,
var0 -> var0.calculationType
)
.setVersionRange(0, 3)
.addValidator(Validators.nonNull())
.add()
.<StaticModifier.CalculationType>append(
new KeyedCodec<>("CalculationType", new EnumCodec<>(StaticModifier.CalculationType.class)),
(var0, var1) -> var0.calculationType = var1,
var0 -> var0.calculationType
)
.setVersionRange(4, 5)
.addValidator(Validators.nonNull())
.add()
.addField(new KeyedCodec<>("Amount", Codec.FLOAT), (var0, var1) -> var0.amount = var1, var0 -> var0.amount)
.build();
class="kw">protected StaticModifier.CalculationType calculationType;
class="kw">protected float amount;
class="kw">protected StaticModifier() {
}
class="kw">public StaticModifier(Modifier.ModifierTarget var1, StaticModifier.CalculationType var2, float var3) {
super(var1);
this.calculationType = var2;
this.amount = var3;
}
class="kw">public StaticModifier.CalculationType getCalculationType() {
class="kw">return this.calculationType;
}
class="kw">public float getAmount() {
class="kw">return this.amount;
}
@Override
class="kw">public float apply(float var1) {
class="kw">return this.calculationType.compute(var1, this.amount);
}
@Nonnull
@Override
class="kw">public com.hypixel.hytale.protocol.Modifier toPacket() {
com.hypixel.hytale.protocol.Modifier var1 = super.toPacket();
var1.calculationType = class="kw">switch (this.calculationType) {
case ADDITIVE -> com.hypixel.hytale.protocol.CalculationType.Additive;
case MULTIPLICATIVE -> com.hypixel.hytale.protocol.CalculationType.Multiplicative;
};
var1.amount = this.amount;
class="kw">return var1;
}
@Override
class="kw">public boolean equals(@Nullable Object var1) {
if (this == var1) {
class="kw">return true;
}
if (var1 == null || this.getClass() != var1.getClass()) {
class="kw">return false;
}
if (!super.equals(var1)) {
class="kw">return false;
}
StaticModifier var2 = (StaticModifier)var1;
class="kw">return Float.compare(var2.amount, this.amount) != 0 ? false : this.calculationType == var2.calculationType;
}
@Override
class="kw">public int hashCode() {
int var1 = super.hashCode();
var1 = 31 * var1 + (this.calculationType != null ? this.calculationType.hashCode() : 0);
class="kw">return 31 * var1 + (this.amount != 0.0F ? Float.floatToIntBits(this.amount) : 0);
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "StaticModifier{calculationType=" + this.calculationType + ", amount=" + this.amount + "} " + super.toString();
}
class="kw">public enum CalculationType {
ADDITIVE {
@Override
class="kw">public float compute(float var1, float var2) {
class="kw">return var1 + var2;
}
},
MULTIPLICATIVE {
@Override
class="kw">public float compute(float var1, float var2) {
class="kw">return var1 * var2;
}
};
CalculationType() {
}
class="kw">public class="kw">abstract float compute(float var1, float var2);
@Nonnull
class="kw">public String createKey(String var1) {
class="kw">return var1 + "_" + this;
}
}
}