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