BalancingInitialisationSystem class

Пакет: com.hypixel.hytale.server.npc.systems

Файл: com/hypixel/hytale/server/npc/systems/BalancingInitialisationSystem.java

extends: HolderSystem<EntityStore>

Поля (7)

МодификаторыТипИмя
StaticModifier var10
NPCEntity var4
Role var5
int var6
EntityStatMap var7
int var8
EntityStatType var9

Методы (1)

МодификаторыВозвратСигнатура
if if(var2 == AddReason.SPAWN)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.systems;

class="kw">import com.hypixel.hytale.component.AddReason;
class="kw">import com.hypixel.hytale.component.Archetype;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Holder;
class="kw">import com.hypixel.hytale.component.RemoveReason;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.component.dependency.Dependency;
class="kw">import com.hypixel.hytale.component.dependency.Order;
class="kw">import com.hypixel.hytale.component.dependency.SystemDependency;
class="kw">import com.hypixel.hytale.component.query.Query;
class="kw">import com.hypixel.hytale.component.system.HolderSystem;
class="kw">import com.hypixel.hytale.server.core.modules.entitystats.EntityStatMap;
class="kw">import com.hypixel.hytale.server.core.modules.entitystats.EntityStatsSystems;
class="kw">import com.hypixel.hytale.server.core.modules.entitystats.asset.EntityStatType;
class="kw">import com.hypixel.hytale.server.core.modules.entitystats.modifier.Modifier;
class="kw">import com.hypixel.hytale.server.core.modules.entitystats.modifier.StaticModifier;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.npc.entities.NPCEntity;
class="kw">import com.hypixel.hytale.server.npc.role.Role;
class="kw">import java.util.Set;
class="kw">import javax.annotation.Nonnull;

class="kw">public class BalancingInitialisationSystem class="kw">extends HolderSystem<EntityStore> {
   @Nonnull
   class="kw">private class="kw">static class="kw">final String NPC_MAX_MODIFIER = "NPC_Max";
   @Nonnull
   class="kw">public class="kw">static class="kw">final String HEALTH_STAT_INDEX = "Health";
   @Nonnull
   class="kw">private class="kw">final ComponentType<EntityStore, NPCEntity> npcComponentType = NPCEntity.getComponentType();
   @Nonnull
   class="kw">private class="kw">final ComponentType<EntityStore, EntityStatMap> entityStatMapComponentType = EntityStatMap.getComponentType();
   @Nonnull
   class="kw">private class="kw">final Set<Dependency<EntityStore>> dependencies = Set.of(
      new SystemDependency<>(Order.AFTER, RoleBuilderSystem.class), new SystemDependency<>(Order.AFTER, EntityStatsSystems.Setup.class)
   );
   @Nonnull
   class="kw">private class="kw">final Query<EntityStore> query = Archetype.of(this.npcComponentType, this.entityStatMapComponentType);

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

   @Nonnull
   @Override
   class="kw">public Set<Dependency<EntityStore>> getDependencies() {
      class="kw">return this.dependencies;
   }

   @Nonnull
   @Override
   class="kw">public Query<EntityStore> getQuery() {
      class="kw">return this.query;
   }

   @Override
   class="kw">public void onEntityAdd(@Nonnull Holder<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3) {
      NPCEntity var4 = var1.getComponent(this.npcComponentType);
      assert var4 != null;
      Role var5 = var4.getRole();
      int var6 = var5.getInitialMaxHealth();
      EntityStatMap var7 = var1.getComponent(this.entityStatMapComponentType);
      assert var7 != null;
      int var8 = EntityStatType.getAssetMap().getIndex("Health");
      EntityStatType var9 = EntityStatType.getAssetMap().getAsset(var8);
      StaticModifier var10 = new StaticModifier(Modifier.ModifierTarget.MAX, StaticModifier.CalculationType.ADDITIVE, var6 - var9.getMax());
      var7.putModifier(var8, "NPC_Max", var10);
      if (var2 == AddReason.SPAWN) {
         var7.maximizeStatValue(var8);
      }
   }

   @Override
   class="kw">public void onEntityRemoved(@Nonnull Holder<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3) {
   }
}