SensorInflictedDamage class

Пакет: com.hypixel.hytale.server.flock.corecomponents

Файл: com/hypixel/hytale/server/flock/corecomponents/SensorInflictedDamage.java

extends: SensorBase

Поля (10)

МодификаторыТипИмя
private final String description
final SensorInflictedDamage.Target target
Ref var3
EntityGroup var4
NPCEntity var6
DamageData var7
var7
var7
Flock var8
Ref var9

Методы (9)

МодификаторыВозвратСигнатура
abstract Self Self("Check self")
Target Target(String nullxx)
public String getpublic String get()
if if(this.target == SensorInflictedDamage.Target.Self)
if if(var8 == null)
if if(var9 == null)
if if(var3 == null)
static boolean inSameFlockboolean inSameFlock(@Nonnull Ref<EntityStore> var0, @Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2)
abstract super super(var1)

Исходный код

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

class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
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.Flock;
class="kw">import com.hypixel.hytale.server.flock.FlockPlugin;
class="kw">import com.hypixel.hytale.server.flock.corecomponents.builders.BuilderSensorInflictedDamage;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.SensorBase;
class="kw">import com.hypixel.hytale.server.npc.entities.NPCEntity;
class="kw">import com.hypixel.hytale.server.npc.instructions.ExecutionSupport;
class="kw">import com.hypixel.hytale.server.npc.sensorinfo.EntityPositionProvider;
class="kw">import com.hypixel.hytale.server.npc.sensorinfo.InfoProvider;
class="kw">import com.hypixel.hytale.server.npc.util.DamageData;
class="kw">import java.util.function.Supplier;
class="kw">import javax.annotation.Nonnull;

class="kw">public class SensorInflictedDamage class="kw">extends SensorBase {
   class="kw">protected class="kw">final SensorInflictedDamage.Target target;
   class="kw">protected class="kw">final boolean friendlyFire;
   class="kw">protected class="kw">final EntityPositionProvider positionProvider = new EntityPositionProvider();

   class="kw">public SensorInflictedDamage(@Nonnull BuilderSensorInflictedDamage var1) {
      super(var1);
      this.target = var1.getTarget();
      this.friendlyFire = var1.isFriendlyFire();
   }

   @Override
   class="kw">public boolean matches(@Nonnull Ref<EntityStore> var1, @Nonnull ExecutionSupport var2, double var3, @Nonnull Store<EntityStore> var5) {
      if (!super.matches(var1, var2, var3, var5)) {
         this.positionProvider.clear();
         class="kw">return false;
      }

      NPCEntity var6 = var5.getComponent(var1, NPCEntity.getComponentType());
      DamageData var7;
      if (this.target == SensorInflictedDamage.Target.Self) {
         var7 = var6.getDamageData();
      } else {
         Flock var8 = FlockPlugin.getFlock(var5, var1);
         if (var8 == null) {
            this.positionProvider.clear();
            class="kw">return false;
         }

         var7 = this.target == SensorInflictedDamage.Target.FlockLeader ? var8.getLeaderDamageData() : var8.getDamageData();
      }

      Ref var9 = var7.getMostDamagedVictim();
      if (var9 == null) {
         this.positionProvider.clear();
         class="kw">return false;
      } else if (!this.friendlyFire && inSameFlock(var1, var9, var5)) {
         this.positionProvider.clear();
         class="kw">return false;
      } else {
         class="kw">return this.positionProvider.setTarget(var9, var5) != null;
      }
   }

   @Override
   class="kw">public InfoProvider getSensorInfo() {
      class="kw">return this.positionProvider;
   }

   class="kw">protected class="kw">static boolean inSameFlock(@Nonnull Ref<EntityStore> var0, @Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2) {
      Ref var3 = FlockPlugin.getFlockReference(var0, var2);
      if (var3 == null) {
         class="kw">return false;
      }

      EntityGroup var4 = var2.getComponent(var3, EntityGroup.getComponentType());
      assert var4 != null;
      class="kw">return var4.isMember(var1);
   }

   class="kw">public enum Target class="kw">implements Supplier<String> {
      Flock("Check flock"),
      FlockLeader("Check flock leader only"),
      Self("Check self");

      class="kw">private class="kw">final String description;

      Target(String nullxx) {
         this.description = nullxx;
      }

      class="kw">public String get() {
         class="kw">return this.description;
      }
   }
}