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();
   }
}