QueueResource class
Пакет: com.hypixel.hytale.server.npc.systems
Файл: com/hypixel/hytale/server/npc/systems/NewSpawnStartTickingSystem.java
implements: Resource<EntityStore>
Поля (2)
| Модификаторы | Тип | Имя |
|---|---|---|
|
private final ReferenceList<Ref<EntityStore>> |
queue |
|
NewSpawnStartTickingSystem.QueueResource |
var1 |
Методы (2)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public Resource<EntityStore> |
clonepublic Resource<EntityStore> clone() |
|
public static ResourceType<EntityStore, NewSpawnStartTickingSystem.QueueResource> |
getResourceTypepublic static ResourceType<EntityStore, NewSpawnStartTickingSystem.QueueResource> getResourceType() |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.systems;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.NonTicking;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Resource;
class="kw">import com.hypixel.hytale.component.ResourceType;
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.system.tick.TickingSystem;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.npc.NPCPlugin;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectListIterator;
class="kw">import it.unimi.dsi.fastutil.objects.ReferenceArrayList;
class="kw">import it.unimi.dsi.fastutil.objects.ReferenceList;
class="kw">import java.util.Set;
class="kw">import javax.annotation.Nonnull;
class="kw">public class NewSpawnStartTickingSystem class="kw">extends TickingSystem<EntityStore> {
@Nonnull
class="kw">private class="kw">final ResourceType<EntityStore, NewSpawnStartTickingSystem.QueueResource> queueResourceType;
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, NonTicking<EntityStore>> nonTickingComponentType;
@Nonnull
class="kw">private class="kw">final Set<Dependency<EntityStore>> dependencies = Set.of(new SystemDependency<>(Order.AFTER, StepCleanupSystem.class));
class="kw">public NewSpawnStartTickingSystem(@Nonnull ResourceType<EntityStore, NewSpawnStartTickingSystem.QueueResource> var1) {
this.queueResourceType = var1;
this.nonTickingComponentType = EntityStore.REGISTRY.getNonTickingComponentType();
}
@Nonnull
@Override
class="kw">public Set<Dependency<EntityStore>> getDependencies() {
class="kw">return this.dependencies;
}
@Override
class="kw">public void tick(float var1, int var2, @Nonnull Store<EntityStore> var3) {
ReferenceList var4 = var3.getResource(this.queueResourceType).queue;
if (!var4.isEmpty()) {
ObjectListIterator var5 = var4.iterator();
while (var5.hasNext()) {
Ref var6 = (Ref<EntityStore>)var5.next();
if (var6.isValid()) {
var3.removeComponent(var6, this.nonTickingComponentType);
}
}
var4.clear();
}
}
class="kw">public class="kw">static void queueNewSpawn(@Nonnull Ref<EntityStore> var0, @Nonnull Store<EntityStore> var1) {
var1.ensureComponent(var0, EntityStore.REGISTRY.getNonTickingComponentType());
var1.getResource(NewSpawnStartTickingSystem.QueueResource.getResourceType()).queue.add(var0);
}
class="kw">public class="kw">static class QueueResource class="kw">implements Resource<EntityStore> {
@Nonnull
class="kw">private class="kw">final ReferenceList<Ref<EntityStore>> queue = new ReferenceArrayList();
class="kw">public QueueResource() {
}
@Nonnull
class="kw">public class="kw">static ResourceType<EntityStore, NewSpawnStartTickingSystem.QueueResource> getResourceType() {
class="kw">return NPCPlugin.get().getNewSpawnStartTickingQueueResourceType();
}
@Nonnull
@Override
class="kw">public Resource<EntityStore> clone() {
NewSpawnStartTickingSystem.QueueResource var1 = new NewSpawnStartTickingSystem.QueueResource();
var1.queue.addAll(this.queue);
class="kw">return var1;
}
}
}