CombatTextUIComponent class
Пакет: com.hypixel.hytale.server.core.modules.entityui.asset
Файл: com/hypixel/hytale/server/core/modules/entityui/asset/CombatTextUIComponent.java
extends: EntityUIComponent
Поля (2)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
float |
DEFAULT_FONT_SIZE |
|
com.hypixel.hytale.protocol.EntityUIComponent |
var1 |
Методы (1)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(int var2 = 0; var2 < this.animationEvents.length; var2++) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.entityui.asset;
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.array.ArrayCodec;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.protocol.Color;
class="kw">import com.hypixel.hytale.protocol.CombatTextEntityUIComponentAnimationEvent;
class="kw">import com.hypixel.hytale.protocol.EntityUIType;
class="kw">import com.hypixel.hytale.protocol.RangeVector2f;
class="kw">import com.hypixel.hytale.server.core.codec.ProtocolCodecs;
class="kw">import java.util.Arrays;
class="kw">import javax.annotation.Nonnull;
class="kw">public class CombatTextUIComponent class="kw">extends EntityUIComponent {
class="kw">private class="kw">static class="kw">final float DEFAULT_FONT_SIZE = 68.0F;
class="kw">private class="kw">static class="kw">final Color DEFAULT_TEXT_COLOR = new Color((byte)-1, (byte)-1, (byte)-1);
class="kw">public class="kw">static class="kw">final BuilderCodec<CombatTextUIComponent> CODEC = BuilderCodec.builder(
CombatTextUIComponent.class, CombatTextUIComponent::new, EntityUIComponent.ABSTRACT_CODEC
)
.appendInherited(
new KeyedCodec<>("RandomPositionOffsetRange", ProtocolCodecs.RANGE_VECTOR2F),
(var0, var1) -> var0.randomPositionOffsetRange = var1,
var0 -> var0.randomPositionOffsetRange,
(var0, var1) -> var0.randomPositionOffsetRange = var1.randomPositionOffsetRange
)
.addValidator(Validators.nonNull())
.documentation(
"The maximum range for randomly offsetting text instances from their starting position. Values are treated as absolute and apply in both directions of the axis."
)
.add()
.<Float>appendInherited(
new KeyedCodec<>("ViewportMargin", Codec.FLOAT),
(var0, var1) -> var0.viewportMargin = var1,
var0 -> var0.viewportMargin,
(var0, var1) -> var0.viewportMargin = var1.viewportMargin
)
.addValidator(Validators.range(0.0F, 200.0F))
.documentation("The minimum distance (in px) from the edges of the viewport that text instances should clamp to.")
.add()
.<Float>appendInherited(
new KeyedCodec<>("Duration", Codec.FLOAT), (var0, var1) -> var0.duration = var1, var0 -> var0.duration, (var0, var1) -> var0.duration = var1.duration
)
.addValidator(Validators.nonNull())
.addValidator(Validators.range(0.1F, 10.0F))
.documentation("The duration for which text instances in this component should be visible.")
.add()
.<Float>appendInherited(
new KeyedCodec<>("HitAngleModifierStrength", Codec.FLOAT),
(var0, var1) -> var0.hitAngleModifierStrength = var1,
var0 -> var0.hitAngleModifierStrength,
(var0, var1) -> var0.hitAngleModifierStrength = var1.hitAngleModifierStrength
)
.addValidator(Validators.range(0.0F, 10.0F))
.documentation("Strength of the modifier to apply to the X axis of a position animation (if set) based on the angle of a melee attack.")
.add()
.<Float>appendInherited(
new KeyedCodec<>("FontSize", Codec.FLOAT), (var0, var1) -> var0.fontSize = var1, var0 -> var0.fontSize, (var0, var1) -> var0.fontSize = var1.fontSize
)
.documentation("The font size to apply to text instances.")
.add()
.<Color>appendInherited(
new KeyedCodec<>("TextColor", ProtocolCodecs.COLOR),
(var0, var1) -> var0.textColor = var1,
var0 -> var0.textColor,
(var0, var1) -> var0.textColor = var1.textColor
)
.addValidator(Validators.nonNull())
.documentation("The text color to apply to text instances.")
.add()
.<CombatTextUIComponentAnimationEvent[]>appendInherited(
new KeyedCodec<>("AnimationEvents", new ArrayCodec<>(CombatTextUIComponentAnimationEvent.CODEC, CombatTextUIComponentAnimationEvent[]::new)),
(var0, var1) -> var0.animationEvents = var1,
var0 -> var0.animationEvents,
(var0, var1) -> var0.animationEvents = var1.animationEvents
)
.addValidator(Validators.nonNull())
.documentation("Animation events for controlling animation of scale, position, and opacity.")
.add()
.build();
class="kw">private RangeVector2f randomPositionOffsetRange;
class="kw">private float viewportMargin;
class="kw">private float duration;
class="kw">private float hitAngleModifierStrength = 1.0F;
class="kw">private float fontSize = 68.0F;
class="kw">private Color textColor = DEFAULT_TEXT_COLOR;
class="kw">private CombatTextUIComponentAnimationEvent[] animationEvents;
class="kw">public CombatTextUIComponent() {
}
@Nonnull
@Override
class="kw">protected com.hypixel.hytale.protocol.EntityUIComponent generatePacket() {
com.hypixel.hytale.protocol.EntityUIComponent var1 = super.generatePacket();
var1.type = EntityUIType.CombatText;
var1.combatTextRandomPositionOffsetRange = this.randomPositionOffsetRange;
var1.combatTextViewportMargin = this.viewportMargin;
var1.combatTextDuration = this.duration;
var1.combatTextHitAngleModifierStrength = this.hitAngleModifierStrength;
var1.combatTextFontSize = this.fontSize;
var1.combatTextColor = this.textColor;
var1.combatTextAnimationEvents = new CombatTextEntityUIComponentAnimationEvent[this.animationEvents.length];
for (int var2 = 0; var2 < this.animationEvents.length; var2++) {
var1.combatTextAnimationEvents[var2] = this.animationEvents[var2].generatePacket();
}
class="kw">return var1;
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "CombatTextUIComponent{randomPositionOffsetRange="
+ this.randomPositionOffsetRange
+ ", viewportMargin"
+ this.viewportMargin
+ ", duration="
+ this.duration
+ ", hitAngleModifierStrength="
+ this.hitAngleModifierStrength
+ ", fontSize="
+ this.fontSize
+ ", textColor="
+ this.textColor
+ ", animationEvents="
+ Arrays.toString(this.animationEvents)
+ "} "
+ super.toString();
}
}