StoredFlock class
Пакет: com.hypixel.hytale.server.flock
Файл: com/hypixel/hytale/server/flock/StoredFlock.java
Поля (11)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
BuilderCodec<StoredFlock> |
CODEC |
|
StoredFlock |
var1 |
|
StoredFlock |
var1 |
|
Holder[] |
var2 |
|
ComponentRegistry.Data |
var2 |
|
ComponentRegistry.Data |
var3 |
|
Holder[] |
var3 |
|
ObjectArrayList |
var4 |
|
Ref |
var6 |
|
Holder |
var7 |
|
Ref |
var7 |
Методы (11)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
void |
clearvoid clear() |
|
|
for for(Holder var6 : this.members) |
|
|
for for(int var3 = 0; var3 < var2.length; var3++) |
|
|
for for(int var4 = 0; var4 < var3.length; var4++) |
abstract |
|
for for(int var5 = 0; var5 < var1.size() |
public |
boolean |
hasStoredNPCsboolean hasStoredNPCs() |
|
|
if if(var7 == null) |
|
|
if if(this.members != null) |
|
|
if if(this.members != null) |
public |
void |
restoreNPCsvoid restoreNPCs(@Nonnull List<Ref<EntityStore>> var1, @Nonnull Store<EntityStore> var2) |
public |
void |
storeNPCsvoid storeNPCs(@Nonnull List<Ref<EntityStore>> var1, @Nonnull Store<EntityStore> var2) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.flock;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.ArrayCodec;
class="kw">import com.hypixel.hytale.codec.store.StoredCodec;
class="kw">import com.hypixel.hytale.component.AddReason;
class="kw">import com.hypixel.hytale.component.ComponentRegistry;
class="kw">import com.hypixel.hytale.component.Holder;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.RemoveReason;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.spawning.SpawningPlugin;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.Arrays;
class="kw">import java.util.List;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class StoredFlock {
class="kw">public class="kw">static class="kw">final BuilderCodec<StoredFlock> CODEC = BuilderCodec.builder(StoredFlock.class, StoredFlock::new)
.append(
new KeyedCodec<>("Members", new ArrayCodec<>(new StoredCodec<>(EntityStore.HOLDER_CODEC_KEY), Holder[]::new)),
(var0, var1) -> var0.members = var1,
var0 -> var0.members
)
.add()
.build();
@Nullable
class="kw">private Holder<EntityStore>[] members;
class="kw">public StoredFlock() {
}
class="kw">public void storeNPCs(@Nonnull List<Ref<EntityStore>> var1, @Nonnull Store<EntityStore> var2) {
ComponentRegistry.Data var3 = EntityStore.REGISTRY.getData();
ObjectArrayList var4 = new ObjectArrayList();
for (int var5 = 0; var5 < var1.size(); var5++) {
Ref var6 = var1.get(var5);
if (var6.isValid()) {
Holder var7 = var2.removeEntity(var6, RemoveReason.UNLOAD);
if (var7.hasSerializableComponents(var3)) {
var4.add(var7);
}
}
}
this.members = (Holder<EntityStore>[])var4.toArray(Holder[]::new);
}
class="kw">public boolean hasStoredNPCs() {
class="kw">return this.members != null;
}
class="kw">public void restoreNPCs(@Nonnull List<Ref<EntityStore>> var1, @Nonnull Store<EntityStore> var2) {
for (Holder var6 : this.members) {
Ref var7 = var2.addEntity(var6, AddReason.LOAD);
if (var7 == null) {
SpawningPlugin.get().getLogger().at(Level.WARNING).log("Failed to restore stored spawn marker member! %s", var6);
} else {
var1.add(var7);
}
}
this.clear();
}
class="kw">public void clear() {
this.members = null;
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "StoredFlock{members=" + Arrays.toString(this.members) + "}";
}
@Nonnull
class="kw">public StoredFlock clone() {
StoredFlock var1 = new StoredFlock();
if (this.members != null) {
Holder[] var2 = new Holder[this.members.length];
for (int var3 = 0; var3 < var2.length; var3++) {
var2[var3] = this.members[var3].clone();
}
var1.members = var2;
}
class="kw">return var1;
}
@Nonnull
class="kw">public StoredFlock cloneSerializable() {
StoredFlock var1 = new StoredFlock();
if (this.members != null) {
ComponentRegistry.Data var2 = EntityStore.REGISTRY.getData();
Holder[] var3 = new Holder[this.members.length];
for (int var4 = 0; var4 < var3.length; var4++) {
var3[var4] = this.members[var4].cloneSerializable(var2);
}
var1.members = var3;
}
class="kw">return var1;
}
}