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