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