ChunkAdded class
Пакет: com.hypixel.hytale.server.spawning.suppression.system
Файл: com/hypixel/hytale/server/spawning/suppression/system/ChunkSuppressionSystems.java
extends: RefSystem<ChunkStore>
Поля (8)
| Модификаторы | Тип | Имя |
|---|---|---|
|
private static final ComponentType<ChunkStore, BlockChunk> |
COMPONENT_TYPE |
|
private final ComponentType<ChunkStore, ChunkSuppressionEntry> |
chunkSuppressionEntryComponentType |
|
private final ResourceType<EntityStore, SpawnSuppressionController> |
spawnSuppressionControllerResourceType |
|
ChunkSuppressionEntry |
var10 |
|
World |
var5 |
|
SpawnSuppressionController |
var6 |
|
BlockChunk |
var7 |
|
long |
var8 |
Методы (4)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public Query<ChunkStore> |
getQuerypublic Query<ChunkStore> getQuery() |
|
|
if if(var10 != null) |
|
public void |
onEntityAddedpublic void onEntityAdded(@Nonnull Ref<ChunkStore> var1, @Nonnull AddReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4) |
|
public void |
onEntityRemovepublic void onEntityRemove(@Nonnull Ref<ChunkStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.spawning.suppression.system;
class="kw">import com.hypixel.hytale.component.AddReason;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.RemoveReason;
class="kw">import com.hypixel.hytale.component.ResourceType;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.component.query.Query;
class="kw">import com.hypixel.hytale.component.system.RefSystem;
class="kw">import com.hypixel.hytale.component.system.tick.TickingSystem;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.BlockChunk;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.spawning.SpawningPlugin;
class="kw">import com.hypixel.hytale.server.spawning.suppression.component.ChunkSuppressionEntry;
class="kw">import com.hypixel.hytale.server.spawning.suppression.component.ChunkSuppressionQueue;
class="kw">import com.hypixel.hytale.server.spawning.suppression.component.SpawnSuppressionController;
class="kw">import java.util.List;
class="kw">import java.util.Map.Entry;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">public class ChunkSuppressionSystems {
class="kw">public ChunkSuppressionSystems() {
}
class="kw">public class="kw">static class ChunkAdded class="kw">extends RefSystem<ChunkStore> {
class="kw">private class="kw">static class="kw">final ComponentType<ChunkStore, BlockChunk> COMPONENT_TYPE = BlockChunk.getComponentType();
class="kw">private class="kw">final ComponentType<ChunkStore, ChunkSuppressionEntry> chunkSuppressionEntryComponentType;
class="kw">private class="kw">final ResourceType<EntityStore, SpawnSuppressionController> spawnSuppressionControllerResourceType;
class="kw">public ChunkAdded(ComponentType<ChunkStore, ChunkSuppressionEntry> var1, ResourceType<EntityStore, SpawnSuppressionController> var2) {
this.chunkSuppressionEntryComponentType = var1;
this.spawnSuppressionControllerResourceType = var2;
}
@Override
class="kw">public Query<ChunkStore> getQuery() {
class="kw">return COMPONENT_TYPE;
}
@Override
class="kw">public void onEntityAdded(
@Nonnull Ref<ChunkStore> var1, @Nonnull AddReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4
) {
World var5 = var3.getExternalData().getWorld();
SpawnSuppressionController var6 = var5.getEntityStore().getStore().getResource(this.spawnSuppressionControllerResourceType);
BlockChunk var7 = var4.getComponent(var1, COMPONENT_TYPE);
long var8 = var7.getIndex();
ChunkSuppressionEntry var10 = var6.getChunkSuppressionMap().get(var8);
if (var10 != null) {
var4.addComponent(var1, this.chunkSuppressionEntryComponentType, var10);
SpawningPlugin.get().getLogger().at(Level.FINEST).log("Annotated chunk index %s on load", var8);
}
}
@Override
class="kw">public void onEntityRemove(
@Nonnull Ref<ChunkStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4
) {
}
}
class="kw">public class="kw">static class Ticking class="kw">extends TickingSystem<ChunkStore> {
class="kw">private class="kw">final ComponentType<ChunkStore, ChunkSuppressionEntry> chunkSuppressionEntryComponentType;
class="kw">private class="kw">final ResourceType<ChunkStore, ChunkSuppressionQueue> chunkSuppressionQueueResourceType;
class="kw">public Ticking(ComponentType<ChunkStore, ChunkSuppressionEntry> var1, ResourceType<ChunkStore, ChunkSuppressionQueue> var2) {
this.chunkSuppressionEntryComponentType = var1;
this.chunkSuppressionQueueResourceType = var2;
}
@Override
class="kw">public void tick(float var1, int var2, @Nonnull Store<ChunkStore> var3) {
ChunkSuppressionQueue var4 = var3.getResource(this.chunkSuppressionQueueResourceType);
List var5 = var4.getToAdd();
if (!var5.isEmpty()) {
for (int var6 = 0; var6 < var5.size(); var6++) {
Entry var7 = var5.get(var6);
Ref var8 = var7.getKey();
if (var8.isValid()) {
var3.putComponent(var8, this.chunkSuppressionEntryComponentType, var7.getValue());
SpawningPlugin.get().getLogger().at(Level.FINEST).log("Annotated chunk %s from queue", var8);
}
}
var5.clear();
}
List var9 = var4.getToRemove();
if (!var9.isEmpty()) {
for (int var10 = 0; var10 < var9.size(); var10++) {
Ref var11 = var9.get(var10);
if (var11.isValid()) {
var3.tryRemoveComponent(var11, this.chunkSuppressionEntryComponentType);
SpawningPlugin.get().getLogger().at(Level.FINEST).log("Removed annotation from chunk %s from queue", var11);
}
}
var9.clear();
}
}
}
}