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) {
}
}