CombatSupport class

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

Файл: com/hypixel/hytale/server/npc/role/support/CombatSupport.java

implements: Component<EntityStore>

Поля (8)

МодификаторыТипИмя
final String ATTACK_TAG
int var1
CombatSupport var2
Ref var4
EntityGroup var5
boolean var6
var6
NPCEntity var7

Методы (14)

МодификаторыВозвратСигнатура
public void addAttackOverridevoid addAttackOverride(String var1)
public void clearAttackOverridesvoid clearAttackOverrides()
public boolean getCanCauseDamageboolean getCanCauseDamage(@Nonnull Ref<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull ComponentAccessor<EntityStore> var3)
public int[] getDisableDamageGroupsint[] getDisableDamageGroups()
if if(this.attackPause > 0.0)
if if(this.disableDamageFlock)
if if(var4 != null)
if if(var7 != null)
if if(this.attackOverrideIndex == -1)
public boolean isDealingFriendlyDamageboolean isDealingFriendlyDamage()
public boolean isExecutingAttackboolean isExecutingAttack()
public void setExecutingAttackvoid setExecutingAttack(InteractionChain var1, boolean var2, double var3)
public void setRoleIndexvoid setRoleIndex(int var1)
public void tickvoid tick(double var1)

Исходный код

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

class="kw">import com.hypixel.hytale.assetstore.AssetRegistry;
class="kw">import com.hypixel.hytale.component.Component;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.protocol.InteractionState;
class="kw">import com.hypixel.hytale.server.core.entity.InteractionChain;
class="kw">import com.hypixel.hytale.server.core.entity.group.EntityGroup;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.flock.FlockPlugin;
class="kw">import com.hypixel.hytale.server.npc.NPCPlugin;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderSupport;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.SupportConfigBuilder;
class="kw">import com.hypixel.hytale.server.npc.entities.NPCEntity;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class CombatSupport class="kw">implements Component<EntityStore> {
   class="kw">public class="kw">static class="kw">final String ATTACK_TAG = "Attack";
   class="kw">public class="kw">static class="kw">final int ATTACK_TAG_INDEX = AssetRegistry.getOrCreateTagIndex("Attack");
   class="kw">public class="kw">static class="kw">final String AIMING_REFERENCE_TAG = "AimingReference";
   class="kw">public class="kw">static class="kw">final int AIMING_REFERENCE_TAG_INDEX = AssetRegistry.getOrCreateTagIndex("AimingReference");
   class="kw">public class="kw">static class="kw">final String MELEE_TAG = "Attack=Melee";
   class="kw">public class="kw">static class="kw">final int MELEE_TAG_INDEX = AssetRegistry.getOrCreateTagIndex("Attack=Melee");
   class="kw">public class="kw">static class="kw">final String RANGED_TAG = "Attack=Ranged";
   class="kw">public class="kw">static class="kw">final int RANGED_TAG_INDEX = AssetRegistry.getOrCreateTagIndex("Attack=Ranged");
   class="kw">public class="kw">static class="kw">final String BLOCK_TAG = "Attack=Block";
   class="kw">public class="kw">static class="kw">final int BLOCK_TAG_INDEX = AssetRegistry.getOrCreateTagIndex("Attack=Block");
   class="kw">protected class="kw">final boolean disableDamageFlock;
   class="kw">protected class="kw">final int[] disableDamageGroups;
   class="kw">private int roleIndex = -1;
   @Nullable
   class="kw">protected InteractionChain activeAttack;
   class="kw">protected boolean dealFriendlyDamage;
   class="kw">protected double attackPause;
   class="kw">protected class="kw">final List<String> attackOverrides = new ObjectArrayList();
   class="kw">protected int attackOverrideIndex = -1;

   @Nonnull
   class="kw">public class="kw">static ComponentType<EntityStore, CombatSupport> getComponentType() {
      class="kw">return NPCPlugin.get().getCombatSupportComponentType();
   }

   @Nonnull
   class="kw">public class="kw">static CombatSupport get(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1) {
      CombatSupport var2 = var1.getComponent(var0, getComponentType());
      assert var2 != null : "Missing CombatSupport on entity " + var0;
      class="kw">return var2;
   }

   class="kw">public CombatSupport(@Nonnull SupportConfigBuilder<?> var1, @Nonnull BuilderSupport var2) {
      this.disableDamageFlock = var1.isDisableDamageFlock();
      this.disableDamageGroups = var1.getDisableDamageGroups(var2);
   }

   class="kw">public void setRoleIndex(int var1) {
      this.roleIndex = var1;
   }

   class="kw">public boolean isDealingFriendlyDamage() {
      class="kw">return this.dealFriendlyDamage;
   }

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

   class="kw">public boolean isExecutingAttack() {
      class="kw">return this.attackPause > 0.0 || this.activeAttack != null;
   }

   class="kw">public void tick(double var1) {
      if (this.attackPause > 0.0) {
         this.attackPause -= var1;
      }

      if (this.activeAttack != null && this.activeAttack.getServerState() != InteractionState.NotFinished) {
         this.activeAttack = null;
      }
   }

   class="kw">public boolean getCanCauseDamage(@Nonnull Ref<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull ComponentAccessor<EntityStore> var3) {
      if (this.disableDamageFlock) {
         Ref var4 = FlockPlugin.getFlockReference(var1, var3.getExternalData().getStore());
         if (var4 != null) {
            EntityGroup var5 = var3.getComponent(var4, EntityGroup.getComponentType());
            if (var5 != null && var5.isMember(var2)) {
               class="kw">return false;
            }
         }
      }

      boolean var6 = false;
      NPCEntity var7 = var3.getComponent(var2, NPCEntity.getComponentType());
      if (var7 != null) {
         var6 = get(var2, var3).isDealingFriendlyDamage();
      }

      class="kw">return var6 || !WorldSupport.isGroupMember(this.roleIndex, var2, this.disableDamageGroups, var3);
   }

   class="kw">public void setExecutingAttack(InteractionChain var1, boolean var2, double var3) {
      this.activeAttack = var1;
      this.dealFriendlyDamage = var2;
      this.attackPause = var3;
   }

   class="kw">public void addAttackOverride(String var1) {
      this.attackOverrides.add(var1);
      this.attackOverrideIndex = 0;
   }

   class="kw">public void clearAttackOverrides() {
      this.attackOverrides.clear();
      this.attackOverrideIndex = -1;
   }

   @Nullable
   class="kw">public String getNextAttackOverride() {
      if (this.attackOverrideIndex == -1) {
         class="kw">return null;
      }

      int var1 = this.attackOverrideIndex;
      this.attackOverrideIndex = this.attackOverrideIndex < this.attackOverrides.size() - 1 ? this.attackOverrideIndex + 1 : 0;
      class="kw">return this.attackOverrides.get(var1);
   }

   @Override
   class="kw">public Component<EntityStore> clone() {
      class="kw">return this;
   }
}