EntityFreezeSnapshot class

Пакет: com.hypixel.hytale.builtin.buildertools.snapshot

Файл: com/hypixel/hytale/builtin/buildertools/snapshot/EntityFreezeSnapshot.java

implements: EntitySnapshot<EntityFreezeSnapshot>

Поля (2)

МодификаторыТипИмя
ModelComponent var2
EntityFreezeSnapshot var4

Методы (7)

МодификаторыВозвратСигнатура
if if(this.ref == var1)
if if(this.transformSnapshot != null)
if if(this.wasFrozen)
if if(this.transformSnapshot != null)
static void resetToIdleAnimationvoid resetToIdleAnimation(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1)
abstract resetToIdleAnimation resetToIdleAnimation(this.ref, var3)
public EntityFreezeSnapshot restoreEntityEntityFreezeSnapshot restoreEntity(@Nonnull PlayerRef var1, @Nonnull World var2, @Nonnull ComponentAccessor<EntityStore> var3)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.buildertools.snapshot;

class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.protocol.AnimationSlot;
class="kw">import com.hypixel.hytale.server.core.entity.AnimationUtils;
class="kw">import com.hypixel.hytale.server.core.entity.Frozen;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.ModelComponent;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class EntityFreezeSnapshot class="kw">implements EntitySnapshot<EntityFreezeSnapshot> {
   @Nonnull
   class="kw">private Ref<EntityStore> ref;
   class="kw">private class="kw">final boolean wasFrozen;
   @Nullable
   class="kw">private class="kw">final EntityTransformSnapshot transformSnapshot;

   class="kw">public EntityFreezeSnapshot(@Nonnull Ref<EntityStore> var1, @Nonnull ComponentAccessor<EntityStore> var2) {
      this.ref = var1;
      this.wasFrozen = var2.getArchetype(var1).contains(Frozen.getComponentType());
      this.transformSnapshot = new EntityTransformSnapshot(var1, var2);
   }

   @Override
   class="kw">public void updateEntityRef(@Nonnull Ref<EntityStore> var1, @Nonnull Ref<EntityStore> var2) {
      if (this.ref == var1) {
         this.ref = var2;
      }

      if (this.transformSnapshot != null) {
         this.transformSnapshot.updateEntityRef(var1, var2);
      }
   }

   class="kw">public EntityFreezeSnapshot restoreEntity(@Nonnull PlayerRef var1, @Nonnull World var2, @Nonnull ComponentAccessor<EntityStore> var3) {
      if (!this.ref.isValid()) {
         class="kw">return null;
      }

      EntityFreezeSnapshot var4 = new EntityFreezeSnapshot(this.ref, var3);
      if (this.wasFrozen) {
         if (!var3.getArchetype(this.ref).contains(Frozen.getComponentType())) {
            var3.addComponent(this.ref, Frozen.getComponentType(), Frozen.get());
            resetToIdleAnimation(this.ref, var3);
         }

         if (this.transformSnapshot != null) {
            this.transformSnapshot.restoreEntity(var1, var2, var3);
         }
      } else {
         var3.tryRemoveComponent(this.ref, Frozen.getComponentType());
         AnimationUtils.stopAnimation(this.ref, AnimationSlot.Movement, var3);
      }

      class="kw">return var4;
   }

   class="kw">private class="kw">static void resetToIdleAnimation(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1) {
      ModelComponent var2 = var1.getComponent(var0, ModelComponent.getComponentType());
      if (var2 != null && var2.getModel() != null) {
         if (var2.getModel().getAnimationSetMap().containsKey("Idle")) {
            AnimationUtils.playAnimation(var0, AnimationSlot.Movement, "Idle", var1);
            AnimationUtils.stopAnimation(var0, AnimationSlot.Status, var1);
            AnimationUtils.stopAnimation(var0, AnimationSlot.Action, var1);
         }
      }
   }
}