ItemWeapon class

Пакет: com.hypixel.hytale.server.core.asset.type.item.config

Файл: com/hypixel/hytale/server/core/asset/type/item/config/ItemWeapon.java

implements: NetworkSerializable<com.hypixel.hytale.protocol.ItemWeapon>

Поля (1)

МодификаторыТипИмя
final BuilderCodec<ItemWeapon> CODEC

Методы (3)

МодификаторыВозвратСигнатура
public int[] getEntityStatsToClearint[] getEntityStatsToClear()
public void setBasicDamageBreakdownvoid setBasicDamageBreakdown(@Nullable DamageBreakdown var1)
public void setUltimateDamageBreakdownvoid setUltimateDamageBreakdown(@Nullable DamageBreakdown var1)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.asset.type.item.config;

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.codecs.map.MapCodec;
class="kw">import com.hypixel.hytale.server.core.asset.type.item.config.damageData.DamageBreakdown;
class="kw">import com.hypixel.hytale.server.core.io.NetworkSerializable;
class="kw">import com.hypixel.hytale.server.core.modules.entitystats.EntityStatMap;
class="kw">import com.hypixel.hytale.server.core.modules.entitystats.EntityStatsModule;
class="kw">import com.hypixel.hytale.server.core.modules.entitystats.asset.EntityStatType;
class="kw">import com.hypixel.hytale.server.core.modules.entitystats.modifier.StaticModifier;
class="kw">import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
class="kw">import java.util.Arrays;
class="kw">import java.util.HashMap;
class="kw">import java.util.Map;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class ItemWeapon class="kw">implements NetworkSerializable<com.hypixel.hytale.protocol.ItemWeapon> {
   class="kw">public class="kw">static class="kw">final BuilderCodec<ItemWeapon> CODEC = BuilderCodec.builder(ItemWeapon.class, ItemWeapon::new)
      .append(
         new KeyedCodec<>("StatModifiers", new MapCodec<>(new ArrayCodec<>(StaticModifier.CODEC, StaticModifier[]::new), HashMap::new)),
         (var0, var1) -> var0.rawStatModifiers = var1,
         var0 -> var0.rawStatModifiers
      )
      .addValidator(EntityStatType.VALIDATOR_CACHE.getMapKeyValidator().late())
      .add()
      .append(new KeyedCodec<>("EntityStatsToClear", Codec.STRING_ARRAY), (var0, var1) -> var0.rawEntityStatsToClear = var1, var0 -> var0.rawEntityStatsToClear)
      .add()
      .append(new KeyedCodec<>("RenderDualWielded", Codec.BOOLEAN), (var0, var1) -> var0.renderDualWielded = var1, var0 -> var0.renderDualWielded)
      .add()
      .afterDecode(var0 -> {
         var0.statModifiers = EntityStatsModule.resolveEntityStats(var0.rawStatModifiers);
         var0.entityStatsToClear = EntityStatsModule.resolveEntityStats(var0.rawEntityStatsToClear);
      })
      .build();
   @Nullable
   class="kw">protected Map<String, StaticModifier[]> rawStatModifiers;
   @Nullable
   class="kw">protected Int2ObjectMap<StaticModifier[]> statModifiers;
   class="kw">protected String[] rawEntityStatsToClear;
   @Nullable
   class="kw">protected int[] entityStatsToClear;
   class="kw">protected boolean renderDualWielded;
   @Nullable
   class="kw">protected class="kw">transient DamageBreakdown basicDamageBreakdown;
   @Nullable
   class="kw">protected class="kw">transient DamageBreakdown ultimateDamageBreakdown;

   class="kw">public ItemWeapon() {
   }

   class="kw">public ItemWeapon(@Nonnull ItemWeapon var1) {
      this.rawStatModifiers = var1.rawStatModifiers;
      this.statModifiers = var1.statModifiers;
      this.rawEntityStatsToClear = var1.rawEntityStatsToClear;
      this.entityStatsToClear = var1.entityStatsToClear;
      this.renderDualWielded = var1.renderDualWielded;
   }

   @Nullable
   class="kw">public Int2ObjectMap<StaticModifier[]> getStatModifiers() {
      class="kw">return this.statModifiers;
   }

   class="kw">public int[] getEntityStatsToClear() {
      class="kw">return this.entityStatsToClear;
   }

   @Nullable
   class="kw">public DamageBreakdown getBasicDamageBreakdown() {
      class="kw">return this.basicDamageBreakdown;
   }

   class="kw">public void setBasicDamageBreakdown(@Nullable DamageBreakdown var1) {
      this.basicDamageBreakdown = var1;
   }

   @Nullable
   class="kw">public DamageBreakdown getUltimateDamageBreakdown() {
      class="kw">return this.ultimateDamageBreakdown;
   }

   class="kw">public void setUltimateDamageBreakdown(@Nullable DamageBreakdown var1) {
      this.ultimateDamageBreakdown = var1;
   }

   @Nonnull
   class="kw">public com.hypixel.hytale.protocol.ItemWeapon toPacket() {
      class="kw">return new com.hypixel.hytale.protocol.ItemWeapon(
         this.entityStatsToClear,
         EntityStatMap.toPacket(this.statModifiers),
         this.renderDualWielded,
         this.basicDamageBreakdown != null ? this.basicDamageBreakdown.toPacket() : null,
         this.ultimateDamageBreakdown != null ? this.ultimateDamageBreakdown.toPacket() : null
      );
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "ItemWeapon{rawStatModifiers="
         + this.rawStatModifiers
         + ", statModifiers="
         + this.statModifiers
         + ", rawEntityStatsToClear="
         + Arrays.toString(this.rawEntityStatsToClear)
         + ", entityStatsToClear="
         + Arrays.toString(this.entityStatsToClear)
         + ", renderDualWielded="
         + this.renderDualWielded
         + "}";
   }
}