java.lang.Object
com.hypixel.hytale.server.core.modules.entitystats.EntityStatMap
All Implemented Interfaces:
Component<EntityStore>, Cloneable

public class EntityStatMap extends Object implements Component<EntityStore>
  • Field Details

    • VERSION

      public static final int VERSION
      See Also:
    • CODEC

      public static final BuilderCodec<EntityStatMap> CODEC
    • unknown

      private Map<String,EntityStatValue> unknown
    • values

      @Nonnull private EntityStatValue[] values
    • tempRegenerationValues

      float[] tempRegenerationValues
    • selfUpdates

      public final it.unimi.dsi.fastutil.ints.Int2ObjectMap<List<EntityStatUpdate>> selfUpdates
    • selfStatValues

      public final it.unimi.dsi.fastutil.ints.Int2ObjectMap<it.unimi.dsi.fastutil.floats.FloatList> selfStatValues
    • otherUpdates

      public final it.unimi.dsi.fastutil.ints.Int2ObjectMap<List<EntityStatUpdate>> otherUpdates
    • isSelfNetworkOutdated

      protected boolean isSelfNetworkOutdated
    • isNetworkOutdated

      protected boolean isNetworkOutdated
  • Constructor Details

    • EntityStatMap

      public EntityStatMap()
  • Method Details

    • getComponentType

      public static ComponentType<EntityStore,EntityStatMap> getComponentType()
    • size

      public int size()
    • get

      @Nullable public EntityStatValue get(int index)
    • get

      @Deprecated @Nullable public EntityStatValue get(String entityStat)
      Deprecated.
    • update

      public void update()
    • getModifier

      @Nullable public Modifier getModifier(int index, String key)
    • putModifier

      @Nullable public Modifier putModifier(int index, String key, Modifier modifier)
    • putModifier

      @Nullable public Modifier putModifier(EntityStatMap.Predictable predictable, int index, String key, Modifier modifier)
    • removeModifier

      @Nullable public Modifier removeModifier(int index, String key)
    • removeModifier

      @Nullable public Modifier removeModifier(EntityStatMap.Predictable predictable, int index, String key)
    • setStatValue

      public float setStatValue(int index, float newValue)
    • setStatValue

      public float setStatValue(EntityStatMap.Predictable predictable, int index, float newValue)
    • addStatValue

      public float addStatValue(int index, float amount)
    • addStatValue

      public float addStatValue(EntityStatMap.Predictable predictable, int index, float amount)
    • subtractStatValue

      public float subtractStatValue(int index, float amount)
    • subtractStatValue

      public float subtractStatValue(EntityStatMap.Predictable predictable, int index, float amount)
    • minimizeStatValue

      public float minimizeStatValue(int index)
    • minimizeStatValue

      public float minimizeStatValue(EntityStatMap.Predictable predictable, int index)
    • maximizeStatValue

      public float maximizeStatValue(int index)
    • maximizeStatValue

      public float maximizeStatValue(EntityStatMap.Predictable predictable, int index)
    • resetStatValue

      public float resetStatValue(int index)
    • resetStatValue

      public float resetStatValue(EntityStatMap.Predictable predictable, int index)
    • getSelfUpdates

      @Nonnull public it.unimi.dsi.fastutil.ints.Int2ObjectMap<List<EntityStatUpdate>> getSelfUpdates()
    • getSelfStatValues

      @Nonnull public it.unimi.dsi.fastutil.ints.Int2ObjectMap<it.unimi.dsi.fastutil.floats.FloatList> getSelfStatValues()
    • consumeSelfUpdates

      @Nonnull public it.unimi.dsi.fastutil.ints.Int2ObjectMap<EntityStatUpdate[]> consumeSelfUpdates()
    • clearUpdates

      public void clearUpdates()
    • consumeOtherUpdates

      @Nonnull public it.unimi.dsi.fastutil.ints.Int2ObjectMap<EntityStatUpdate[]> consumeOtherUpdates()
    • updatesToProtocol

      @Nonnull private it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap<EntityStatUpdate[]> updatesToProtocol(@Nonnull it.unimi.dsi.fastutil.ints.Int2ObjectMap<List<EntityStatUpdate>> localUpdates)
    • createInitUpdate

      @Nonnull public it.unimi.dsi.fastutil.ints.Int2ObjectMap<EntityStatUpdate[]> createInitUpdate(boolean all)
    • consumeSelfNetworkOutdated

      public boolean consumeSelfNetworkOutdated()
    • consumeNetworkOutdated

      public boolean consumeNetworkOutdated()
    • addInitChange

      private void addInitChange(int index, @Nonnull EntityStatValue value)
    • addChange

      private void addChange(EntityStatMap.Predictable predictable, int index, @Nonnull EntityStatOp op, float previousValue, float value)
    • addChange

      private void addChange(EntityStatMap.Predictable predictable, int index, @Nonnull EntityStatOp op, float previousValue, float value, Map<String,Modifier> modifierMap)
    • addChange

      private void addChange(EntityStatMap.Predictable predictable, int index, EntityStatOp op, float previousValue, String key, @Nullable Modifier modifier)
    • tryMergeUpdate

      private boolean tryMergeUpdate(@Nonnull List<EntityStatUpdate> updates, @Nonnull EntityStatOp op, float value, @Nullable Map<String,Modifier> modifierMap, boolean isPredictable)
    • processStatChanges

      public void processStatChanges(EntityStatMap.Predictable predictable, @Nonnull it.unimi.dsi.fastutil.ints.Int2FloatMap entityStats, ValueType valueType, @Nonnull ChangeStatBehaviour changeStatBehaviour)
    • toString

      @Nonnull public String toString()
      Overrides:
      toString in class Object
    • clone

      @Nonnull public EntityStatMap clone()
      Specified by:
      clone in interface Component<EntityStore>
      Overrides:
      clone in class Object
    • makeInitChange

      @Nonnull private static EntityStatUpdate makeInitChange(@Nonnull EntityStatValue value)
    • toPacket

      public static it.unimi.dsi.fastutil.ints.Int2ObjectMap<Modifier[]> toPacket(@Nullable it.unimi.dsi.fastutil.ints.Int2ObjectMap<StaticModifier[]> modifiers)