EntitySupport class

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

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

implements: Component<EntityStore>

Поля (8)

МодификаторыТипИмя
protected StdScope sensorScope
StdScope var1
EntityStatValue var1
EntitySupport var2
int var2
IComponentExecutionControl var3
int var6
EntitySupport.DeferredAction var7

Методы (8)

МодификаторыВозвратСигнатура
public void addDeferredActionvoid addDeferredAction(@Nonnull EntitySupport.DeferredAction var1)
public StdScope getSensorScopeStdScope getSensorScope()
public void postRoleBuiltvoid postRoleBuilt(@Nonnull BuilderSupport var1)
public void registerDelayvoid registerDelay(@Nonnull IComponentExecutionControl var1)
public void tickvoid tick(float var1)
abstract boolean tickboolean tick(@Nonnull Ref<EntityStore> var1, @Nonnull ExecutionSupport var2, double var3, @Nonnull Store<EntityStore> var5)
public void tickDeferredActionsvoid tickDeferredActions(@Nonnull Ref<EntityStore> var1, @Nonnull ExecutionSupport var2, double var3, @Nonnull Store<EntityStore> var5)
public void unloadedvoid unloaded()

Исходный код

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

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.component.Store;
class="kw">import com.hypixel.hytale.server.core.modules.entitystats.EntityStatValue;
class="kw">import com.hypixel.hytale.server.core.modules.entitystats.EntityStatsModule;
class="kw">import com.hypixel.hytale.server.core.modules.entitystats.asset.DefaultEntityStatTypes;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
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.entities.NPCEntity;
class="kw">import com.hypixel.hytale.server.npc.instructions.ExecutionSupport;
class="kw">import com.hypixel.hytale.server.npc.util.IComponentExecutionControl;
class="kw">import com.hypixel.hytale.server.npc.util.expression.StdLib;
class="kw">import com.hypixel.hytale.server.npc.util.expression.StdScope;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.List;
class="kw">import java.util.Objects;
class="kw">import javax.annotation.Nonnull;

class="kw">public class EntitySupport class="kw">implements Component<EntityStore> {
   class="kw">protected StdScope sensorScope;
   class="kw">protected class="kw">final List<IComponentExecutionControl> delayingComponents = new ObjectArrayList();
   class="kw">protected class="kw">final List<EntitySupport.DeferredAction> deferredActions = new ObjectArrayList();

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

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

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

   class="kw">public StdScope getSensorScope() {
      class="kw">return this.sensorScope;
   }

   class="kw">public void postRoleBuilt(@Nonnull BuilderSupport var1) {
      this.sensorScope = var1.getSensorScope();
   }

   class="kw">public void tick(float var1) {
      int var2 = 0;

      while (var2 < this.delayingComponents.size()) {
         IComponentExecutionControl var3 = this.delayingComponents.get(var2);
         if (var3.processDelay(var1)) {
            this.delayingComponents.remove(var2);
         } else {
            var2++;
         }
      }
   }

   class="kw">public void registerDelay(@Nonnull IComponentExecutionControl var1) {
      this.delayingComponents.add(var1);
   }

   class="kw">public void addDeferredAction(@Nonnull EntitySupport.DeferredAction var1) {
      this.deferredActions.add(var1);
   }

   class="kw">public void tickDeferredActions(@Nonnull Ref<EntityStore> var1, @Nonnull ExecutionSupport var2, double var3, @Nonnull Store<EntityStore> var5) {
      int var6 = 0;

      while (var6 < this.deferredActions.size()) {
         EntitySupport.DeferredAction var7 = this.deferredActions.get(var6);
         if (var7.tick(var1, var2, var3, var5)) {
            this.deferredActions.remove(var6);
         } else {
            var6++;
         }
      }
   }

   class="kw">public void unloaded() {
      this.deferredActions.clear();
   }

   @Nonnull
   class="kw">public class="kw">static StdScope createScope() {
      class="kw">return new StdScope(StdLib.getInstance());
   }

   @Nonnull
   class="kw">public class="kw">static StdScope createScope(@Nonnull NPCEntity var0) {
      StdScope var1 = new StdScope(StdLib.getInstance());
      var1.addSupplier("blocked", () -> var0.getRole().getActiveMotionController().isObstructed());
      var1.addSupplier("health", () -> {
         EntityStatValue var1 = EntityStatsModule.get(var0).get(DefaultEntityStatTypes.getHealth());
         class="kw">return Objects.requireNonNull(var1).asPercentage();
      });
      class="kw">return var1;
   }

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

   @FunctionalInterface
   class="kw">public class="kw">interface DeferredAction {
      boolean tick(@Nonnull Ref<EntityStore> var1, @Nonnull ExecutionSupport var2, double var3, @Nonnull Store<EntityStore> var5);
   }
}